مرجع تخصصی اتوماسیون با n8n و ابزارهای هوش مصنوعی
آموزش‌های گام‌به‌گام، سناریوهای کاملاً تست‌شده و راهکارهای هوشمندسازی فرایندها برای افزایش سرعت و دقت در کارهای روزمره و کسب‌وکار.
معماری سیستم

آموزش بر پایه سناریوهای واقعی، نه تئوری!

گام ۰۱ // TRIGGER

دریافت و اتصال خودکار داده‌ها

دریافت مستقیم اطلاعات از وب‌هوک‌ها، فرم‌ها، ایمیل‌ها یا سیستم‌های CRM و ورود آنی داده‌ها به جریان اتوماسیون.

  • اتصال بدون محدودیت به سرویس‌های ایرانی و خارجی
  • پردازش آنی داده‌های ورودی (Real-time Webhook)
POST /api/v1/n8n-webhook
// Event Listening...
{
  "event": "lead_captured",
  "source": "WordPress_Form"
}
گام ۰۲ // AI PROCESSING

پردازش هوشمند با مدل‌های AI

ارسال داده‌ها به ایجنت‌ها و مدل‌های پردازشی (GPT-4o, Claude) جهت تحلیل متن، خلاصه‌سازی و تصمیم‌گیری هوشمند.

  • استفاده از پرامپت‌های مهندسی‌شده و دقیق
  • استخراج داده‌های ساختاریافته (JSON Output)
AI_Agent.analyze({
  model: "gpt-4o",
  temperature: 0.2,
  status: "ANALYSIS_SUCCESSFUL"
});
گام ۰۳ // AUTOMATION EXECUTION

اجرای خودکار در n8n

ارسال خروجی تحلیل‌شده به پیام‌رسان‌ها، دیتابیس، پنل‌های مدیریتی یا ارسال ایمیل بدون نیاز به دخالت انسانی.

  • کاهش ۹۰ درصدی خطای انسانی در فرایندها
  • اجرای تمام‌خودکار و ۲۴/۷ سناریوها
Workflow.execute();
✓ Notification sent to Telegram
✓ Row inserted into Database

ربات پرسش و پاسخ با n8n

انتشار خودکار محتوا با n8n

مقدمه

ساخت ربات پرسش و پاسخ با n8n : 

N8Nابزاری است که به کمک آن می توانید در مدت‌زمان کوتاهی، فرایندهای خود را با هوش مصنوعی خودکار کنید و از مزایای اتوماسیون هوشمند بهره‌ مند شوید.

N8N برای چه کسب و کارهایی مناسب است:

اگر سازمان شما کوچک می باشد و هم اکنون بسیاری از کار های خود را با نرم افزار هایی همچون اکسل انجام می دهید، N8N برای کسب و کار شما ایده آل است و در صورتی که کسب و کاری متوسط یا بزرگ دارید می توانید بخش های بسیاری از فرایند های غیر کلیدی خود را با این ابزار هوشمند کنید.

اگر به پیاده‌سازی اختصاصی، اتصال n8n به نرم‌افزارهای سازمانی یا سفارشی‌سازی Workflowها متناسب با کسب‌وکارتان نیاز دارید، Danix با بررسی نیازهای کسب‌وکار شما، می‌تواند این فرایند را از طراحی تا استقرار برای شما انجام دهیم.

همچنین اگر ترجیح می‌دهید شخصاً نصب و راه‌اندازی را انجام دهید، می‌توانید از اطلاعات موجود در مقالات، دسته N8N استفاده کنید .همچنین می توانید template موجود در این workflow را به صورت رایگان از این قسمت دانلود کنید.

ربات پرسش و پاسخ با n8n

پروژه ساخت ربات هوش مصنوعی پرسش و پاسخ با n8n یکی از کاربردی‌ترین الگوهای اتوماسیون در حوزه هوش مصنوعی مولد است.

