راهاندازی یک نسخهی آزمایشی از RAG (بازیابی مبتنی بر افزایش داده) در محیط محلی کار چندان دشواری نیست، اما رساندن آن به محیط عملیاتی (Production) در حوزههای حساسی مانند حقوق، پزشکی یا بیمه چالشی کاملاً متفاوت است. در این حوزهها، یک خطای کوچک یا توهم ساده میتواند هزینههای سنگین حقوقی یا مالی ایجاد کند؛ بنابراین سیستم نیازمند استناد دقیق به اسناد، رعایت حریم خصوصی و سطوح دسترسی، کنترل شدید هزینهها و ارزیابی پیوسته در برابر دادههای نامطلوب است.
در معماریهای عملیاتی سال 2026، الگوهای تثبیتشدهای برای غلبه بر این چالشها شکل گرفته است. استفاده از بازیابی ترکیبی (Dense + Sparse)، بازرتبهبندی با مدلهای تخصصی، اهرم کش کردن پرامپت (Prompt Caching) برای کاهش هزینهها تا بیش از 60 درصد و لایههای نظارتی ایمنی همگی در کنار هم قرار میگیرند تا سامانهای قابلاتکا و سازمانی بسازند.
اگر برای فراخوانی API مدلهای زبانی مانند Claude یا سرویسهای ابری با محدودیتهای پرداخت ارزی یا مسدود بودن دسترسی از داخل ایران مواجه هستید، گزینههای جایگزین متعددی وجود دارد. در این معماری میتوانید از مدلهای متنباز مثل Llama 3.3 70B روی زیرساخت خودمیزبان بهره ببرید، یا از گیتویهای واسط سازگار با مشخصات OpenAI برای دسترسی به مدلهای تجاری استفاده کنید.
شرکتهای Harvey، Glean، Mendable و LlamaCloud همگی در سال 2026 از یک معماری عملیاتی مشترک استفاده میکنند: بارگذاری دادهها با docling یا Unstructured و استفاده از ColPali برای محتوای بصری؛ جستجوی ترکیبی؛ بازرتبهبندی با bge-reranker-v2-gemma؛ سنتز و تولید پاسخ با Claude Sonnet 4.7 با کش کردن پرامپت (Prompt caching) با نرخ اصابت 60 تا 80 درصد؛ محافظت با Llama Guard 4 و NeMo Guardrails؛ پایش مستمر با Langfuse و Phoenix؛ و در نهایت نمرهدهی با RAGAS روی یک مجموعهی طلایی (Golden set) شامل 200 پرسش. ساخت چنین سیستمی در یک حوزهی تحت رگولاتوری (حقوقی، بالینی یا بیمه) پروژهی پایانی این دوره است و موفقیت در آن یعنی قبولی در ارزیابی مجموعهی طلایی، آزمونهای تیم قرمز و داشبورد دریفت (Drift).
فازهای تمرینشده: P5 · P7 · P11 · P12 · P17 · P18
مدت زمان: 30 ساعت
صورت مسئله
سامانههای RAG در حوزههای تحت رگولاتوری (قراردادهای حقوقی، پروتکلهای کارآزمایی بالینی، بیمهنامهها) پرکاربردترین الگوهای پیادهسازیشده در محیط عملیاتی سال 2026 هستند؛ زیرا بازگشت سرمایهی آنها کاملاً مشخص و حساسیت خروجیهایشان بسیار ملموس است. شرکت Harvey (برای موسسهی Allen & Overy) آن را برای حوزهی حقوقی پیاده کرد. Mendable نسخهی ویژهی مستندات توسعهدهندگان را روانهی بازار کرد و Glean جستجوی سازمانی را پوشش میدهد. الگوی اصلی این سامانهها یکسان است: بارگذاری داده با وفاداری بالا، بازیابی ترکیبی همراه با بازرتبهبندی، سنتز پاسخ با الزام به ارائهی استناد و کش کردن پرامپت، محافظت با چندین لایهی ایمنی و پایش مستمر دریفت.
بخشهای دشوار این کار به خود مدل مربوط نمیشوند؛ بلکه چالش اصلی رعایت انطباق قانونی بسته به حوزهی قضایی (HIPAA، GDPR، SOC2)، قابلیت حسابرسی در سطح استنادها، کنترل هزینهها (کش کردن پرامپت با نرخ اصابت بالا هزینهها را 60 تا 90 درصد کاهش میدهد)، تشخیص توهم (Hallucination Detection) با سنجهی وفاداری RAGAS و تشخیص دریفت اسناد زمانی است که فایلهای منبع بهروزرسانی میشوند ولی ایندکس همگام نشده است. در این پروژهی پایانی باید کل این پایپلاین را پیاده کنید و آن را با یک مجموعهی طلایی 200 سوالی در کنار مجموعهای از آزمونهای تیم قرمز بسنجید.
مفهوم
این پایپلاین دو بخش اساسی دارد: بارگذاری داده (Ingestion): ابزار docling یا Unstructured اسناد ساختاریافته را تحلیل میکند؛ مدل ColPali صفحات با بار بصری بالا را پردازش میکند؛ و چانکها خلاصهسازی و برچسبگذاری میشوند و برچسبهای دسترسی مبتنی بر نقش میگیرند. سپس بردارها درون pgvector به همراه pgvectorscale (برای کمتر از 50 میلیون بردار) یا Qdrant Cloud ذخیره میشوند و در کنار آنها جستجوی پراکنده با BM25 اجرا میشود. بخش گفتوگو: فریمورک LangGraph مدیریت حافظه و گفتوگوهای چندنوبتی را به دست میگیرد؛ هر پرسش از مسیر بازیابی ترکیبی میگذرد، با مدل bge-reranker-v2-gemma-2b بازرتبهبندی میشود، با Claude Sonnet 4.7 (با پرامپتِ کششده) سنتز میشود، خروجی از فیلترهای Llama Guard 4 و NeMo Guardrails عبور میکند و پاسخی دقیق با ارجاع محکم به استنادها ارائه میدهد.
استک ارزیابی از چهار لایه تشکیل شده است: مجموعهی طلایی (200 جفت پرسش و پاسخ برچسبخورده همراه با استناد) برای سنجش صحت؛ تیم قرمز (جیلبریکها، تلاش برای استخراج اطلاعات هویتی حساس یا PII، پرسشهای خارج از دامنه) برای ارزیابی ایمنی؛ RAGAS برای ارزیابی خودکار وفاداری، ارتباط پاسخ و دقت زمینه در هر نوبت گفتوگو؛ و داشبورد دریفت (Arize Phoenix) برای نظارت هفتگی بر کیفیت بازیابی و نمرهی توهم.
کش کردن پرامپت اهرم اصلی کاهش هزینه است. مدلهای Claude 4.5 به بالا و GPT-5 به بالا از کش کردن پرامپت سیستم و زمینهی بازیابیشده پشتیبانی میکنند. در نرخ اصابت 60 تا 80 درصد، هزینهی هر پرسش 3 تا 5 برابر کمتر میشود. برای رسیدن به بالاترین نرخ اصابت کش، باید پایپلاین را طوری طراحی کنید که پیشوندهای پایداری داشته باشد (ابتدا پرامپت سیستم و سپس زمینههای بازرتبهبندیشده قرار بگیرند).
معماری
documents (contracts, protocols, policies)
|
v
docling / Unstructured parse + ColPali for visuals
|
v
chunks + summaries + role-labels + jurisdiction tags
|
v
pgvector + pgvectorscale + BM25 (Tantivy)
|
query + role + jurisdiction
|
v
LangGraph conversational agent
+--- retrieve (hybrid)
+--- filter by role + jurisdiction
+--- rerank (bge-reranker-v2-gemma-2b or Voyage rerank-2)
+--- synthesize (Claude Sonnet 4.7, prompt cached)
+--- guard (Llama Guard 4 + NeMo Guardrails + Presidio output PII scrub)
+--- cite + return
|
v
eval:
RAGAS faithfulness / answer_relevance / context_precision (online)
Langfuse annotation queue (sampled)
Arize Phoenix drift (weekly)
red team suite (pre-release)
استک فنی
- بارگذاری: Unstructured.io یا docling برای اسناد ساختاریافته؛ ColPali برای فایلهای PDF با محتوای بصری غنی
- دیتابیس برداری: ترکیب pgvector و pgvectorscale برای زیر 50 میلیون بردار؛ در غیر این صورت Qdrant Cloud
- جستجوی پراکنده: Tantivy BM25 با وزندهی به فیلدها
- ارکستراسیون: جریانهای کاری LlamaIndex Workflows (بارگذاری داده) + LangGraph (گفتوگو)
- بازرتبهبندی (Re-ranker): مدل bge-reranker-v2-gemma-2b خودمیزبان یا Voyage rerank-2 میزبانیشده
- مدل زبانی بزرگ: Claude Sonnet 4.7 به همراه کش کردن پرامپت؛ طرح پشتیبان Llama 3.3 70B خودمیزبان
- ارزیابی: RAGAS 0.2 آنلاین؛ DeepEval برای مجموعهآزمونهای توهم و جیلبریک
- رصدپذیری: Langfuse خودمیزبان همراه با صف حاشیهنویسی؛ Arize Phoenix برای پایش دریفت
- گاردریلها: دستهبند ورودی و خروجی Llama Guard 4، سیاستهای NeMo Guardrails v0.12 و ابزار پاکسازی اطلاعات هویتی Presidio
- انطباق قانونی: برچسبهای دسترسی مبتنی بر نقش روی چانکها؛ برچسبهای حوزهی قضایی برای GDPR/HIPAA
پیادهسازی از صفر
-
بارگذاری داده. دادههای متنی خود را (1000 تا 10000 سند برای یک پروژهی واقعی) با Unstructured یا docling پردازش کنید. صفحات اسکنشده یا متکی به تصاویر را به ColPali بفرستید. چانکها را همراه با خلاصهها، برچسبهای نقش و تگهای حوزهی قضایی بسازید.
-
ایندکسگذاری. امبدینگهای متراکم (Voyage-3 یا Nomic-embed-v2) را داخل pgvector + pgvectorscale بریزید. ایندکس جانبی BM25 را با Tantivy بسازید. فیلترهای نقش و حوزهی قضایی را به عنوان پیلود (Payload) ذخیره کنید.
-
بازیابی ترکیبی. ابتدا دادهها را بر اساس نقش و حوزهی قضایی فیلتر کنید؛ سپس جستجوی متراکم و BM25 را به صورت موازی اجرا کنید؛ نتایج را با ادغام بر پایهی رتبهی متقابل (Reciprocal Rank Fusion) ترکیب کنید؛ 20 نتیجهی برتر را به بازرتبهبندی بفرستید و 5 مورد برتر نهایی را برای سنتز ارسال کنید.
-
تولید پاسخ با کش کردن پرامپت. پرامپت سیستم و قوانین ثابت را در هدر کش قرار دهید؛ زمینهی بازرتبهبندیشده را به عنوان ادامهی کش اضافه کنید؛ و پرسش کاربر را در انتهای کشنشده بیاورید. هدفگذاری کنید که در شرایط پایدار به نرخ اصابت 60 تا 80 درصد برسید.
-
گاردریلها. از Llama Guard 4 روی ورودی استفاده کنید؛ با NeMo Guardrails جلوی موضوعات ممنوعه در شیوهنامه یا پرسشهای خارج از دامنه را بگیرید؛ اطلاعات هویتی تصادفی در خروجی را با Presidio حذف کنید؛ و پس از فیلتر، سیستم را به درج استنادها ملزم سازید.
-
مجموعهی طلایی. 200 جفت پرسش و پاسخ بسازید که یک متخصص حوزه آنها را همراه با پاسخ و استنادها برچسبگذاری کرده باشد. عملکرد ایجنت را بر اساس تطابق دقیق استناد، صحت پاسخ و وفاداری (سنجهی RAGAS) نمرهدهی کنید.
-
تیم قرمز. 50 پرامپت خصمانه اجرا کنید: جیلبریکها (PAIR، TAP)، تلاش برای استخراج غیرمجاز PII، پرسشهای خارج از دامنه و نشت اطلاعات بین حوزههای قضایی مختلف. نتایج را با قبولی/ردی و سطح شدت ثبت کنید.
-
داشبورد دریفت. کیفیت بازیابی (nDCG، وفاداری استنادها) را به صورت هفتگی با Arize Phoenix رصد کنید. در صورت افت 5 درصدی، هشدار ارسال کنید.
-
گزارش هزینهها. در Langfuse این موارد را ثبت کنید: نرخ اصابت کش پرامپت، تعداد توکن در هر پرسش و تفکیک هزینه به ازای هر پرسش در هر مرحله.
استفاده از ابزارهای واقعی
$ chat --role=analyst --jurisdiction=GDPR
> what is the data-retention obligation for EU user profiles under our contract?
[retrieve] hybrid top-20 filtered to GDPR + analyst-role
[rerank] top-5 kept
[synth] claude-sonnet-4.7, cache hit 74%, 0.8s
answer:
The contract (Section 12.4, Master Services Agreement dated 2024-03-11)
obligates EU user profile deletion within 30 days of termination per GDPR
Article 17. The DPA amendment (DPA-v2.1, Section 5) extends this to 14 days
for "restricted" category data.
citations: [MSA-2024-03-11 s12.4, DPA-v2.1 s5]
خروجی این درس
سند outputs/skill-production-rag.md مشخصات تحویلی را شرح میدهد: یک چتبات در حوزهی تحت رگولاتوری که با برچسبهای انطباق قانونی مستقر شده، شیوهنامهی نمرهدهی را با موفقیت گذرانده و مجهز به پایش زندهی دریفت است.
| وزن | معیار | نحوهی ارزیابی |
|---|---|---|
| 25 | وفاداری RAGAS + ارتباط پاسخ | نمرهدهی آنلاین روی مجموعهی طلایی (200 جفت پرسش و پاسخ) |
| 20 | صحت استنادها | نسبت پاسخهایی که استنادهای مبنای قابلراستیآزمایی دارند |
| 20 | پوشش گاردریلها | نرخ قبولی Llama Guard 4 + نتایج مجموعهآزمون جیلبریک |
| 20 | مهندسی هزینه و تاخیر | نرخ اصابت کش پرامپت، تاخیر صدک 95 (p95) و هزینه به ازای هر پرسش |
| 15 | داشبورد پایش دریفت | داشبورد فعال Phoenix همراه با روند هفتگی کیفیت بازیابی |
| 100 |
تمرینها
-
بخش دومی از دادگان را تحت حوزهی قضایی متفاوتی بسازید (مثلاً HIPAA در کنار GDPR). با طراحی 20 آزمون ارزیابی تقاطع حوزهها، نشان دهید که فیلتر نقش و حوزهی قضایی جلوی نشت دادهها را میگیرد.
-
نرخ اصابت کش پرامپت را طی یک هفته ترافیک عملیاتی اندازه بگیرید. بررسی کنید کدام پرسشها پیشوند کش را به هم میزنند؛ سپس ساختار را اصلاح کنید.
-
حافظهی چندنوبتی را همراه با یک بافر خلاصهسازی 10 هزار توکنی پیادهسازی کنید. بسنجید که آیا با طولانی شدن گفتوگو، نمرهی وفاداری کاهش مییابد یا خیر.
-
مدل Claude Sonnet 4.7 را با Llama 3.3 70B خودمیزبان جایگزین کنید. تفاوت هزینه به ازای هر پرسش و تغییر نمرهی وفاداری را بسنجید.
-
یک حالت «عدم اطمینان» اضافه کنید: اگر بالاترین نمرات در مرحلهی بازرتبهبندی از یک آستانه کمتر بود، ایجنت به جای پاسخ دادن بگوید: «استناد معتبری ندارم». میزان کاهش اطمینان کاذب مدل را اندازه بگیرید.
اصطلاحات کلیدی
| اصطلاح | اصطلاح رایج | معنای واقعی |
|---|---|---|
| کش کردن پرامپت (Prompt caching) | «کش کردن پرامپت سیستم و زمینه» | قابلیتی در Claude و OpenAI که در صورت اصابت به کش، هزینهی توکنهای پیشوند را بین 60 تا 90 درصد کاهش میدهد. |
| RAGAS | «ارزیاب RAG» | امتیازدهی خودکار به وفاداری، ارتباط پاسخ و دقت زمینه. |
| مجموعهی طلایی (Golden set) | «ارزیابی برچسبخورده» | بیش از 200 پرسش و پاسخ برچسبخورده توسط کارشناس همراه با استنادها؛ دادهی واقعی (Ground truth). |
| برچسب حوزهی قضایی (Jurisdiction tag) | «برچسب انطباق قانونی» | دامنهی شمول GDPR/HIPAA/SOC2 که به چانکها متصل و با فیلتر بازیابی اعمال میشود. |
| وفاداری استنادها (Citation faithfulness) | «نرخ پاسخهای مستند» | درصدی از ادعاهای متن که به اسپنهای بازیابیشده از منبع تکیه دارند. |
| دریفت (Drift) | «افت کیفیت بازیابی» | تغییرات هفتگی در nDCG یا نمرهی استنادها؛ با آستانهی هشدار 5 درصد. |
| تیم قرمز (Red team) | «ارزیابی خصمانه» | آزمونهای ارزیابی پیش از عرضه برای جیلبریک، استخراج غیرمجاز PII و سوالات خارج از دامنه. |
برای مطالعهی بیشتر
- Harvey AI — مرجع استک عملیاتی در حوزهی حقوقی
- Glean enterprise search — مرجع RAG در مقیاس سازمانی
- Mendable documentation — مرجع RAG برای مستندات توسعهدهندگان
- LlamaCloud Parse + Index — بارگذاری دادهی مدیریتشده
- Anthropic prompt caching — مرجع اهرم کاهش هزینهها
- RAGAS 0.2 documentation — فریمورک استاندارد ارزیابی RAG
- Arize Phoenix — مرجع رصدپذیری دریفت
- Llama Guard 4 — دستهبند ایمنی سال 2026
- NeMo Guardrails v0.12 — فریمورک گاردریلهای مبتنی بر خطمشی
