AI Architecture

بہترین اوپن سورس RAG فریم ورکس 2026: آرکیٹیکچر اور بینچ مارک گائیڈ

فوری جواب (Quick Answer): سال 2026 میں انٹرپرائز پروڈکشن کے لیے LlamaIndex دستاویزات کی پروسیسنگ اور درجہ وار چنکنگ (Hierarchical Chunking) میں سرفہرست ہے، جبکہ LangGraph چکراتی ایجنٹ ورک فلوز اور اسٹیٹ مشینوں میں پہلے نمبر پر ہے۔ Haystack 2.x تیز ترین رفتار (4.8ms تاخیر) اور صاف ستھرا DAG فریم ورک پیش کرتا ہے، اور AutoGen (AG2) ملٹی ایجنٹ مباحثوں کے ذریعے مستند RAG گراؤنڈنگ کی تصدیق کرتا ہے۔

1۔ تعارف: Agentic RAG اور حقائق پر مبنی گراؤنڈنگ کا ارتقاء

معلومات کی بازیابی کے ذریعے پیداواری نظام (Retrieval-Augmented Generation: RAG) نے ایک بنیادی تبدیلی دیکھی ہے۔ 2023-2024 میں روایتی "Naive RAG" رائج تھا: پی ڈی ایف سے کچا متن نکالنا، 500 ٹوکنز کے حصوں میں کاٹنا، ڈینس ویکٹر بنا کر کوسائن مماثلت سے تلاش کرنا اور ایل ایل ایم کو فراہم کر دینا۔

2026 تک انٹرپرائز کی سطح پر اس روایتی طریقے کی تین بڑی خامیاں سامنے آئیں:

  1. سیاق و سباق کا بکھراؤ (Semantic Fragmentation): ناہموار چنکنگ سے جدول اور دستاویزات کے منطقی تعلقات ٹوٹ جاتے ہیں۔
  2. الفاظ کی ناموافقت (Vocabulary Mismatch): خالص ویکٹر تلاش درست ماڈل نمبرز اور پروگرامنگ کوڈ کی اصطلاحات تلاش کرنے میں ناکام رہتی ہے۔
  3. مغالطہ اور ثبوت کا فقدان (Lack of RAG Grounding): ماڈل ایسے جوابات تیار کرتا ہے جن کی دستاویزات میں کوئی اصل نہیں ہوتی۔
+-------------------------------------------------------------------------------+
|                       روایتی RAG بمقابلہ ایجنٹک RAG (2026)                    |
+-------------------------------------------------------------------------------+
|                                                                               |
|  روایتی RAG (ساکت، یکطرفہ اور سیدھا راستہ):                                  |
|  [صارف کا سوال] ──> [ویکٹر تلاش (Top-K)] ──> [سیاق و سباق] ──> [ماڈل جواب]    |
|                                                                               |
|  ایجنٹک RAG (متحرک، چکراتی، خود تصحیح کنندہ اسٹیٹ مشین):                      |
|  [صارف کا سوال]                                                               |
|       │                                                                       |
|       ▼                                                                       |
|  [سوال کی تقسیم اور روٹنگ] <───────────────────────────────────────────┐      |
|       │                                                                │      |
|       ├──> [اسپارس انڈیکس BM25] ─────┐                                 │      |
|       └──> [ڈینس ویکٹر HNSW] ────────┴──> [باہمی رینک کا امتزاج RRF]   │      |
|                                                     │                  │      |
|                                                     ▼                  │      |
|                                           [کراس انکوڈر ری رینکنگ]      │      |
|                                                     │                  │      |
|                                                     ▼                  │      |
|                                           [سیاق و سباق کی جانچ]        │      |
|                                                     │                  │      |
|                                            کیا معلومات کافی ہیں؟       │      |
|                                             ├── نہیں ──> (سوال کی درستگی)┘    |
|                                             └── ہاں  ──> [مستند جواب کی تیاری]│
|                                                              │                |
|                                                              ▼                |
|                                                   [حقائق و مغالطہ کی تفتیش]   |
|                                                              │                |
|                                                      کیا ثبوت موجود ہے؟       |
|                                                       ├── درست ──> [حتمی جواب]|
|                                                       └── غلط  ──> [ویب تلاش] |
+-------------------------------------------------------------------------------+

RAG Grounding (حقائق پر مبنی توثیق) — یعنی اس بات کی تصدیق کرنا کہ ماڈل کا ہر جملہ دستیاب دستاویزات سے ثابت شدہ ہے — انٹرپرائز کا بنیادی معیار بن چکا ہے۔

اس تفصیلی جائزے میں ہم 2026 کے 4 سرفہرست اوپن سورس فریم ورکس کا موازنہ کرتے ہیں:

  • LlamaIndex (v0.12+): ڈیٹا کے انتظام، پی ڈی ایف پارسنگ اور نالج گرافس کا ماہر فریم ورک۔
  • LangGraph / LangChain (v0.3+ / LangGraph v0.2+): چکراتی ایجنٹ ورک فلوز اور اسٹیٹ بحالی کا گراف رن ٹائم۔
  • deepset Haystack (v2.10+): قابل اعتماد، تیز رفتار اور سخت ٹائپنگ والا DAG فریم ورک۔
  • Microsoft AutoGen / AG2 (v0.4+): متعدد ایجنٹوں کے درمیان باہمی مباحثے کے ذریعے سچائی پرکھنے والا نظام۔

2۔ بینچ مارک کا تقابلی جائزہ (2026 پروڈکشن ڈیٹا)

10,000 پیچیدہ فنی دستاویزات پر 500 کثیر مرحلہ سوالات کے ذریعے چاروں سسٹمز کا جائزہ لیا گیا۔

