Minimal, production‑ready starter that combines Hibernate ORM with AI embeddings for semantic search using PostgreSQL + pgvector.
- Start Postgres with pgvector:
docker compose up -d
- Run Ollama locally and pull the embedding model:
ollama pull nomic-embed-text
- Build & run:
mvn -q -DskipTests spring-boot:run
POST /api/products
— persist + auto-embedGET /api/products/search?q=...&k=10
— semantic searchGET /api/products/search/hybrid?q=...&k=10&wf=0.6&wv=0.4
— hybrid FTS + vector
Set provider to OpenAI in application.yml
and provide your API key:
hibai:
embeddings:
provider: openai
model: text-embedding-3-small
openai:
base-url: https://api.openai.com/v1
api-key: ${OPENAI_API_KEY}
Export the key and run:
export OPENAI_API_KEY=sk-...
SQL lives under src/main/resources/db/migration
and runs automatically on startup.
Run integration tests against a real Postgres+pgvector:
mvn -q -DskipTests=false test
With the app running (and DB up), execute:
scripts/demo.sh
Requires jq
for pretty-printing.