|
2 | 2 |
|
3 | 3 | 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.
|
4 | 4 |
|
| 5 | +The DocIndexRetriever example is implemented using the component-level microservices defined in [GenAIComps](https://github.com/opea-project/GenAIComps). The flow chart below shows the information flow between different microservices for this example. |
| 6 | + |
| 7 | +```mermaid |
| 8 | +--- |
| 9 | +config: |
| 10 | + flowchart: |
| 11 | + nodeSpacing: 400 |
| 12 | + rankSpacing: 100 |
| 13 | + curve: linear |
| 14 | + themeVariables: |
| 15 | + fontSize: 50px |
| 16 | +--- |
| 17 | +flowchart LR |
| 18 | + %% Colors %% |
| 19 | + classDef blue fill:#ADD8E6,stroke:#ADD8E6,stroke-width:2px,fill-opacity:0.5 |
| 20 | + classDef orange fill:#FBAA60,stroke:#ADD8E6,stroke-width:2px,fill-opacity:0.5 |
| 21 | + classDef orchid fill:#C26DBC,stroke:#ADD8E6,stroke-width:2px,fill-opacity:0.5 |
| 22 | + classDef invisible fill:transparent,stroke:transparent; |
| 23 | + style DocIndexRetriever-MegaService stroke:#000000 |
| 24 | +
|
| 25 | + %% Subgraphs %% |
| 26 | + subgraph DocIndexRetriever-MegaService["DocIndexRetriever MegaService "] |
| 27 | + direction LR |
| 28 | + EM([Embedding MicroService]):::blue |
| 29 | + RET([Retrieval MicroService]):::blue |
| 30 | + RER([Rerank MicroService]):::blue |
| 31 | + end |
| 32 | + subgraph UserInput[" User Input "] |
| 33 | + direction LR |
| 34 | + a([User Input Query]):::orchid |
| 35 | + Ingest([Ingest data]):::orchid |
| 36 | + end |
| 37 | +
|
| 38 | + DP([Data Preparation MicroService]):::blue |
| 39 | + TEI_RER{{Reranking service<br>}} |
| 40 | + TEI_EM{{Embedding service <br>}} |
| 41 | + VDB{{Vector DB<br><br>}} |
| 42 | + R_RET{{Retriever service <br>}} |
| 43 | + GW([DocIndexRetriever GateWay<br>]):::orange |
| 44 | +
|
| 45 | + %% Data Preparation flow |
| 46 | + %% Ingest data flow |
| 47 | + direction LR |
| 48 | + Ingest[Ingest data] --> DP |
| 49 | + DP <-.-> TEI_EM |
| 50 | +
|
| 51 | + %% Questions interaction |
| 52 | + direction LR |
| 53 | + a[User Input Query] --> GW |
| 54 | + GW <==> DocIndexRetriever-MegaService |
| 55 | + EM ==> RET |
| 56 | + RET ==> RER |
| 57 | +
|
| 58 | + %% Embedding service flow |
| 59 | + direction LR |
| 60 | + EM <-.-> TEI_EM |
| 61 | + RET <-.-> R_RET |
| 62 | + RER <-.-> TEI_RER |
| 63 | +
|
| 64 | + direction TB |
| 65 | + %% Vector DB interaction |
| 66 | + R_RET <-.-> VDB |
| 67 | + DP <-.-> VDB |
| 68 | +
|
| 69 | +``` |
| 70 | + |
5 | 71 | ## We provided DocRetriever with different deployment infra
|
6 | 72 |
|
7 | 73 | - [docker xeon version](docker_compose/intel/cpu/xeon/README.md) => minimum endpoints, easy to setup
|
|
0 commit comments