AI Architecture

2026 के सर्वश्रेष्ठ ओपन-सोर्स RAG फ्रेमवर्क: आर्किटेक्चर और बेंचमार्क गाइड

त्वरित उत्तर (Quick Answer): 2026 के एंटरप्राइज प्रोडक्शन में, LlamaIndex डेटा-केंद्रित डॉक्यूमेंट पार्सिंग और हायरार्किकल चंकिंग (Hierarchical Chunking) के लिए सर्वोत्तम है। LangGraph जटिल चक्रीय एजेंटिक वर्कफ़्लो और स्टेट मशीनों में अग्रणी है। Haystack 2.x 4.8ms की न्यूनतम लेटेंसी और स्वच्छ DAG डिज़ाइन प्रदान करता है, जबकि AutoGen (AG2) मल्टी-एजेंट बहस के माध्यम से RAG ग्राउंडिंग (तथ्यात्मक सत्यापन) में सर्वश्रेष्ठ परिणाम देता है।

1. प्रस्तावना: Agentic RAG और RAG Grounding का विकास

रिट्रीवल-ऑगमेंटेड जनरेशन (Retrieval-Augmented Generation, RAG) ने एक क्रांतिकारी वास्तुकला परिवर्तन देखा है। 2023-2024 में "Naive RAG" उद्योग मानक था: पीडीएफ से टेक्स्ट निकालना, 500-टोकन के स्थिर टुकड़ों में विभाजित करना, डेंस वेक्टर एम्बेडिंग बनाना, कोसाइन समानता द्वारा टॉप-$k$ परिणाम खोजना और उन्हें सीधे एलएलएम संदर्भ में भेजना।

2026 तक, एंटरप्राइज स्तर पर Naive RAG के तीन गंभीर दोष सामने आए:

  1. अर्थगत विखंडन (Semantic Fragmentation): अनियंत्रित चंकिंग तालिकाओं, अनुच्छेदों और कानूनी शर्तों को तोड़ देती है।
  2. शब्दावली बेमेल (Vocabulary Mismatch): डेंस वेक्टर खोज सटीक उत्पाद कोड, आईडी और कोड सिंटैक्स को खोजने में विफल रहती है।
  3. मिथ्याभास (Hallucination) और RAG Grounding की कमी: एलएलएम बिना किसी दस्तावेजी प्रमाण के मनगढ़ंत उत्तर देने लगते हैं।
+-------------------------------------------------------------------------------+
|                       NAIVE RAG बनाम AGENTIC RAG (2026)                       |
+-------------------------------------------------------------------------------+
|                                                                               |
|  NAIVE RAG (स्थैतिक, रैखिक पाइपलाइन):                                         |
|  [उपयोगकर्ता प्रश्न] ──> [वेक्टर सर्च (Top-K)] ──> [संदर्भ] ──> [एलएलएम आउटपुट]|
|                                                                               |
|  AGENTIC RAG (गतिशील, चक्रीय, स्व-सुधार स्टेट मशीन):                          |
|  [उपयोगकर्ता प्रश्न]                                                          |
|       │                                                                       |
|       ▼                                                                       |
|  [प्रश्न विश्लेषण और रूटिंग] <────────────────────────────────────────┐       |
|       │                                                                │      |
|       ├──> [स्पार्स इंडेक्स BM25] ───┐                                 │      |
|       └──> [डेंस वेक्टर HNSW] ───────┴──> [रेसिप्रोकल रैंक फ्यूजन RRF] │      |
|                                                     │                  │      |
|                                                     ▼                  │      |
|                                           [क्रॉस-एन्कोडर री-रैंकिंग]   │      |
|                                                     │                  │      |
|                                                     ▼                  │      |
|                                           [प्रासंगिकता मूल्यांकन]     │      |
|                                                     │                  │      |
|                                            क्या संदर्भ पर्याप्त है?    │      |
|                                             ├── नहीं ──> (पुनः प्रश्न) ┘      |
|                                             └── हाँ  ──> [तथ्य आधारित निर्माण]|
|                                                              │                |
|                                                              ▼                |
|                                                   [भ्रम व सत्यता परीक्षक]     |
|                                                              │                |
|                                                      तथ्य सत्यापित हैं?       |
|                                                       ├── हाँ  ──> [अंतिम उत्तर]
|                                                       └── नहीं ──> [वेब फॉलबैक]|
+-------------------------------------------------------------------------------+