تصور کنید مجموعه‌ای از فایل‌های متنی مانند صورت‌حساب‌های بانکی، قراردادها یا گزارش‌های مالی در پوشه‌ای روی سرور ذخیره شده‌اند و می‌خواهید بدون جستجوی دستی در هر فایل، مستقیماً سؤال خود را بپرسید و پاسخ دقیق دریافت کنید. دقیقاً همین سناریویی است که این Workflow پیاده‌سازی می‌کند. این Workflow با پایش خودکار یک پوشه محلی، تبدیل محتوای فایل‌ها به بردارهای معنایی، ذخیره‌سازی آن‌ها در پایگاه داده برداری Qdrant و ایجاد یک رابط چت مبتنی بر مدل زبانی Mistral AI، امکان پرسش و پاسخ هوشمند روی مجموعه فایل‌ها را فراهم می‌کند.

فرآیند پیاده‌سازی ساخت ربات هوش مصنوعی پرسش و پاسخ با n8n از مزیت‌های فراوانی برخوردار است: نیازی به کدنویسی پیچیده ندارد، مکانیزم همگام‌سازی خودکار فایل‌ها با پایگاه داده برداری را شامل می‌شود و کاربران مبتدی تا متوسط نیز قادر به راه‌اندازی آن هستند.

قبل از شروع

اگر هنوز n8n را نصب نکرده‌اید، پیشنهاد می‌کنیم ابتدا مقاله «آموزش n8n» را مطالعه کنید. در آن مقاله، مراحل نصب با Node.js و Docker، راه‌اندازی اولیه و ساخت اولین Workflow به‌صورت کامل آموزش داده شده است. پس از نصب و راه‌اندازی، به این مقاله بازگردید و مراحل پیاده‌سازی این Workflow را دنبال کنید.

این Workflow چه کاری انجام می‌دهد؟

این Workflow دو عملیات اصلی را همزمان مدیریت می‌کند. عملیات اول، همگام‌سازی فایل‌هاست. هرگاه فایلی در پوشه هدف اضافه، تغییر یا حذف شود، Workflow به‌صورت خودکار واکنش نشان می‌دهد. سیستم فایل‌های جدید را می‌خواند و آن‌ها را به بردار تبدیل می‌کند، سیستم فایل‌های تغییریافته را بازنویسی می‌کند و فایل‌های حذف‌شده از پایگاه داده برداری پاک می‌شوند. عملیات دوم، رابط چت است. این Workflow یک صفحه چت وب‌محور ایجاد می‌کند که کاربر سؤال خود را وارد می‌کند، مدل زبانی Mistral با جستجوی معنایی در بردارهای ذخیره‌شده، بهترین بخش‌های مرتبط را بازیابی و پاسخ تولید می‌کند. به بیان ساده، این فرآیند مجموعه فایل‌های متنی شما را به یک مرجع هوشمند قابل پرسش بدل می‌کند.

کاربردهای ربات پرسش و پاسخ با n8n

  • تحلیل صورت‌حساب‌های بانکی:یکی از مهم‌ترین کاربردهای ساخت ربات پرسش و پاسخ با n8n در تحلیل صورت‌حساب‌های بانکی است پرسش مستقیم از فایل‌های PDF یا متنی صورت‌حساب برای یافتن تراکنش‌های خاص، مانده حساب در تاریخ مشخص یا جمع هزینه‌ها.
  • آرشیو اسناد سازمانی: کارکنان مجموعه قراردادها، بخشنامه‌ها و گزارش‌ها را به‌صورت مرجعی قابل جستجو در اختیار می‌گیرند.
  • پشتیبانی مشتریان: پاسخگویی خودکار به سؤالات رایج مشتریان بر اساس مستندات محصول و خدمات.
  • مشاوره مالی و حسابداری: پرسش از گزارش‌های مالی، ترازنامه‌ها و صورت‌های سود و زیان برای دریافت خلاصه و تحلیل.
  • مدیریت دانش تیم: ایجاد یک مرجع داخلی از مستندات فنی، راهنماها و فرآیندهای سازمانی.
  • تحلیل قراردادهای حقوقی: جستجوی شرایط خاص در میان مجموعه‌ای از قراردادها بدون مطالعه دستی هر سند.

پیش‌نیازها

