Vector Retriever Microservice#
The Vector Retriever microservice provides semantic retrieval over vector stores through a single FastAPI interface. It supports batch querying, metadata filtering, and pluggable vector database backends.
This service is designed for semantic search workloads where embeddings are generated by a compatible embedding service (for example the local MME overlay) and stored in a vector store.
Overview#
The API exposes four endpoints:
GET /healthfor liveness checksGET /readyfor dependency readiness checksPOST /queryfor batch semantic searchGET /capabilities/filtersfor filter grammar discovery
Each query can include:
optional
query_idquerytext orimageinput (mutually exclusive)primary
wherefilterscompatibility aliases:
tags,time_filter,filtersoptional
top_koptional
explain_filters
Image input supports two formats via a discriminated union: image_url (remote URL) and image_base64 (base64-encoded data). The embedding service computes the image embedding, and the retriever performs vector similarity search against stored document embeddings.
Key Capabilities#
Backend-agnostic retrieval flow with backend-specific adapters
Batch execution with partial failure isolation
Dynamic metadata filters with validation and operator guardrails
Backend-specific filter translation (VDMS, Milvus, PGVector, FAISS)
Runtime backend selection with
RETRIEVER_BACKEND
Backend Support#
Current backends:
vdmsmilvuspgvectorfaiss
Backend-specific code is organized under src/retriever/backends/<backend_name>/.