L O A D I N G

ساخت چت‌بات هوشمند | قسمت سوم

Dec. 8, 2025, 8:12 a.m. - توسط مدیر

ساخت چت‌بات هوشمند | قسمت سوم

معماری RAG در چت‌بات ما

چگونه لایه RAG دقت پاسخ‌ها را چند برابر می‌کند؟

چت‌بات‌های سازمانی برای اینکه بتوانند در موقعیت‌های واقعی پاسخ دقیق، قابل اعتماد و مستند ارائه دهند، نیازمند یک لایه‌ی دانش مستقل هستند؛ لایه‌ای که بتواند اطلاعات داخلی شرکت را به مدل زبانی تزریق کند.

در معماری چت‌بات ما این نقش بر عهده RAG (Retrieval-Augmented Generation) است.
در این مقاله معماری RAG، تکنولوژی‌های مورد استفاده و دلیل انتخاب آن‌ها را به‌صورت کامل توضیح می‌دهم.


🔹 RAG چیست و چرا در چت‌بات مهم است؟

مدل‌های زبانی (LLM) معمولاً دانش عمومی دارند و از داده‌هایی که به آن‌ها آموزش داده شده‌اند استفاده می‌کنند.
اما در محیط سازمانی، پاسخ‌ها باید دقیقاً مطابق با:

  • قوانین داخلی

  • دستورالعمل‌ها

  • گردش‌کار

  • سیاست‌های پشتیبانی

  • فرآیندهای اختصاصی

باشند.

بنابراین لازم است چت‌بات بتواند داده‌های داخلی شرکت را بازیابی و در فرایند پاسخ‌دهی استفاده کند.
لایه RAG دقیقاً همین کار را انجام می‌دهد.


🔵 معماری RAG در چت‌بات: سه بخش اصلی

لایه RAG در معماری ما از سه بخش تشکیل شده است:

  1. Embedding Pipeline

  2. Vector Database

  3. Retrieval Engine

در ادامه هر بخش را با جزئیات کامل توضیح می‌دهم.


1) Embedding Pipeline

تبدیل اسناد سازمانی به داده‌های قابل فهم برای مدل

تمام اسناد داخلی قبل از ورود به سیستم باید به یک شکل عددی قابل جستجو تبدیل شوند.
برای این کار از Embedding استفاده می‌کنیم.

🔧 تکنولوژی‌ها:

  • SentenceTransformers

  • مدل multilingual-e5-large

  • بردار ۱۰۲۴ بعدی

🎯 دلیل انتخاب:

  • دقت بسیار خوب روی زبان فارسی

  • مناسب برای متن‌های طولانی، گزارش‌ها و فایل‌های سازمانی

  • عملکرد قوی در سناریوهای Semantic Search

  • پایداری بالا در محیط Production

🔬 ورودی‌های این مرحله:

  • فایل‌های PDF

  • متن‌های خام

  • پیام‌ها و راهنماهای داخلی

  • دستورالعمل‌های پشتیبانی

  • مستندات فنی

🔍 خروجی:

هر سند → یک بردار ۱۰۲۴ بعدی → آماده ذخیره‌سازی در VectorDB


2) Vector Database

جایی که دانش سازمان ذخیره و قابل جستجو می‌شود

برای ذخیره embedding‌ها از یک پایگاه داده برداری استفاده می‌کنیم.

🔧 تکنولوژی:

  • Qdrant
    (نسخه داکرایز شده برای محیط‌های توسعه و Production)

قابلیت‌هایی که استفاده می‌کنیم:

  • HNSW Index برای جستجوی سریع

  • فیلترگذاری برای جداسازی مجموعه‌ها (multi-client, multi-domain)

  • متادیتا برای ثبت نوع محتوا، موضوع و تاریخ

  • به‌روزرسانی بدون downtime

  • پشتیبانی از soft-delete و آپدیت

معماری ذخیره‌سازی:

هر کلاینت یا سرویس می‌تواند Collection خاص خودش را داشته باشد:

collection: "credit_docs"
collection: "wallet_docs"
collection: "support_guides"

این طراحی باعث می‌شود چت‌بات بتواند در چند دامین مختلف بدون تداخل پاسخ دهد.


3) Retrieval Engine

مغز عملیاتی RAG: بازیابی داده‌های مرتبط با هر سؤال

زمانی که کاربر سؤال می‌پرسد، داده‌ها قبل از ورود به مدل زبانی از VectorDB بازیابی می‌شوند.

مراحل دقیق کار:

1. ساخت embedding از سؤال کاربر

ورودی کاربر به یک بردار تبدیل می‌شود.

2. جستجو در VectorDB

Qdrant نزدیک‌ترین اسناد مرتبط را بر اساس فاصله برداری برمی‌گرداند.

3. ترکیب سؤال + اسناد

چند سند مرتبط به‌همراه سؤال به عنوان context به مدل داده می‌شوند.

4. تولید پاسخ

مدل پاسخ را با استفاده از اطلاعات واقعی سازمان می‌سازد.

🔧 تکنولوژی‌های بخش Retrieval:

  • Python / Django

  • qdrant-client

  • llama-cpp-python


🧠 مدل زبان (LLM)

یک مدل سبک، سریع و مناسب زبان فارسی

برای تولید پاسخ نهایی از یک مدل سبک استفاده می‌کنیم که:

  • روی CPU اجرا می‌شود

  • مصرف حافظه پایین دارد

  • سرعت پاسخ‌دهی خوبی دارد

  • پشتیبانی بسیار خوبی از زبان فارسی دارد

  • مناسب پاسخ‌های سازمانی و کنترل‌شده است

(نام مدل عمداً ذکر نشده، طبق درخواست شما.)


🧩 نتیجه نهایی این معماری

لایه RAG باعث می‌شود چت‌بات بتواند:

✔️ پاسخ‌های کاملاً متکی به داده‌های داخلی بدهد

نه حدس، نه تخمین—بلکه طبق مستندات و قوانین شرکت.

✔️ دانش سازمان را بدون نیاز به آموزش مجدد مدل به‌روزرسانی کند

فقط اسناد جدید وارد VectorDB می‌شوند.

✔️ چند حوزه مختلف را هم‌زمان پشتیبانی کند

مثلاً Wallet، Credit، Support، Payments، Fraud و…

✔️ پاسخ‌های دقیق، کنترل‌شده و قابل استناد ارائه دهد

✔️ مستقل از Flow و Agent کار کند

RAG یک لایه مستقل است که در کنار Router، Flow Engine و Agent عمل می‌کند.


🔻 جمع‌بندی

RAG یکی از مهم‌ترین بخش‌های معماری چت‌بات ماست.
این لایه فاصله بین «دانش سازمان» و «پاسخ‌های مدل» را پر می‌کند و باعث می‌شود چت‌بات به یک ابزار واقعی برای پشتیبانی و عملیات داخلی تبدیل شود.

در ادامه، در مقاله بعدی بخش Flow Engine را توضیح می‌دهم:

  • ساختار درختی

  • مدل‌ها

  • ذخیره‌سازی مسیر کاربر

  • ادغام با Router

  • و دلیل اینکه Flow یکی از ستون‌های اصلی چت‌بات است

پست قبلی
تیم قدرتمند با آدم‌های توانمند ساخته می‌شود نه با آدم‌هایی که کار با آنها آسان‌تر است
پست بعدی
دیدگاه ها (0)

هیچ دیدگاهی وجود ندارد.

یک دیدگاه بگذارید