پیش از شروع ساخت ربات پرسش و پاسخ با n8n، این موارد را آماده کنید:

  • نصب n8n روی Docker (با دسترسی به فایل‌سیستم محلی از طریق Volume)
  • سرور Qdrant فعال و قابل دسترسی از داخل شبکه Docker
  • حساب Mistral AI با API Key فعال
  • پوشه‌ای در سرور حاوی فایل‌های متنی برای پردازش
  • Credentialهای Qdrant API و Mistral Cloud API را در n8n تنظیم کرده باشید

دانلود Template

فایل JSON این Workflow را از این قسمت دانلود کنید.

رمز فایل:danixai.com

آموزش Import کردن Workflow

  1. وارد داشبورد n8n شوید.
  2. روی Import from File کلیک کنید.
  3. فایل JSON را انتخاب کنید.
  4.  n8n Workflow را ایجاد می‌کند.
  5. Credentialهای موردنیاز را تنظیم کنید.

ساختار ربات پرسش و پاسخ با n8n

ساختار اجرایی این Workflow شامل دو مسیر اصلی است:

مسیر اول: همگام‌سازی فایل‌ها

 

Local File Trigger یا Manual Trigger

          Set Variables

        Handle File Event (Switch)
       ↙        ↓         ↘
  file_deleted  file_changed  file_added
       ↓           ↓              ↓
 Search Point  Search Point   Read File
       ↓           ↓              ↓
 Has Point?    Has Point?  Prepare Embedding
       ↓           ↓              ↓
 Delete Point  Delete Point  Qdrant Vector Store
                  ↓            ↗
            Remap to added  ↗
                  ↓        ↗
               Read File ↗
 
مسیر دوم: رابط چت

Chat Trigger ↓ Question and Answer Chain ↓ ↘ Mistral Chat Vector Store Model Retriever ↓ Qdrant Vector Store (حالت بازیابی) ↓ Embeddings Mistral

آموزش کامل تمام Nodeها

Local File Trigger
  • وظیفه: پایش خودکار یک پوشه مشخص روی دیسک و دریافت رویدادهای اضافه شدن، تغییر و حذف فایل‌ها.
  • ورودی: ندارد. این Node به‌صورت پیوسته وضعیت پوشه را رصد می‌کند.
  • خروجی: آبجکتی حاوی نام رویداد (event) و مسیر فایل (path).
  • تنظیمات مهم:
    • مسیر پوشه: /home/node/host_mount/local_file_search
    • رویدادها: add, change, unlink
    • گزینه awaitWriteFinish فعال است تا نوشتن فایل کامل شود قبل از دریافت رویداد
  • نکات قابل تغییر: مسیر پوشه را به مکان فایل‌های خود تغییر دهید. روی Docker حتماً Volume یا Bind Mount مناسب تنظیم کنید.
  • دلیل استفاده: این Node موتور اصلی همگام‌سازی است. بدون آن، Workflow فقط با دستور دستی اجرا می‌شد.
Manual Trigger (When clicking “Test workflow”)
  • وظیفه: اجرای دستی Workflow برای تست و اشکال‌زدایی.
  • ورودی: ندارد.
  • خروجی: سیگنال شروع اجرا.
  • تنظیمات مهم: ندارد.
  • نکات قابل تغییر: می‌توانید آن را با Webhook Trigger یا Schedule Trigger جایگزین کنید.
  • دلیل استفاده: برای تست Workflow بدون نیاز به ایجاد تغییر واقعی در پوشه کاربردی است.
Set Variables
  • وظیفه: تعریف متغیرهای مرکزی Workflow شامل مسیر پوشه، مسیرهای فایل بر اساس نوع رویداد و نام کلکشن Qdrant.
  • ورودی: خروجی Local File Trigger (رویداد و مسیر فایل).
  • خروجی: آبجکتی با پنج متغیر:
    • directory: مسیر پوشه هدف
    • file_added: مسیر فایل در صورت اضافه شدن (یا رشته خالی)
    • file_changed: مسیر فایل در صورت تغییر (یا رشته خالی)
    • file_deleted: مسیر فایل در صورت حذف (یا رشته خالی)
    • qdrant_collection: نام کلکشن در Qdrant
  • تنظیمات مهم: مقادیر عبارات شرطی Expression مقادیر file_added، file_changed و file_deleted را می‌سازند و فقط یکی از آن‌ها مقدار واقعی دارد.
  • نکات قابل تغییر: مسیر پوشه و نام کلکشن Qdrant را متناسب با پروژه تنظیم کنید.
  • دلیل استفاده: متمرکز کردن متغیرها در یک Node مدیریت Workflow را ساده‌تر می‌کند.