RAG Grounding (तथ्यात्मक प्रमाणिकता) — यह गणितीय और प्रोग्रामेटिक सत्यापन कि मॉडल का प्रत्येक कथन पुनर्प्राप्त संदर्भ दस्तावेजों पर आधारित है — एंटरप्राइज एआई का प्राथमिक बेंचमार्क बन चुका है।

इस तकनीकी गाइड में 2026 के 4 प्रमुख ओपन-सोर्स फ्रेमवर्क का मूल्यांकन किया गया है:

  • LlamaIndex (v0.12+): डॉक्यूमेंट पार्सिंग, हायरार्किकल इंडेक्स और प्रॉपर्टी नॉलेज ग्राफ हेतु डेटा-केंद्रित फ्रेमवर्क।
  • LangGraph / LangChain (v0.3+ / LangGraph v0.2+): चक्रीय एजेंट वर्कफ़्लो, स्टेट दृढ़ता और Human-in-the-Loop हेतु स्टेट ग्राफ रनटाइम।
  • deepset Haystack (v2.10+): उच्च थ्रूपुट, न्यूनतम लेटेंसी और सख्त टाइप-सुरक्षा वाला DAG फ्रेमवर्क।
  • Microsoft AutoGen / AG2 (v0.4+): एजेंटों के बीच सहयोगी बहस और आम सहमति द्वारा तथ्य सत्यापन करने वाला मल्टी-एजेंट फ्रेमवर्क।

2. कार्यकारी बेंचमार्क मैट्रिक्स (2026 प्रोडक्शन डेटा)

हमने 10,000 जटिल तकनीकी दस्तावेजों (वित्तीय रिपोर्ट, कानूनी अनुबंध, एपीआई विनिर्देश और पायथन/रस्ट कोडबेस) पर 500 मल्टी-स्टेप प्रश्नों के साथ सभी फ्रेमवर्क का परीक्षण किया।

परीक्षण हार्डवेयर: डुअल AMD EPYC 9654 (192 कोर, 384 GB DDR5 रैम, 4x NVIDIA L40S 48GB GPU, PCIe Gen 5 NVMe)। वेक्टर इंजन: Qdrant v1.13 और Elasticsearch 8.17। एम्बेडिंग: text-embedding-3-large और bge-m3। री-रैंकिंग: FlashRank और Cohere Rerank v3.5।

+-------------------------------------------------------------------------------------------------------------------------+
|                                    ओपन-सोर्स RAG फ्रेमवर्क बेंचमार्क (2026)                                              |
+-------------------+------------------+------------------+------------------+------------------+------------------+------+
| फ्रेमवर्क और      | मुख्य ऑर्केस्ट्रेशन| फ्रेमवर्क लेटेंसी| RAG ग्राउंडिंग   | हाइब्रिड सर्च    | री-रैंकिंग        | डेव  |
| कोर संस्करण       | आर्किटेक्चर      | ओवरहेड (p95)     | निष्ठा (%)       | (BM25+Dense RRF) | लेटेंसी ओवरहेड   | अनु. |
+-------------------+------------------+------------------+------------------+------------------+------------------+------+
| LlamaIndex v0.12  | Data-Graph / Flow| 18.4 ms          | 94.2%            | नेटिव इनबिल्ट    | +14.2 ms (लोकल)  | A    |
| LangGraph v0.2    | Cyclic StateGraph| 24.6 ms          | 93.8%            | प्लगइन्स द्वारा  | +16.8 ms (लोकल)  | A-   |
| Haystack v2.10    | Explicit DAG     | 4.8 ms           | 92.6%            | नेटिव पाइपलाइन   | +8.2 ms (लोकल)   | A+   |
| AutoGen v0.4 (AG2)| Multi-Agent Chat | 68.2 ms          | 95.1%            | कस्टम रैपर      | +21.4 ms (लोकल)  | B    |
+-------------------+------------------+------------------+------------------+------------------+------------------+------+

तकनीकी क्षमताएं और सिस्टम संसाधन प्रोफ़ाइल

