Vector store providers
The vector store holds the indexed documents (split into chunks, with their embeddings) that the RAG searches to answer questions. It is configured in the Vector DB settings menu.
Here are the vector stores supported by Tock:
| Provider | provider value |
Similarity search | Full text search | Hybrid search | Inspection |
|---|---|---|---|---|---|
| PGVector (PostgreSQL) | PGVector |
✅ | ✅ | ✅ | ✅ |
| OpenSearch | OpenSearch |
✅ | vector search only |
With OpenSearch, only similarity search is available: choosing full text or hybrid search in the RAG settings makes RAG requests fail.
PGVector
{
"provider": "PGVector",
"host": "localhost",
"port": 5432,
"username": "postgres",
"password": {
"type": "Raw",
"secret": "postgres"
},
"database": "postgres"
}
Full text and hybrid searches require the full text search column and index of the Tock schema.
The schema is provided in
gen-ai/orchestrator-server/sql/schema.sql:
it creates the tables used by the indexing tools, and a fts_vector column generated from the chunk contents
(with the french text search configuration), with its index.
This script is not run automatically: it must be applied to the database, including one that is already indexed
(the column is then computed for the existing chunks).
Full text search does not use the question itself, but the keywords (key_words) produced by the
question condensing prompt (see the RAG settings). If this prompt returns no keywords,
full text search finds no documents, and hybrid search falls back to similarity search only.
OpenSearch
{
"provider": "OpenSearch",
"host": "localhost",
"port": 9200,
"username": "admin",
"password": {
"type": "Raw",
"secret": "*************"
}
}
Passwords can also be stored in a secret manager: see API keys and secret managers.