Handle File Event
  • وظیفه: مسیریابی رویدادها بر اساس نوع تغییر. این Node سه خروجی مجزا دارد: file_deleted، file_changed و file_added.
  • ورودی: خروجی Set Variables.
  • خروجی: سه مسیر اجرایی مختلف بر اساس اینکه کدام متغیر (file_added، file_changed یا file_deleted) مقدار غیرخالی دارد.
  • تنظیمات مهم: سه قانون شرطی تنظیم کرده‌اید که هر کدام بررسی می‌کنند کدام متغیر مقدار دارد. اولویت از بالا به پایین است: حذف، تغییر، اضافه.
  • نکات قابل تغییر: می‌توانید رویدادهای اضافی مانند rename اضافه کنید یا مسیرها را سفارشی‌سازی کنید.
  • دلیل استفاده: هر نوع رویداد نیاز به پردازش متفاوتی دارد. Switch Node مسیریابی صحیح را تضمین می‌کند.
Search For Existing Point و Search For Existing Point1
  • وظیفه: جستجو در Qdrant برای یافتن بردارهای موجود مرتبط با فایل هدف. نسخه اول برای رویداد حذف و نسخه دوم برای رویداد تغییر استفاده می‌شود.
  • ورودی: خروجی Handle File Event (مسیر فایل تغییریافته یا حذف‌شده).
  • خروجی: آبجکتی شامل result.points با شناسه‌های بردارهای یافت‌شده.
  • تنظیمات مهم:
    • آدرس API Qdrant: http://qdrant:6333/collections/{نام_کلکشن}/points/scroll
    • فیلتر جستجو: metadata.filter_by_filename با مقدار مسیر فایل
    • limit: 1 و with_payload: false و with_vector: false برای بهینه‌سازی
  • نکات قابل تغییر: اگر هر فایل چندین بردار داشته باشد، مقدار limit را افزایش دهید.
  • دلیل استفاده: قبل از حذف یا بازنویسی بردار، باید ابتدا وجود آن تأیید شود. این Node این بررسی را انجام می‌دهد.
Has Existing Point? و Has Existing Point?1
  • وظیفه: بررسی اینکه آیا جستجوی Qdrant نتیجه‌ای برگردانده است یا خیر.
  • ورودی: خروجی Search For Existing Point.
  • خروجی: دو مسیر True (نقطه‌ای وجود دارد) و False (نقطه‌ای وجود ندارد).
  • تنظیمات مهم: شرط array notEmpty روی فیلد result.points.
  • نکات قابل تغییر: نیازی به تغییر ندارد.
  • دلیل استفاده: فقط در صورت وجود بردار قدیمی، سیستم عملیات حذف را اجرا می‌کند. این شرط از خطای درخواست حذف بدون داده جلوگیری می‌کند.
Delete Existing Point و Delete Existing Point1
  • وظیفه: حذف بردارهای قدیمی مرتبط با فایل از Qdrant.
  • ورودی: خروجی Has Existing Point? (با شناسه‌های بردار).
  • خروجی: تأیید حذف.
  • تنظیمات مهم:
    • آدرس API: http://qdrant:6333/collections/{نام_کلکشن}/points/delete
    • شناسه‌ها از تابع result.points.map(point => point.id) شناسه‌ها را استخراج می‌کند
  • نکات قابل تغییر: نیازی به تغییر ندارد.
  • دلیل استفاده: برای حفظ یکپارچگی داده‌ها، بردارهای قدیمی باید قبل از درج بردار جدید حذف شوند.
