Skip to content
GitHub

Configuration

Configuration section: vector (in application.yaml) or env prefix LEX_VECTOR__.

The provider’s config_key = "vector". The orchestrator reads the vector: section from YAML and coerces it into VectorConfig.


Full example:

vector:
enabled: true
backend: qdrant
default_distance_metric: cosine
default_index_type: hnsw
default_dimension: 1536
upsert_batch_size: 100
max_retries: 3
retry_delay: 0.5
collection_name: default
enable_cache: false
cache_ttl: 86400
embedding_model: text-embedding-3-small
pgvector:
database: primary
schema: public
qdrant:
url: http://localhost:6333
prefer_grpc: true
pinecone:
environment: us-west1-gcp
index_name: my_index
backends:
- name: primary
primary: true
backend: qdrant
qdrant:
url: http://qdrant:6333
- name: archive
backend: pgvector
pgvector:
database: archive

Env-var override form:

Terminal window
export LEX_VECTOR__BACKEND=pgvector
export LEX_VECTOR__DEFAULT_DIMENSION=768
export LEX_VECTOR__PGVECTOR__DATABASE=primary
KeyTypeDefaultEnv VarDescription
enabledboolTrueLEX_VECTOR__ENABLEDEnable vector subsystem
backendstr"memory"LEX_VECTOR__BACKENDDriver: memory, pgvector, qdrant, pinecone, chroma, weaviate
default_distance_metricDistanceMetric"cosine"LEX_VECTOR__DEFAULT_DISTANCE_METRICcosine, euclidean, dot_product
default_index_typeIndexType"hnsw"LEX_VECTOR__DEFAULT_INDEX_TYPEhnsw, ivfflat
default_dimensionint1536LEX_VECTOR__DEFAULT_DIMENSIONDefault vector dimension
upsert_batch_sizeint100LEX_VECTOR__UPSERT_BATCH_SIZEVectors per upsert batch
max_retriesint3LEX_VECTOR__MAX_RETRIESOperation retries
retry_delayfloat0.5LEX_VECTOR__RETRY_DELAYDelay between retries (seconds)
collection_namestr"default"LEX_VECTOR__COLLECTION_NAMEDefault collection for AI-layer ops
enable_cacheboolFalseLEX_VECTOR__ENABLE_CACHEEmbedding cache (requires CacheBackendProtocol)
cache_ttlint86400LEX_VECTOR__CACHE_TTLCache TTL (seconds)
embedding_modelstr"text-embedding-3-small"LEX_VECTOR__EMBEDDING_MODELModel name for AI-layer embedding
KeyTypeDefaultDescription
databasestr"primary"Database backend name from db.backends
schemastr"public"Database schema for vector tables
default_listsint100Lists for IVFFlat index
default_probesint10Probes for IVFFlat index
default_ef_searchint64ef_search for HNSW index
table_prefixstr"vec_"Table name prefix
create_extensionboolTrueAuto-create pgvector extension
KeyTypeDefaultDescription
urlstr"http://localhost:6333"Server URL
api_keySecretStr | NoneNoneAPI key
grpc_portint6334gRPC port
prefer_grpcboolTruePrefer gRPC over HTTP
timeoutfloat30.0Request timeout
KeyTypeDefaultDescription
api_keySecretStr""Pinecone API key
environmentstr""Environment (e.g. us-west1-gcp)
index_namestr""Index name
namespacestr""Default namespace
timeoutfloat30.0Request timeout
pool_threadsint4Connection pool threads
KeyTypeDefaultDescription
hoststr"localhost"Server host
portint8000Server port
use_http_clientboolTrueFalse = ephemeral in-memory client
api_keySecretStr | NoneNoneAPI key
collection_namestr"default"Default collection
timeoutfloat30.0Request timeout
KeyTypeDefaultDescription
urlstr"http://localhost:8080"Cluster URL
api_keySecretStr | NoneNoneAPI key
grpc_portint50051gRPC port
timeoutfloat30.0Request timeout
KeyTypeDefaultDescription
max_collectionsint100Max in-memory collections
max_vectors_per_collectionint100000Max vectors per collection

vector:
backends:
- name: primary
primary: true
backend: qdrant
qdrant:
url: http://qdrant:6333
- name: archive
backend: pgvector
pgvector:
database: archive_db

Env-var form for named backends uses indexed arrays (not recommended for complex configs — use YAML).


All keys map from env vars using LEX_VECTOR__ prefix with __ as nested delimiter:

Terminal window
export LEX_VECTOR__BACKEND=pgvector
export LEX_VECTOR__DEFAULT_DIMENSION=1536
export LEX_VECTOR__PGVECTOR__DATABASE=primary
export LEX_VECTOR__QDRANT__URL=http://qdrant:6333
export LEX_VECTOR__ENABLE_CACHE=true
export LEX_VECTOR__EMBEDDING_MODEL=text-embedding-3-small

Embedding client config uses a separate prefix: LEX_VECTOR__EMBEDDING__.