DocRetriever Application

DocRetriever is the most widely adopted use case for leveraging the different methodologies to match user query against a set of free-text records. DocRetriever is essential to RAG system, which bridges the knowledge gap by dynamically fetching relevant information from external sources, ensuring that responses generated remain factual and current. The core of this architecture are vector databases, which are instrumental in enabling efficient and semantic retrieval of information. These databases store data as vectors, allowing RAG to swiftly access the most pertinent documents or data points based on semantic similarity.

The DocIndexRetriever example is implemented using the component-level microservices defined in GenAIComps. The flow chart below shows the information flow between different microservices for this example.

User Input
DocIndexRetriever MegaService
User Input Query
Ingest data
Embedding MicroService
Retrieval MicroService
Rerank MicroService
Data Preparation MicroService
Reranking service
Embedding service
Vector DB

Retriever service
DocIndexRetriever GateWay

We provided DocRetriever with different deployment infra

We allow users to set retriever/reranker hyperparams via requests

Example usage:

url = "http://{host_ip}:{port}/v1/retrievaltool".format(host_ip=host_ip, port=port)
payload = {
    "messages": query,
    "k": 5,  # retriever top k
    "top_n": 2,  # reranker top n
}
response = requests.post(url, json=payload)