Remap for File_Added Flow
  • وظیفه: تبدیل متغیر file_changed به file_added تا مسیر پردازش تغییر، دقیقاً مشابه مسیر اضافه شدن اجرا شود.
  • ورودی: خروجی Delete Existing Point.
  • خروجی: آبجکتی با متغیر file_added حاوی مسیر فایل تغییریافته.
  • تنظیمات مهم: Node مقدار file_changed را از متغیرهای Set Variables می‌خواند و در فیلد file_added قرار می‌دهد.
  • نکات قابل تغییر: نیازی به تغییر ندارد.
  • دلیل استفاده: پس از حذف بردار قدیمی، باید فایل جدید دوباره خوانده و بردار تازه‌ای از آن ساخته شود. این Node مسیر اجرا را به بخش Read File هدایت می‌کند.
Read File
  • وظیفه: خواندن محتوای فایل از مسیر مشخص‌شده و تبدیل آن به داده باینری.
  • ورودی: مسیر فایل (از طریق file_added).
  • خروجی: داده باینری فایل همراه با نام فایل و مسیر دایرکتوری.
  • تنظیمات مهم: فیلد fileSelector از مقدار file_added خوانده می‌شود.
  • نکات قابل تغییر: اگر فایل‌ها در فرمت‌های خاصی مانند PDF باشند، ممکن است Node تبدیل متن نیز مورد نیاز باشد.
  • دلیل استفاده: محتوای فایل باید خوانده شود تا برای تبدیل به بردار آماده گردد, این مرحله در فرآیند ساخت ربات پرسش و پاسخ با n8n نقش حیاتی دارد.
Prepare Embedding Document
  • وظیفه: آماده‌سازی سند برای تبدیل به بردار. اطلاعات متادیتا شامل مسیر فایل، تاریخ ایجاد و محتوای متنی فایل در یک رشته Markdown ساختاریافته قرار می‌گیرد.
  • ورودی: خروجی Read File.
  • خروجی: دو فیلد:
    • data: رشته‌ای شامل مسیر فایل، تاریخ و محتوای رمزگشایی‌شده
    • file_location: مسیر کامل فایل
  • تنظیمات مهم:  فانکشن base64Decode() محتوای باینری فایل را رمزگشایی و در رشته قرار می‌دهد. تابع toISO() تاریخ را فرمت‌بندی می‌کند و فیلدهای metadata شامل فیلتر بر اساس نام فایل، ماه و هفته ایجاد هستند.
  • نکات قابل تغییر: فیلدهای metadata را بر اساس نیاز پروژه تغییر دهید. برای مثال، فیلتر بر اساس نوع فایل یا اندازه اضافه کنید.
  • دلیل استفاده: Metadata اضافه شده در این مرحله، بعداً امکان فیلتر جستجو در Qdrant را فراهم می‌کند.
Recursive Character Text Splitter
  • وظیفه: تقسیم متن سند به بخش‌های کوچک‌تر (Chunks) با الگوریتم بازگشتی تقسیم بر شخصیت.
  • ورودی: سند آماده‌شده از Default Data Loader.
  • خروجی: مجموعه‌ای از بخش‌های متنی که هر کدام برای تبدیل به بردار آماده هستند.
  • تنظیمات مهم: از تنظیمات پیش‌فرض استفاده شده (طول پیش‌فرض chunk و overlap).
  • نکات قابل تغییر: مقادیر chunkSize و chunkOverlap را تنظیم کنید. برای اسناد بزرگ، اندازه chunk بیشتر و برای جستجوی دقیق‌تر، اندازه کمتر مناسب‌تر است.
  • دلیل استفاده: مدل‌های تولید بردار محدودیت طول ورودی دارند. تقسیم متن به بخش‌های کوچک‌تر دقت بازیابی معنایی را افزایش می‌دهد.