+-------------------------------------------------------------------------------------------------------------------------+
|                                        तकनीकी क्षमताएं और सिस्टम ओवरहेड तुलना                                           |
+-------------------+--------------------+--------------------+--------------------+--------------------+-----------------+
| फ्रेमवर्क         | नेटिव चंकिंग       | स्टेट दृढ़ता और    | चक्रीय लूप और      | संदर्भ फैलाव       | डिबगिंग और      |
|                   | रणनीतियों की गहराई | चेकपॉइंटिंग        | मल्टी-एजेंट समर्थन | (टोकन प्रति टर्न)  | ट्रेसिंग         |
+-------------------+--------------------+--------------------+--------------------+--------------------+-----------------+
| LlamaIndex        | सर्वश्रेष्ठ (12+) | कस्टम / एक्सटेंशन  | नेटिव वर्कफ़्लो    | ~180-320 tokens    | LlamaTrace /    |
|                   | (Semantic, AST, PG)| (Llama-Index-Ext)  | (@step इवेंट)      |                    | OpenInference   |
| LangGraph         | सामान्य (LangChain | Postgres, Redis,   | प्रथम श्रेणी नेटिव | ~450-850 tokens    | LangSmith       |
|                   | Core पर आधारित)    | SQLite समर्थन      | (Stateful Reducer) | (संचित इतिहास)     | पूर्ण नेटिव     |
| Haystack          | उच्च (स्वच्छ,      | पाइपलाइन रनटाइम    | सबग्राफ और लूप     | ~60-120 tokens     | OpenTelemetry   |
|                   | DocumentSplitter)  | स्टेट (शून्य लेट.) | (नियंत्रित)        | (न्यूनतम ओवरहेड)   | पूर्ण नेटिव     |
| AutoGen           | न्यूनतम (बाहरी टूल | डेटाबेस / लोकल     | नेटिव गतिशील चैट   | ~1,200-2,800 tokens| AutoGen Studio  |
|                   | की आवश्यकता)       | डिस्क कैश          | मल्टी-एजेंट संवाद  | (पूरी चैट हिस्ट्री)| / कंसोल लॉग्स   |
+-------------------+--------------------+--------------------+--------------------+--------------------+-----------------+

3. चारों प्रमुख फ्रेमवर्क का आर्किटेक्चरल विश्लेषण

1. LlamaIndex: डेटा-प्रथम डॉक्यूमेंट इंजन

LlamaIndex को एलएलएम ऍप्लिकेशन्स के डेटा ऑर्केस्ट्रेशन लेयर के रूप में डिज़ाइन किया गया है।

  • हायरार्किकल पेरेंट-चाइल्ड चंकिंग: HierarchicalNodeParser के साथ सूक्ष्म लीफ-चंक (128 टोकन) इंडेक्स किए जाते हैं ताकि सटीक वेक्टर मैचिंग हो सके, लेकिन मॉडल को पूरा संदर्भ देने के लिए मूल पेरेंट नोड (1024 टोकन) भेजा जाता है।
  • Property Graph Index: वेक्टर एम्बेडिंग और प्रॉपर्टी नॉलेज ग्राफ को एक साथ जोड़ता है, जिससे तार्किक संबंधों और अर्थगत खोज को एक ही क्वेरी में निष्पादित किया जा सकता है।
  • Event-Driven Workflows: v0.12 में पुराने मोनोलिथिक सिस्टम को बदलकर टाइप एनोटेशन और @step डेकोरेटर आधारित एसिंक्रोनस इवेंट वर्कफ़्लो पेश किया गया है।

2. LangGraph: स्वायत्त एजेंटों के लिए साइक्लिक स्टेट मशीन

LangGraph पारंपरिक लीनियर चेन्स की सीमाओं को पार कर चक्रीय व स्व-सुधार प्रक्रियाओं को मॉडल करता है।

  • Reducer आधारित स्टेट ग्राफ: नोड्स पायथन फ़ंक्शन हैं और एजेस सशर्त ट्रांज़िशन हैं। शेयर्ड स्टेट Pydantic स्कीमा में रिड्यूसर फ़ंक्शंस के माध्यम से सुरक्षित रूप से म्यूटेट होती है।
  • टाइम-ट्रैवल और दृढ़ता: PostgreSQL या Redis चेकपॉइंटर्स के साथ किसी बाहरी विफलता के बाद एजेंट पिछले वैध स्टेट से पुनः शुरू हो सकता है।
  • Human-in-the-Loop: संवेदनशील कार्यों से पहले इंसानी समीक्षा के लिए ब्रेकपॉइंट्स सेट किए जा सकते हैं।

