Weaviate vector store
Weaviate is a vector search engine with a native BM25 index, selected via VECTOR_STORE_PROVIDER=weaviate.
Enable it
bash
VECTOR_STORE_PROVIDER=weaviate
WEAVIATE_URL=http://localhost:8080
WEAVIATE_API_KEY=your-weaviate-api-keyInstall the client: pip install weaviate-client.
Configuration
| Variable | Default | Description |
|---|---|---|
VECTOR_STORE_PROVIDER | pgvector | Set to weaviate to use this store. |
WEAVIATE_URL | http://localhost:8080 | URL of the running or hosted Weaviate. |
WEAVIATE_API_KEY | (none) | Optional. When set, the store connects to Weaviate Cloud with it. |
Notes
- Unit-tested against a mocked Weaviate client, not integration-tested against a live instance. Smoke-test before production use.
- The collection is created on first use with the configured dimension, vectorizer
none(embeddings come from this app), and thecosinedistance metric. keyword_searchis native here: Weaviate's BM25 index over thedataproperty backs it, so it is not degraded, though BM25 scores differ from Postgrests_rank.- Object ids must be UUIDs (Weaviate's key type). The engine generates uuid4 ids, so this holds; a non-UUID id would be rejected. Collection names are capitalized to satisfy Weaviate (e.g.
memoryg_memoriesbecomesMemoryg_memories). list_scope_valuesscans up to a capped limit and de-duplicates client-side (no SQL DISTINCT), andget/listreturnvalid_to = Nonefor a live row rather than an infinity timestamp.