Default Data Loader
  • وظیفه: تبدیل داده JSON به سند قابل پردازش توسط سیستم زنجیره زبانی n8n. این Node پل ارتباطی بین داده خام و سیستم Embeddings است.
  • ورودی: داده JSON آماده‌شده از Prepare Embedding Document.
  • خروجی: سند قابل پردازش با متادیتای فیلتر.
  • تنظیمات مهم: سه فیلد metadata تعریف شده: filter_by_filename، filter_by_created_month و filter_by_created_week.
  • نکات قابل تغییر: فیلدهای metadata را اضافه یا حذف کنید. هر فیلد metadata که تعریف شود، بعداً در Qdrant قابل فیلتر خواهد بود.
  • دلیل استفاده: Metadata نقش کلیدی در فیلتر جستجو ایفا می‌کند. بدون metadata، جستجوی ربات پرسش و پاسخ فقط شباهت معنایی را بررسی می‌کند.
Embeddings Mistral Cloud و Embeddings Mistral Cloud1
  • وظیفه: این Node متن را به بردارهای عددی (Embeddings) با سرویس ابری Mistral AI تبدیل می‌کند.
  • ورودی: بخش‌های متنی تقسیم‌شده (برای نسخه اول) یا سؤال کاربر (برای نسخه دوم).
  • خروجی: بردارهای عددی با ابعاد بالا.
  • تنظیمات مهم: هر دو نسخه از Credential مربوط به Mistral Cloud API استفاده می‌کنند.
  • نکات قابل تغییر: مدل Embeddings را در صورت نیاز تغییر دهید. نسخه اول برای درج و نسخه دوم برای بازیابی استفاده می‌شود.
  • دلیل استفاده: مدل‌های زبانی فقط با بردار می‌توانند شباهت معنایی را محاسبه کنند. Mistral Cloud Embeddings این تبدیل را انجام می‌دهد.
Qdrant Vector Store (حالت Inset) و Qdrant Vector Store1 (حالت Retrieve)
  • وظیفه: نسخه اول بردارها را در Qdrant ذخیره می‌کند. نسخه دوم برای بازیابی بردارها استفاده می‌شود.
  • ورودی: بردارها از Embeddings و اسناد از Data Loader (برای نسخه اول) یا بردار سؤال (برای نسخه دوم).
  • خروجی: تأیید درج (نسخه اول) یا بردارهای بازیابی‌شده (نسخه دوم).
  • تنظیمات مهم:
    • نسخه اول: mode: insert و نام کلکشن از متغیر qdrant_collection
    • نسخه دوم: کلکشن ثابت BankStatements
  • نکات قابل تغییر: نام کلکشن و پارامترهای شبکه Qdrant را تنظیم کنید.
  • دلیل استفاده: Qdrant یک پایگاه داده برداری متن‌باز با عملکرد بالا برای جستجوی شباهت است. پشتیبانی از فیلترهای پیشرفته، آن را برای این سناریو ایده‌آل می‌کند.
Chat Trigger
  • وظیفه: ایجاد یک رابط چت وب‌محور که کاربر بتواند سؤالات خود را وارد کند.
  • ورودی: سؤال متنی کاربر.
  • خروجی: سؤال به Question and Answer Chain ارسال می‌شود.
  • تنظیمات مهم: Webhook ID اختصاصی دارد. یک URL چت اختصاصی ایجاد می‌کند.
  • نکات قابل تغییر: می‌توانید آن را با Webhook Trigger برای ادغام در سیستم‌های دیگر جایگزین کنید.
  • دلیل استفاده: این Node رابط کاربری ساده‌ای برای تعامل با سیستم RAG ایجاد می‌کند.
Question and Answer Chain
  • وظیفه: ترکیب مدل زبانی Mistral، بازیابی برداری و سؤال کاربر برای تولید پاسخ هوشمند.
  • ورودی: سؤال کاربر، مدل زبانی و بازیابی برداری.
  • خروجی: پاسخ متنی تولیدشده.
  • تنظیمات مهم: هیچ تنظیم خاصی ندارد. تمام پیکربندی از Nodeهای متصل دریافت می‌شود.
  • نکات قابل تغییر: می‌توانید این Node را با AI Agent جایگزین کنید تا قابلیت‌های پیشرفته‌تری مانند Chain of Thought داشته باشید.
  • دلیل استفاده: الگوی RAG (Retrieval-Augmented Generation) ترکیب بازیابی و تولید است. این Node دقیقاً همین الگو را در ساخت ربات پرسش و پاسخ با n8n پیاده‌سازی می‌کند..