3. Haystack 2.x: उच्च-थ्रूपुट और न्यूनतम लेटेंसी DAG

deepset का Haystack 2.x एंटरप्राइज प्रोडक्शन की विश्वसनीयता और गति को ध्यान में रखकर तैयार किया गया है।

  • कड़ाई से टाइप किए गए घटक: @component डेकोरेटर वाले क्लासेस अपने इनपुट-आउटपुट को @component.output_types(...) के साथ स्पष्ट करते हैं। पाइपलाइन निर्माण के समय ही मिसमैच पकड़ लिए जाते हैं।
  • अत्यंत कम लेटेंसी (p95 4.8ms): अनावश्यक एब्सट्रैक्शन लेयर्स न होने से सीपीयू ओवरहेड लगभग नगण्य रहता है।
  • स्पष्ट डेटा प्रवाह: पाइपलाइन कनेक्शन कोड में स्पष्ट रूप से घोषित होते हैं (pipeline.connect(...)), जिससे OpenTelemetry डिस्ट्रीब्यूटेड ट्रेसिंग आसान हो जाती है।

4. AutoGen / AG2: मल्टी-एजेंट बहस द्वारा तथ्य सत्यापन

Microsoft Research द्वारा विकसित AutoGen, RAG को विशिष्ट डिजिटल एजेंटों के बीच एक संवाद के रूप में देखता है।

  • 95.1% की उच्चतम ग्राउंडिंग निष्ठा: रिट्रीवर, सिंथेसाइज़र और आलोचक (Critic) एजेंट आपस में बहस करके उत्तर जारी करने से पहले सभी गलतियों और भ्रमों को दूर करते हैं।
  • सैंडबॉक्स में कोड निष्पादन: डेटा विश्लेषण प्रश्नों के लिए एजेंट सुरक्षित डॉकर कंटेनर में पायथन कोड लिखकर सटीक गणना करते हैं।
  • टोकन खपत की अधिकता: एजेंटों के बीच लगातार बातचीत के कारण लीनियर पाइपलाइन की तुलना में 3 से 5 गुना अधिक टोकन खर्च होते हैं।

4. चंकिंग, हाइब्रिड सर्च, री-रैंकिंग और प्रोडक्शन लागत

चंकिंग रणनीतियों का बेंचमार्क

+-------------------------------------------------------------------------------------------------------------------------+
|                                           चंकिंग रणनीतियों की तुलनात्मक समीक्षा                                         |
+--------------------------+--------------------+--------------------+--------------------+-------------------------------+
| चंकिंग रणनीति            | अर्थगत सुसंगतता    | इंडेक्सिंग गति     | स्टोरेज मल्टीप्लायर| अनुशंसित फ्रेमवर्क कार्यान्वयन|
|                          | (स्कोर 1-10)       | (पेज / सेकंड)      | (मूल टेक्स्ट बनाम) |                               |
+--------------------------+--------------------+--------------------+--------------------+-------------------------------+
| निश्चित आकार (512 / 64)  | 4.2 / 10           | 840 pages/s        | 1.1x               | Haystack DocumentSplitter     |
| गतिशील अर्थगत (डिस्टेंस) | 8.1 / 10           | 45 pages/s         | 1.3x               | LlamaIndex SemanticSplitter   |
| हायरार्किकल (पेरेंट/चाइल्ड)| 9.4 / 10         | 310 pages/s        | 2.8x               | LlamaIndex HierarchicalParser |
| एएसटी / कोड सिंटैक्स     | 9.6 / 10           | 520 pages/s        | 1.2x               | LangChain RecursiveCharacter  |
+--------------------------+--------------------+--------------------+--------------------+-------------------------------+

हाइब्रिड सर्च (BM25 + Dense) और Reciprocal Rank Fusion (RRF)

शब्दावली बेमेल की समस्या को हल करने के लिए लेक्सिकल और वेक्टर खोज को RRF द्वारा संयोजित किया जाता है:

$$RRF(d \in D) = \sum_{m \in M} \frac{1}{k + r_m(d)}$$

