
# تولید ترکیبی با Retrieval‑Augmented Generation برای خودکارسازی پرسش‌نامه‌های امن و قابل حسابرسی

## مقدمه

پرسش‌نامه‌های امنیتی، ارزیابی ریسک فروشندگان و ممیزی‌های انطباق، یک گره‌بردار برای شرکت‌های SaaS با رشد سریع هستند. تیم‌ها ساعت‌ها زمان صرف جستجو برای بندهای سیاست، استخراج شواهد دارای نسخه‌گذاری و ساختن دستی پاسخ‌های روایی می‌کنند. در حالی که هوش مصنوعی مولد به تنهایی می‌تواند پاسخ‌ها را پیش‌نویس کند، خروجی خالص مدل‌های زبانی بزرگ اغلب **قابلیت ردیابی**، **محل داده‌ها** و **قابلیت حسابرسی** را ندارند — سه ستون غیرقابل مذاکره برای محیط‌های نظارتی.

پدیدار می‌شود **Hybrid Retrieval‑Augmented Generation (RAG)**: یک الگوی طراحی که خلاقیت مدل‌های زبانی بزرگ (LLM) را با قابلیت اطمینان مخزن اسناد سازمانی ترکیب می‌کند. در این مقاله نحوه یکپارچه‌سازی یک خط لوله RAG ترکیبی توسط Procur2ze را بررسی می‌کنیم تا:

* **اطمینان از منبع‌گیری** برای هر جمله تولید شده.
* **اعمال محدودیت‌های policy‑as‑code** در زمان اجرا.
* **نگهداری لاگ‌های حسابرسی غیرقابل تغییر** که پاسخگوی حسابرسان خارجی هستند.
* **مقیاس‌پذیری در محیط‌های چند‑مستأجر** در حالی که الزامات ذخیره‌سازی داده‌های منطقه‌ای را رعایت می‌کند.

اگر پست‌های قبلی ما در مورد «AI Powered Retrieval Augmented Generation» یا «Self Healing Compliance Knowledge Base Powered by Generative AI» را خوانده‌اید، بسیاری از بلوک‌های سازنده مشابه را خواهید دید — اما این بار تمرکز بر **اتصال امن** و **هماهنگی اولویت‌دار انطباق** است.

---

## چرا پاسخ‌های خالص LLM کافی نیستند