Mistral Cloud Chat Model
  • وظیفه: فراهم کردن مدل زبانی Mistral برای تولید پاسخ.
  • ورودی: سؤال و context بازیابی‌شده.
  • خروجی: پاسخ متنی.
  • تنظیمات مهم: مدل mistral-small-2402 استفاده شده.
  • نکات قابل تغییر: مدل را به mistral-medium یا mistral-large برای کیفیت بالاتر تغییر دهید.
  • دلیل استفاده: Mistral AI مدل‌های زبانی قدرتمند و مقرون‌به‌صرفه‌ای ارائه می‌دهد.
Vector Store Retriever
  • وظیفه: بازیابی بردارهای مرتبط با سؤال کاربر از Qdrant.
  • ورودی: بردار سؤال از Embeddings و اتصال به Qdrant Vector Store1.
  • خروجی: بردارهای بازیابی‌شده به Question and Answer Chain.
  • تنظیمات مهم: ندارد.
  • نکات قابل تغییر: تعداد نتایج بازیابی و آستانه شباهت را تنظیم کنید.
  • دلیل استفاده: این Node پل ارتباطی بین پایگاه داده برداری و زنجیره پرسش و پاسخ ربات هوش مصنوعی n8n است.

نحوه شخصی‌سازی ربات پرسش و پاسخ با n8n

  • تغییر مسیر پوشه: مقدار متغیر directory در Set Variables و مسیر در Local File Trigger را به پوشه دلخواه تغییر دهید.
  • تغییر مدل زبانی: نام مدل در Mistral Cloud Chat Model را به هر مدل Mistral دیگری تغییر دهید.
  • تغییر نام کلکشن: متغیر qdrant_collection در Set Variables نام کلکشن Qdrant را مشخص می‌کند.
  • افزودن فیلترهای metadata: در Default Data Loader فیلدهای metadata اضافی تعریف کنید تا جستجو دقیق‌تر شود.
  • تغییر Trigger: Local File Trigger را با Webhook Trigger جایگزین کنید تا فایل‌ها از سرویس‌های خارجی دریافت شوند.
  • تغییر شرط‌ها: آستانه فیلتر Qdrant و تعداد نتایج بازیابی را تنظیم کنید.
  • افزودن اعلان: پس از همگام‌سازی موفق، اعلانی به Slack یا Telegram ارسال کنید.

مزایای ربات پرسش و پاسخ با n8n

  • همگام‌سازی خودکار: نیازی به بروزرسانی دستی پایگاه داده برداری نیست.
  • پشتیبانی از سه رویداد: اضافه، تغییر و حذف فایل‌ها همگی مدیریت می‌شوند.
  • جستجوی معنایی: برخلاف جستجوی کلمه کلیدی سنتی، سؤالات زبان طبیعی پشتیبانی می‌شوند.
  • بدون نیاز به کدنویسی: تمام منطق با Nodeهای گرافیکی n8n پیاده‌سازی شده.
  • مقیاس‌پذیری: Qdrant امکان مدیریت میلیون‌ها بردار را دارد.
  • امنیت داده‌ها: فایل‌ها و بردارها روی زیرساخت خودتان ذخیره می‌شوند.