सटीक पहचानकर्ताओं और कोड के लिए Recall@10 केवल वेक्टर के 41.2% से बढ़कर हाइब्रिड सर्च + क्रॉस-एन्कोडर री-रैंकिंग के साथ 97.9% तक पहुँच गया।


री-रैंकिंग लेटेंसी और सटीकता बेंचमार्क

+-------------------------------------------------------------------------------------------------------------------------+
|                                    री-रैंकर मॉडल प्रदर्शन और लेटेंसी तुलना (Top-50 से Top-5)                            |
+---------------------------+-------------------+--------------------+--------------------+-------------------------------+
| मॉडल का नाम               | परिनियोजन प्रकार  | लेटेंसी p50 (ms)   | लेटेंसी p95 (ms)   | MRR@10 लाभ (हाइब्रिड की तुलना)|
+---------------------------+-------------------+--------------------+--------------------+-------------------------------+
| FlashRank (MiniLM-L6)     | लोकल CPU / ONNX   | 6.2 ms             | 11.4 ms            | +14.2%                        |
| BGE-Reranker-v2-m3        | लोकल GPU (L40S)   | 14.8 ms            | 28.6 ms            | +22.8%                        |
| Cohere Rerank v3.5        | क्लाउड SaaS API   | 94.0 ms            | 148.0 ms           | +25.4%                        |
| Cross-Encoder (ms-marco)  | लोकल CPU          | 82.0 ms            | 142.0 ms           | +19.1%                        |
+---------------------------+-------------------+--------------------+--------------------+-------------------------------+

100,000 प्रश्नों पर टोकन खपत और परिचालन लागत

+-------------------------------------------------------------------------------------------------------------------------+
|                                    100,000 प्रश्नों पर लागत मॉडल (Claude 3.5 Sonnet आधार)                              |
+-------------------+--------------------+--------------------+--------------------+--------------------+-----------------+
| फ्रेमवर्क         | फ्रेमवर्क ओवरहेड   | प्राप्त संदर्भ     | प्रति प्रश्न कुल   | लागत प्रति         | 100k प्रश्नों   |
|                   | टोकन प्रति प्रश्न  | टोकन प्रति प्रश्न  | इनपुट टोकन         | 1,000 प्रश्न       | की कुल लागत     |
+-------------------+--------------------+--------------------+--------------------+--------------------+-----------------+
| Haystack 2.x      | ~85 tokens         | 1,850 tokens       | 1,935 tokens       | $5.80              | $580.50         |
| LlamaIndex        | ~240 tokens        | 1,920 tokens       | 2,160 tokens       | $6.48              | $648.00         |
| LangGraph         | ~620 tokens        | 2,100 tokens       | 2,720 tokens       | $8.16              | $816.00         |
| AutoGen           | ~1,850 tokens      | 2,400 tokens       | 4,250 tokens       | $12.75             | $1,275.00       |
+-------------------+--------------------+--------------------+--------------------+--------------------+-----------------+

5. प्रोडक्शन कोड उदाहरण

1. LlamaIndex: हायरार्किकल पेरेंट-चाइल्ड RAG और BGE री-रैंकर

import os
from llama_index.core import VectorStoreIndex, StorageContext, Settings
from llama_index.core.node_parser import HierarchicalNodeParser, get_leaf_nodes
from llama_index.core.retrievers import AutoMergingRetriever
from llama_index.core.query_engine import RetrieverQueryEngine
from llama_index.core.postprocessor import SentenceTransformerRerank
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.llms.openai import OpenAI
from llama_index.core.schema import Document

Settings.llm = OpenAI(model="gpt-4o", temperature=0.1)
Settings.embed_model = OpenAIEmbedding(model="text-embedding-3-large")

node_parser = HierarchicalNodeParser.from_defaults(
    chunk_sizes=[1024, 256, 128],
    chunk_overlap=20
)

raw_docs = [Document(text="कॉर्पोरेट विधिक नीतियां और अनुबंध शर्तें...")]
nodes = node_parser.get_nodes_from_documents(raw_docs)
leaf_nodes = get_leaf_nodes(nodes)

storage_context = StorageContext.from_defaults()
storage_context.docstore.add_documents(nodes)

index = VectorStoreIndex(leaf_nodes, storage_context=storage_context)