| چالش | روش خالص LLM | روش ترکیبی RAG |
|-----------|-------------------|---------------------|
| قابلیت ردیابی شواهد | بدون لینک داخلی به اسناد منبع | هر ادعای تولیدی به یک شناسه سند و نسخه متصل می‌شود |
| محل داده‌ها | مدل ممکن است داده‌ها را از هر جایی بگیرد | مرحله بازیابی تنها از مخازن محدوده مستاجر استخراج می‌کند |
| تاریخچه تغییر قابل حسابرسی | بازسازی دلیل تولید جمله دشوار | لاگ‌های بازیابی + متادیتاهای تولید، یک مسیر کامل قابل بازپخش فراهم می‌کند |
| انطباق نظارتی (مانند [GDPR](https://gdpr.eu/)، [SOC 2](https://secureframe.com/hub/soc-2/what-is-soc-2)) | رفتار جعبه‌سیاه، ریسک «توهمی‌سازی» | بازیابی تضمین می‌کند اطلاعات بر پایه واقعی باشد و ریسک محتوای نامنطبق را کاهش می‌دهد |

مدل ترکیبی **جایگزین** LLM نمی‌شود؛ بلکه **راهنمایی** آن است تا هر پاسخ به یک دارایی شناخته‌شده متصل شود.

---

## مؤلفه‌های اصلی معماری RAG ترکیبی

```mermaid
graph LR
    A["کاربر پرسش‌نامه را ارسال می‌کند"] --> B["زمانبند کار"]
    B --> C["هماهنگ‌کننده RAG"]
    C --> D["مخزن اسناد (ذخیره‌ساز غیرقابل تغییر)"]
    C --> E["مدل زبانی بزرگ (LLM)"]
    D --> F["بازگرداننده (BM25 / جستجوی برداری)"]
    F --> G["Top‑k اسناد مرتبط"]
    G --> E
    E --> H["سنتزساز پاسخ"]
    H --> I["سازنده پاسخ"]
    I --> J["ضبط‌گر لاگ حسابرسی"]
    J --> K["پیشخوان پاسخ امن"]
```

*تمام برچسب‌های گره‌ها در دو کوتیشن دوبل به‌عنوان الزامی برای Mermaid قرار گرفته‌اند.*

### 1. مخزن اسناد

یک **ذخیره‌ساز نوشتن‑یکبار، غیرقابل تغییر** (مثلاً AWS S3 Object Lock، Azure Immutable Blob یا جدول PostgreSQL افزایشی بدون حذف). هر اثر انطباقی — PDFهای سیاست، گواهی‌نامه‌های SOC 2، کنترل‌های داخلی — دریافت می‌کند:

* یک **شناسه سند جهانی یکتا**.
* یک **بردار معنایی** که هنگام وارد کردن تولید می‌شود.
* **برچسب‌های نسخه** که پس از انتشار هرگز تغییر نمی‌کنند.

### 2. بازگرداننده

موتور بازیابی یک **جستجوی دو‌حالته** اجرا می‌کند:

1. **BM25 متراکم** برای مطابقت عبارات دقیق (مفید برای استنادات نظارتی).
2. **شباهت برداری متراکم** برای مرتبط‌سازی زمینه‌ای (مطابقت معنایی اهداف کنترل).

هر دو روش خروجی یک **فهرست رتبه‌بندی‌شده از شناسه‌های سند** می‌دهند که هماهنگ‌کننده به LLM می‌فرستد.

### 3. LLM با راهنمایی بازیابی

LLM یک *دستورات سیستمی* دریافت می‌کند که شامل:

* **دستورالعمل منبع‌گذاری**: «تمامی ادعاها باید با برچسب استنادی `[DOC-{id}@v{ver}]` دنبال شوند.»
* **قواعد policy‑as‑code** (مانند «هرگز داده شخصی را در پاسخ‌ها نشان ندهید»).

سپس مدل یک روایت ترکیب می‌کند در حالی که به‌وضوح به اسناد بازیابی‌شده ارجاع می‌دهد.

### 4. سنتزساز پاسخ و سازنده پاسخ

سنتزساز خروجی LLM را می‌گیرد، آن را بر اساس طرح پرسش‌نامه (JSON، PDF یا markdown) قالب‌بندی می‌کند و **متادیتای استنادی ماشین‑قابل‑خواندن** را اضافه می‌کند.

### 5. ضبط‌گر لاگ حسابرسی

هر مرحله ثبت می‌شود:

| فیلد | توضیح |
|-------|-------------|
| `request_id` | شناسه یکتا برای اجرای پرسش‌نامه |
| `retrieved_docs` | فهرست شناسه‌ها + نسخه‌های سند |
| `llm_prompt` | درخواست کامل ارسال‌شده به مدل (در صورت داشتن PII مخفی می‌شود) |
| `generated_answer` | متن با برچسب‌های استنادی |
| `timestamp` | زمان به‌صورت ISO‑8601 UTC |
| `operator` | حساب سرویس که کار را اجرا کرده است |

این لاگ‌ها **نوشتن‑یکبار** بوده و همراه مخزن برای یک مسیر کامل غیرقابل دستکاری ذخیره می‌شوند.

---

## مرور گام‑به‑گام

### گام ۱ – واردسازی و ایندکس‌سازی سیاست‌ها

1. نسخه جدید **[ISO 27001](https://www.iso.org/standard/27001) Statement of Applicability** را در مخزن بارگذاری کنید.  
2. سرویس واردسازی متن خام را استخراج می‌کند، بردار ۷۶۸‑بعدی را با استفاده از یک sentence‑transformer تولید کرده و بردار را همراه متادیتای سند ذخیره می‌کند.

### گام ۲ – ارسال پرسش‌نامه

یک تحلیل‌گر امنیتی در Procur2ze یک تیکت ایجاد می‌کند: «پرسش‌نامه SOC 2 Type II فروشنده برای Acme Corp را تکمیل کنید.» زمانبند کار یک **request_id** (`REQ-2025-1019-001`) اختصاص می‌دهد.

### گام ۳ – بازیابی

هماهنگ‌کننده سؤال را تجزیه می‌کند: *«روش‌های رمزنگاری در حالت استراحت برای داده‌های مشتری چگونه اعمال می‌شود؟»*  
سوال را به بازگرداننده می‌فرستد که پاسخ می‌دهد:

```
[
  { id: "DOC-ISO27001-001", version: "v3", score: 0.92 },
  { id: "DOC-Policy-Enc-002", version: "v5", score: 0.88 }
]
```

### گام ۴ – درخواست LLM

```
System: You are a compliance assistant. Cite each factual claim using the format [DOC-{id}@v{ver}].
User: Describe how encryption‑at‑rest is enforced for customer data.
Context: (Insert top‑k snippets from the two documents)
```

LLM تولید می‌کند:

> “تمام داده‌های مشتری ذخیره‌شده در سطل‌های AWS S3 ما با استفاده از AES‑256 GCM رمزنگاری در حالت استراحت می‌شود. کلیدهای رمزنگاری توسط AWS KMS مدیریت شده و هر ۹۰ روز یک بار چرخانده می‌شوند [DOC-Policy-Enc-002@v5]. این روش الزامات کنترلی ISO 27001 A.10.1 را برآورده می‌کند [DOC-ISO27001-001@v3].”

### گام ۵ – ترکیب پاسخ

سازنده پاسخ، پاسخ را به قالب JSON پرسش‌نامه تبدیل می‌کند و برچسب‌های استنادی را برای حسابرسی‌گران نگه می‌دارد.

### گام ۶ – نگهداری حسابرسی

تمام دارایی‌ها — پرسش اولیه، فهرست اسناد بازیابی‌شده، درخواست LLM، پاسخ تولیدشده — در یک **لاگ حسابرسی غیرقابل تغییر** نوشته می‌شود. حسابرسان می‌توانند بعداً لاگ را بررسی کرده و اطمینان حاصل کنند که پاسخ به طور کامل قابل ردیابی است.

---

## مزایای امنیتی و انطباقی

| مزیت | نحوه ارائه توسط RAG ترکیبی |
|---------|--------------------------|
| **شواهد نظارتی** | ارجاع مستقیم به اسناد نسخه‌دار |
| **محل داده‌ها** | بازیابی تنها از مخازن مکان‌دار مربوط به مستاجر |
| **کاهش توهمی‌سازی** | پایه‌گذاری بر دارایی‌های واقعی ریسک محتوای نامنطبق را کاهش می‌دهد |
| **تحلیل اثر تغییر** | اگر سندی به‌روز شود، لاگ حسابرسی فوراً تمام پاسخ‌های ارجاع‌دهنده به نسخه قبلی را شناسایی می‌کند |
| **اثبات صفر دانش** | سیستم می‌تواند اثبات‌های cryptographic تولید کند که نشان دهد یک پاسخ از سند خاصی استخراج شده است بدون آنکه محتویات سند را فاش کند (افزونه آینده) |

---

## مقیاس‌پذیری در محیط‌های SaaS چند‑مستأجر

یک فراهم‌کننده SaaS معمولاً صدها مشتری را خدمت‌رسانی می‌کند که هر کدام مخزن انطباقی خود را دارد. RAG ترکیبی به‌این شکل مقیاس میابد:

1. **مخازن جداگانه برای مستاجر**: هر مستاجر یک تقسیم منطقی با کلیدهای رمزنگاری اختصاصی دارد.
2. **استخر مشترک LLM**: LLM یک سرویس بدون وضعیت است؛ درخواست‌ها شامل شناسه مستاجر برای اعمال قوانین دسترسی می‌شوند.
3. **بازیابی موازی**: موتورهای جستجوی برداری (مانند Milvus، Vespa) به‌صورت افقی مقیاس‌پذیر هستند و میلیون‌ها بردار در هر مستاجر را اداره می‌کنند.
4. **شاردینگ لاگ حسابرسی**: لاگ‌ها به‌صورت شارد بر پایه مستاجر تقسیم می‌شوند اما در یک دفتر کل غیرقابل تغییر جهانی برای گزارش‌گیری متقابل ذخیره می‌شوند.

---

## فهرست بررسی برای تیم‌های Procur2ze

- [ ] **ایجاد ذخیره‌ساز غیرقابل تغییر** (S3 Object Lock، Azure Immutable Blob یا جدول افزودنی DB) برای تمام دارایی‌های انطباقی.  
- [ ] **تولید بردارهای معنایی** هنگام واردسازی؛ همراه با متادیتای سند ذخیره شوند.  
- [ ] **راه‌اندازی بازگرداننده دو‑حالته** (BM25 + بردار) پشت یک گیت‌وی API سریع.  
- [ ] **مفهوم‌سازی درخواست LLM** با دستورات استنادی و قواعد policy‑as‑code.  
- [ ] **ثبت همه مراحل** در سرویس لاگ حسابرسی غیرقابل تغییر (مانند AWS QLDB، Azure Immutable Ledger).  
- [ ] **اضافه‌کردن رابط کاربری تأیید** در داشبورد Procur2ze برای نمایش منابع ارجاع‌شده در هر پاسخ.  
- [ ] **اجرای تمرین‌های منظم انطباق**: شبیه‌سازی تغییرات سیاست و اطمینان از پرچم‌گذاری خودکار پاسخ‌های تحت تأثیر.  

---

## مسیرهای آینده

| ایده | اثر محتمل |
|------|-------------------|
| **بازیابی فدراسیون** – مخازن توزیع‌شده در مناطق مختلف که در یک پروتکل تجمیع امن شرکت می‌کنند | امکان نگه‌داری داده‌ها به‌طور محلی برای سازمان‌های جهانی در حالی که از دانش مدل مشترک بهره می‌برند |
| **یکپارچه‌سازی اثبات صفر‑دانش (ZKP)** – اثبات منبع پاسخ بدون فاش کردن سند | برآورده‌سازی مقررات حریم‌خصوصی فوق‌العاده سخت‌گیرانه (مانند «حق فراموش شدن» GDPR) |
| **حلقه یادگیری پیوسته** – بازخورد پاسخ‌های اصلاح‌شده به فرآیند فاین‑تیونینگ LLM | کیفیت پاسخ‌ها را در طول زمان بهبود می‌بخشد در حالی که قابلیت حسابرسی حفظ می‌شود |
| **موتور اجرای سیاست‑به‌صورت‑کد** – تبدیل قوانین سیاست به قراردادهای اجرایی که خروجی LLM را محدود می‌کند | اطمینان از عدم ورود زبان غیرمجاز (مانند ادعای بازاریابی) به پاسخ‌های انطباقی |

---

## نتیجه‌گیری

Hybrid Retrieval‑Augmented Generation شکافی که بین *هوش مصنوعی خلاق* و *اطمینان نظارتی* ایجاد می‌کند پر می‌کند. با پایه‌گذاری هر جمله تولیدی بر یک سند غیرقابل تغییر و نسخه‌بندی‌شده، Procur2ze می‌تواند پاسخ‌های **امن، قابل حسابرسی و فوق‌العاده سریع** برای پرسش‌نامه‌ها ارائه دهد. این الگو نه تنها زمان پاسخ‌دهی را به‌طور چشم‌گیری کاهش می‌دهد — معمولاً از روزها به دقیقه‌ها — بلکه یک **پایگاه دانش انطباقی زنده** می‌سازد که همزمان با تغییر سیاست‌ها تکامل می‌یابد، در حالی که تمام الزامات حسابرسی سخت‌گیرانه را برآورده می‌کند.

آماده‌اید این معماری را پیاده‌سازی کنید؟ ابتدا واردسازی مخزن اسناد را در مستاجر Procur2ze خود فعال کنید، سپس سرویس بازیابی را راه‌اندازی کنید و شاهد کاهش چشمگیر زمان تکمیل پرسش‌نامه‌ها باشید.

---

## مطالب مرتبط

- ساخت مسیرهای حسابرسی غیرقابل تغییر با AWS QLDB  
- Policy‑as‑Code: ادغام انطباق در خطوط پایپ‌لاین CI/CD  
- اثبات‌های صفر‑دانش برای حفظ حریم‌خصوصی داده‌های سازمانی