نکات مهم ربات پرسش و پاسخ با هوش مصنوعی

  • حتماً Volume یا Bind Mount مناسب برای Docker تنظیم کنید تا n8n به پوشه مورد نظر دسترسی داشته باشد.
  • Qdrant باید در همان شبکه Docker اجرا شود تا اتصال از طریق نام سرویس (http://qdrant:6333) ممکن باشد.
  • فایل‌های ورودی باید متنی باشند. سیستم فایل‌های باینری مانند تصاویر را بدون تبدیل متن پشتیبانی نمی‌کند.
  • API Key م Mistral AI را در محیط امنی ذخیره کنید و هرگز در کد قرار ندهید.
  • از awaitWriteFinish در Local File Trigger استفاده شده تا  n8n فایل‌های در حال نوشتن را زودتر پردازش نکند
  • Qdrant Collection باید از قبل وجود داشته باشد یا سیستم اجازه ساخت خودکار آن را داشته باشد.
  • در محیط Production، مکانیزم مدیریت خطا و ارسال اعلان برای شکست عملیات اضافه کنید.
  • حجم فایل‌ها را محدود کنید تا از اشباع حافظه جلوگیری شود.

خطاهای رایج (Troubleshooting)

n8n نمی‌تواند به Qdrant وصل شود
  • علت: سرویس کاربر سرویس Qdrant را در همان شبکه Docker اجرا نکرده.
  • راه‌حل: آدرس و پورت Qdrant را بررسی کنید. مطمئن شوید Qdrant در همان Docker Network قرار دارد.
n8n فایل‌ها را نمی‌خواند
  • علت: مسیر پوشه در Local File Trigger صحیح نیست یا کاربر Volume را به درستی Mount نکرده.
  • راه‌حل: مسیر را در تنظیمات Docker بررسی کنید. داخل کانتینر n8n با دستور ls مسیر را تأیید کنید.
Mistral API خطا برمی‌گرداند
  • علت: API Key نامعتبر است یا کاربر اعتبار حساب را تمام کرده.
  • راه‌حل: Credential Mistral Cloud را در n8n بازبینی کنید. وضعیت حساب Mistral را در داشبورد آن بررسی نمایید.
پاسخ‌های چت نامرتبط هستند
  • علت: بردارهای ذخیره‌شده با سؤال کاربر شباهت کافی ندارند یا chunk size نامناسب است.
  • راه‌حل: مقدار chunkSize در Recursive Character Text Splitter را کاهش دهید. metadata فیلترها را بررسی کنید.
بردارهای قدیمی حذف نمی‌شوند
  • علت: فیلتر جستجوی Qdrant مسیر فایل را به‌درستی مقایسه نمی‌کند.
  • راه‌حل: مقدار metadata.filter_by_filename در Prepare Embedding Document با مقدار ذخیره‌شده در Qdrant مطابقت دارد. از فرمت یکسان مسیر فایل اطمینان حاصل کنید.

جمع‌بندی

ساخت ربات هوش مصنوعی پرسش و پاسخ با n8n یکی از بهترین راه‌ها برای تبدیل مجموعه فایل‌های محلی به یک مرجع هوشمند قابل پرسش است. در این مقاله با نحوه ساخت ربات پرسش و پاسخ با n8n آشنا شدیم: پایش خودکار پوشه‌ها، تبدیل محتوا به بردار، ذخیره‌سازی در Qdrant و ایجاد رابط چت مبتنی بر Mistral AI. مکانیزم همگام‌سازی سه‌رویدادی (اضافه، تغییر، حذف) تضمین می‌کند که پایگاه داده برداری همیشه با وضعیت فعلی فایل‌ها هماهنگ باشد. الگوی RAG به‌کار رفته در این Workflow، پایه‌ای مناسب برای پیاده‌سازی سناریوهای پیشرفته‌تر مانند پشتیبانی مشتری، تحلیل اسناد و مدیریت دانش سازمانی است. با شخصی‌سازی مدل زبانی، فیلترها و مسیر پوشه، می‌توانید این Workflow را با نیازهای خاص خود تطبیق دهید.

سوالات متداول

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

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

چه فرمت‌های فایلی پشتیبانی می‌شوند؟ فرمت‌های متنی خالص مانند TXT، CSV و Markdown به‌صورت مستقیم پشتیبانی می‌شوند. برای PDF ممکن است Node تبدیل متن اضافی لازم باشد.

آیا پردازش فایل‌های بزرگ مشکلی ایجاد می‌کند؟ بله، فایل‌های بسیار بزرگ ممکن است حافظه کانتینر n8n را اشغال کنند. حداکثر اندازه فایل را محدود و از تقسیم‌بندی مناسب Chunk استفاده کنید.

 

GIT

Categories: , ,

توسعه توسط تیم میهن وردپرس