base_retriever = index.as_retriever(similarity_top_k=25)
retriever = AutoMergingRetriever(base_retriever, storage_context=storage_context, verbose=True)

reranker = SentenceTransformerRerank(model="BAAI/bge-reranker-v2-m3", top_n=5)
query_engine = RetrieverQueryEngine.from_args(retriever=retriever, node_postprocessors=[reranker])

response = query_engine.query("धारा 4.2 में उल्लिखित अनिवार्य देयता सीमाएं क्या हैं?")
print(str(response))

2. LangGraph: स्व-सुधार RAG (Corrective RAG)

from typing import List, TypedDict
from pydantic import BaseModel, Field
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_openai import ChatOpenAI
from langgraph.graph import StateGraph, END

class GraphState(TypedDict):
    question: str
    generation: str
    documents: List[str]
    iteration_count: int

class GradeDocuments(BaseModel):
    binary_score: str = Field(description="'yes' यदि दस्तावेज़ प्रासंगिक है, अन्यथा 'no'")

class GradeHallucination(BaseModel):
    binary_score: str = Field(description="'yes' यदि उत्तर पूरी तरह संदर्भ पर आधारित है, अन्यथा 'no'")

llm = ChatOpenAI(model="gpt-4o", temperature=0)

def retrieve(state: GraphState):
    return {"documents": [f"प्रश्न का संदर्भ परिच्छेद: {state['question']}"], "iteration_count": state.get("iteration_count", 0)}

def grade_documents(state: GraphState):
    grader = llm.with_structured_output(GradeDocuments)
    filtered = []
    for doc in state["documents"]:
        res = grader.invoke([SystemMessage(content="प्रासंगिकता का मूल्यांकन करें।"), HumanMessage(content=f"प्रश्न: {state['question']}\nदस्तावेज़: {doc}")])
        if res.binary_score == "yes":
            filtered.append(doc)
    return {"documents": filtered}

def generate(state: GraphState):
    context = "\n".join(state["documents"])
    res = llm.invoke([SystemMessage(content="केवल संदर्भ के आधार पर उत्तर दें।"), HumanMessage(content=f"संदर्भ:\n{context}\n\nप्रश्न: {state['question']}")])
    return {"generation": res.content, "iteration_count": state["iteration_count"] + 1}

def check_hallucination(state: GraphState):
    grader = llm.with_structured_output(GradeHallucination)
    context = "\n".join(state["documents"])
    res = grader.invoke([SystemMessage(content="तथ्यात्मक ग्राउंडिंग जांचें।"), HumanMessage(content=f"तथ्य:\n{context}\n\nउत्तर: {state['generation']}")])
    if res.binary_score == "yes":
        return "grounded"
    elif state["iteration_count"] >= 3:
        return "max_retries"
    return "re_evaluate"

workflow = StateGraph(GraphState)
workflow.add_node("retrieve", retrieve)
workflow.add_node("grade_docs", grade_documents)
workflow.add_node("generate", generate)

workflow.set_entry_point("retrieve")
workflow.add_edge("retrieve", "grade_docs")
workflow.add_edge("grade_docs", "generate")
workflow.add_conditional_edges("generate", check_hallucination, {"grounded": END, "max_retries": END, "re_evaluate": "retrieve"})

app = workflow.compile()
output = app.invoke({"question": "तीसरी तिमाही के लिए पूंजीगत व्यय सीमा क्या है?"})
print(output["generation"])

3. Haystack 2.x: अल्ट्रा-फ़ास्ट हाइब्रिड पाइपलाइन (BM25 + Qdrant)

from haystack import Pipeline
from haystack.components.joiners import DocumentJoiner
from haystack.components.builders import PromptBuilder
from haystack.components.generators import OpenAIGenerator
from haystack_integrations.components.retrievers.qdrant import QdrantEmbeddingRetriever
from haystack_integrations.document_stores.qdrant import QdrantDocumentStore
from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.components.embedders import OpenAITextEmbedder
from haystack_integrations.components.rankers.fastembed import FastembedRanker

qdrant_store = QdrantDocumentStore(host="localhost", port=6333, index="enterprise_rag")
bm25_store = InMemoryDocumentStore()