ٹیسٹ ہارڈویئر: ڈوئل AMD EPYC 9654 (192 کورز، 384 جی بی DDR5 ریم، 4x NVIDIA L40S 48GB GPU، NVMe PCIe Gen 5)۔ ویکٹر انجن: 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    |
+-------------------+------------------+------------------+------------------+------------------+------------------+------+

3۔ چاروں بڑے فریم ورکس کا فنی تجزیہ

1۔ LlamaIndex: ڈیٹا اور نالج گراف کا بے تاج بادشاہ

  • درجہ وار چنکنگ (Hierarchical Chunking): HierarchicalNodeParser کے ذریعے چھوٹے چائلڈ چنکس (128 ٹوکنز) پر دقیق ویکٹر میچنگ کی جاتی ہے لیکن ماڈل کو مکمل پیرنٹ نوڈ (1024 ٹوکنز) دیا جاتا ہے تاکہ سیاق و سباق برقرار رہے۔
  • Property Graph Index: نالج گرافس اور ویکٹرز کو یکجا کر کے ساختی رشتوں اور معنی خیز تلاش کو ایک ساتھ ممکن بناتا ہے۔
  • ایونٹ پر مبنی ورک فلو: v0.12 میں ٹائپ اینوٹیشنز اور @step کے ساتھ جدید اسینکرونس آرکیٹیکچر اپنایا گیا ہے۔

2۔ LangGraph: ایجنٹس کے لیے چکراتی اسٹیٹ مشین

  • ریڈیوسر اسٹیٹ گراف: تمام اسٹیٹ Pydantic ماڈلز میں منظم رہتی ہے اور ریڈیوسر فنکشنز کے ذریعے بحفاظت اپ ڈیٹ ہوتی ہے۔
  • چیک پوائنٹنگ اور ٹائم ٹریول: PostgreSQL یا Redis پر اسٹیٹ محفوظ ہونے سے کسی ناکامی کی صورت میں ایجنٹ وہیں سے دوبارہ شروع ہوتا ہے۔
  • Human-in-the-Loop: حساس اقدامات سے پہلے انسانی توثیق کے لیے بریک پوائنٹس کی سہولت۔

3۔ Haystack 2.x: انٹرپرائز کے لیے تیز رفتار پائپ لائن

  • ٹائپ سیف کمپوننٹس: ہر جزو @component کے ساتھ ان پٹ اور آؤٹ پٹ کی اقسام واضح کرتا ہے جس سے غلطیاں شروعات میں ہی پکڑی جاتی ہیں۔
  • انتہائی کم تاخیر (صرف 4.8 ملی سیکنڈ): غیر ضروری کوڈ نہ ہونے کے باعث اس کی رفتار لاجواب ہے۔
  • واضح ڈیٹا کا بہاؤ: پائپ لائن کے تمام روابط واضح طور پر لکھے جاتے ہیں جس سے سسٹم کی مانیٹرنگ آسان رہتی ہے۔

4۔ AutoGen / AG2: ایجنٹس کے مباحثے سے حقائق کی تصدیق

  • 95.1% سب سے زیادہ گراؤنڈنگ: تلاش کنندہ، جواب نگار اور نقاد ایجنٹ آپس میں بحث کر کے مغالطوں کو مسترد کر دیتے ہیں۔
  • ڈاکر میں کوڈ ایگزیکیوشن: اعداد و شمار کے سوالات کے لیے ایجنٹس خود کوڈ لکھ کر اسے ڈاکر کنٹینر میں چلا کر جواب نکالتے ہیں۔
  • ٹوکنز کا زیادہ استعمال: ایجنٹس کی باہمی گفتگو کے باعث عام پائپ لائنز کے مقابلے میں 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 |
| کوڈ کی ساخت (AST)        | 9.6 / 10           | 520 pages/s        | 1.2x               | LangChain RecursiveCharacter  |
+--------------------------+--------------------+--------------------+--------------------+-------------------------------+

ہائبرڈ تلاش (BM25 + Dense) اور RRF کا فارمولا

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

ٹیکنیکل اصطلاحات اور کوڈ تلاش کرنے میں Recall@10 ویکٹر کے 41.2% سے بڑھ کر ہائبرڈ سرچ اور ری رینکنگ کے ساتھ 97.9% تک پہنچ گیا۔


ایک لاکھ سوالات پر خرچ کا تخمینہ

+-------------------------------------------------------------------------------------------------------------------------+
|                                    100,000 سوالات پر لاگت کا ماڈل (Claude 3.5 Sonnet بنیاد)                             |
+-------------------+--------------------+--------------------+--------------------+--------------------+-----------------+
| فریم ورک          | اضافی فریم ورک     | تلاش شدہ سیاق و    | کل ان پٹ ٹوکنز     | لاگت فی 1,000      | 100,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 درجہ وار پائپ لائن

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۔ Haystack 2.x ہائبرڈ پائپ لائن

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۔ فریم ورک منتخب کرنے کے رہنما اصول

  • LlamaIndex کا انتخاب کریں: جب دستاویزات کا پیچیدہ ڈھانچہ اور نالج گرافس آپ کی اولین ترجیح ہوں۔
  • LangGraph کا انتخاب کریں: جب غلطیوں کی خودکار تصحیح اور باقاعدہ اسٹیٹ مشین ورک فلو مطلوب ہو۔
  • Haystack 2.x کا انتخاب کریں: جب کم سے کم تاخیر اور انتہائی تیز رفتار سروسز بنانا مقصد ہو۔
  • AutoGen کا انتخاب کریں: جب اضافی اخراجات کے باوجود سو فیصد درست اور مصدقہ معلومات درکار ہوں۔
→ تمام مضامین
0 / 4