pipeline = Pipeline()
pipeline.add_component("text_embedder", OpenAITextEmbedder(model="text-embedding-3-large"))
pipeline.add_component("dense_retriever", QdrantEmbeddingRetriever(document_store=qdrant_store, top_k=20))
pipeline.add_component("sparse_retriever", InMemoryBM25Retriever(document_store=bm25_store, top_k=20))
pipeline.add_component("document_joiner", DocumentJoiner(join_mode="reciprocal_rank_fusion", top_k=25))
pipeline.add_component("reranker", FastembedRanker(model_name="ms-marco-MiniLM-L-6-v2", top_k=5))

template = """
सत्यापित संदर्भ के आधार पर ईमानदारी से उत्तर दें।
संदर्भ:
{% for doc in documents %}
{{ doc.content }}
{% endfor %}
प्रश्न: {{ query }}
उत्तर:
"""
pipeline.add_component("prompt_builder", PromptBuilder(template=template))
pipeline.add_component("llm", OpenAIGenerator(model="gpt-4o"))

pipeline.connect("text_embedder.embedding", "dense_retriever.query_embedding")
pipeline.connect("dense_retriever.documents", "document_joiner.documents")
pipeline.connect("sparse_retriever.documents", "document_joiner.documents")
pipeline.connect("document_joiner.documents", "reranker.documents")
pipeline.connect("reranker.documents", "prompt_builder.documents")
pipeline.connect("prompt_builder.prompt", "llm.prompt")

results = pipeline.run({
    "text_embedder": {"text": "सर्वर SLA गारंटी क्या हैं?"},
    "sparse_retriever": {"query": "सर्वर SLA गारंटी क्या हैं?"},
    "prompt_builder": {"query": "सर्वर SLA गारंटी क्या हैं?"}
})
print(results["llm"]["replies"][0])

6. निर्णय रूपरेखा: 2026 में कौन सा फ्रेमवर्क चुनें?

                                [RAG फ्रेमवर्क का चयन]
                                           │
              ┌────────────────────────────┴────────────────────────────┐
              ▼                                                         ▼
    [डॉक्यूमेंट पार्सिंग मुख्य चुनौती है?]                    [एजेंट व वर्कफ़्लो नियंत्रण मुख्य है?]
              │                                                         │
      ┌───────┴───────┐                                         ┌───────┴───────┐
      हाँ             नहीं                                      हाँ             नहीं
      │               │                                         │               │
[जटिल PDF,       [उच्च थ्रूपुट, कम लेटेंसी,                [चक्रीय स्टेट,    [मल्टी-एजेंट बहस,
 प्रॉपर्टी ग्राफ,डेटरमिनिस्टिक DAG?]                        चेकपॉइंटिंग,     सर्वोच्च तथ्य
 हायरार्किकल चंक]     │                                     Human-in-Loop]    प्रमाणिकता]
      │          ┌────┴────┐                                    │               │
      │          हाँ       नहीं                             ┌───┴───┐       ┌───┴───┐
      ▼          │          │                               │       │       │       │
  LlamaIndex  Haystack  LangGraph                      LangGraph Haystack AutoGen LlamaIndex
  (डेटा पार्सिंग(सबसे तेज़(चक्रीय वर्कफ़्लो)             (मजबूत    (रैखिक  (सर्वोच्च(संरचित
   सर्वश्रेष्ठ)   DAG p95)                               स्टेट)    स्केल)  सत्यता)   डेटा)

अंतिम निष्कर्ष:

  • LlamaIndex: जब आपकी मुख्य चुनौती विभिन्न प्रारूपों के जटिल दस्तावेज़ों को पार्स करना और नॉलेज ग्राफ बनाना हो।
  • LangGraph: जब आपको स्व-सुधार करने वाले जटिल एजेंट, चेकपॉइंट दृढ़ता और मानवीय पर्यवेक्षण की आवश्यकता हो।
  • Haystack 2.x: जब न्यूनतम लेटेंसी, पूर्वानुमेयता और उच्च थ्रूपुट वाले एंटरप्राइज माइक्रोसर्विस की आवश्यकता हो।
  • AutoGen: जब लेटेंसी और टोकन लागत से अधिक तथ्यात्मक सत्यता और भ्रम का खात्मा महत्वपूर्ण हो।
← सभी लेख
0 / 4