ساخت چت‌بات واتس‌اپ با هوش مصنوعی و RAG در n8n

ساخت چت‌بات واتس‌اپ با هوش مصنوعی و RAG در n8n

10 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 4827 · منبع: کاتالوگ Axeto

چت‌بات واتس‌اپ با هوش مصنوعی و RAG

این گردش کار به یک چت‌بات واتس‌اپ امکان می‌دهد تا پیام‌های متنی، صوتی، تصویری و اسناد PDF را درک کرده و به آن‌ها پاسخ دهد. این سیستم از تولید افزوده بازیابی (Retrieval-Augmented Generation - RAG) برای ارائه پاسخ‌های مرتبط با زمینه، با ادغام یک پایگاه دانش ذخیره شده در MongoDB، استفاده می‌کند.

این گردش کار و موارد بیشتر را در کاتالوگ n8n شرکت Axeto.ai کاوش کنید.

نمای کلی گردش کار

این گردش کار جامع، عملکردهای کلیدی زیر را هماهنگ می‌کند:

1. وارد کردن و نمایه‌سازی دستی اسناد: امکان ورود و جاسازی دستی مستندات محصول از Google Docs در یک فروشگاه برداری MongoDB برای بازیابی کارآمد را فراهم می‌کند.

2. دریافت و مسیریابی پیام واتس‌اپ: پیام‌های ورودی واتس‌اپ از انواع مختلف (متن، صدا، تصویر، سند) را دریافت کرده و آن‌ها را به مسیر پردازش مناسب هدایت می‌کند.

3. دانلود و پیش‌پردازش رسانه: محتوای رسانه‌ای (صدا، تصاویر، اسناد) دریافتی از طریق واتس‌اپ را دانلود و آماده می‌کند، از جمله استخراج متن از PDFها و رونویسی صدا.

4. پردازش اسناد و ذخیره‌سازی برداری: اسناد را قطعه‌بندی کرده، جاسازی‌های برداری (vector embeddings) تولید می‌کند و آن‌ها را در یک پایگاه داده برداری MongoDB ذخیره می‌کند.

5. جستجو در پایگاه دانش و تولید پاسخ هوش مصنوعی: با استفاده از جاسازی‌های ورودی کاربر، پایگاه داده برداری را جستجو می‌کند، تاریخچه مکالمه را در بر می‌گیرد و پاسخ‌های مبتنی بر هوش مصنوعی را با استفاده از GPT-4o-mini تولید می‌کند.

6. مدیریت خطا و انواع فایل‌های پشتیبانی نشده: انواع فایل‌های پشتیبانی نشده را به طور موثر مدیریت کرده و کاربر را مطلع می‌سازد.

---

تشریح کامل گردش کار

۱. وارد کردن و نمایه‌سازی دستی اسناد

این بخش امکان وارد کردن دستی اسناد خارجی (مانند مستندات محصول از Google Docs) را برای پر کردن پایگاه دانش RAG فراهم می‌کند.

  • محرک: اجرای دستی گردش کار.
  • گره‌ها (Nodes):

* Manual Trigger: گردش کار را به صورت دستی آغاز می‌کند.

* Google Docs Importer: محتوا را از یک URL مشخص Google Docs دریافت می‌کند. نیاز به اعتبارنامه OAuth2 Google Docs دارد.

* Document Chunker: اسناد متنی بزرگ را به قطعات کوچک‌تر و قابل مدیریت (۳۰۰۰ کاراکتر با همپوشانی ۲۰۰) تقسیم می‌کند و در عین حال markdown را حفظ می‌کند.

* Document Section Loader: قطعات سند را همراه با فراداده (metadata) برای جاسازی (embedding) آماده می‌کند.

* OpenAI Embeddings Generator: بردارهای جاسازی (vector embeddings) را برای هر قطعه سند با استفاده از OpenAI API ایجاد می‌کند. نیاز به اعتبارنامه OpenAI API دارد.

* MongoDB Vector Store Inserter: بردارهای جاسازی تولید شده و فراداده مرتبط را در یک مجموعه MongoDB Atlas (n8n-template) تحت نمایه‌ data_index ذخیره می‌کند. نیاز به اعتبارنامه MongoDB دارد.

* Sticky Note: دستورالعمل‌هایی را برای اجرای دستی ارائه می‌دهد.

---

۲. دریافت و مسیریابی پیام واتس‌اپ

این بخش پیام‌های ورودی واتس‌اپ را دریافت کرده و بر اساس نوع محتوای آن‌ها مسیریابی می‌کند.

  • محرک: گره WhatsApp Trigger از طریق webhook به پیام‌های ورودی گوش می‌دهد. نیاز به اعتبارنامه OAuth واتس‌اپ دارد.
  • مسیریابی: یک گره Switch (با نام Route Types) پیام‌ها را بر اساس فیلد type (متن، صدا، تصویر، سند) به شاخه‌های مختلف گردش کار هدایت می‌کند.
  • یادداشت کلی: یک Sticky Note خلاصه‌ای از قابلیت‌های گردش کار را ارائه می‌دهد.

---

۳. دانلود و پیش‌پردازش رسانه

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

  • پیام‌های صوتی:

* Gets WhatsApp Voicemail Source URL: URL دانلود پیام‌های صوتی را دریافت می‌کند.

* Download Voicemail (HTTP Request): فایل صوتی را دانلود می‌کند.

* OpenAI Audio Translate: صدا را با استفاده از قابلیت speech-to-text OpenAI به متن رونویسی می‌کند. نیاز به اعتبارنامه OpenAI API دارد.

  • پیام‌های تصویری:

* Gets WhatsApp Image Source URL: URL دانلود تصاویر را دریافت می‌کند.

* Download Image (HTTP Request): فایل تصویر را دانلود می‌کند.

* OpenAI Image Analysis: تصویر را با استفاده از GPT-4o-mini تجزیه و تحلیل کرده و توضیحی تولید می‌کند. نیاز به اعتبارنامه OpenAI API دارد.

  • پیام‌های سندی:

* Gets WhatsApp Document Source URL: URL دانلود اسناد را دریافت می‌کند.

* Download Document (HTTP Request): فایل سند را دانلود می‌کند.

* Map file extensions (Code node): انواع MIME را برای فرمت‌های مختلف سند نرمال‌سازی می‌کند.

* Route Document Types (Switch node): اسناد را بر اساس نوع MIME آن‌ها (مانند PDF، CSV، TXT، XLS، XLSX) مسیریابی می‌کند.

* Map JSON: داده‌های JSON را برای انواع سند مانند XLS/XLSX آماده می‌کند.

* Extract from PDF, Extract from XLS, Extract from XLSX: گره‌هایی برای استخراج متن یا داده از فرمت‌های خاص سند.

  • فایل‌های پشتیبانی نشده:

* Send Unsupported Response: در صورت پشتیبانی نشدن نوع فایل، به کاربر اطلاع می‌دهد.

---

۴. پردازش سند و ذخیره‌سازی برداری

این بخش اسناد آپلود شده (غیر از مواردی که به صورت دستی وارد شده‌اند) را پردازش کرده و به پایگاه داده برداری اضافه می‌کند.

  • گره‌ها (Nodes):

* Map document prompt (Set node): یک prompt برای پردازش هوش مصنوعی ایجاد می‌کند و متن استخراج شده، توضیحات (captions) و نوع MIME را ترکیب می‌کند.

* Document Chunker: محتوای متنی را به قطعات تقسیم می‌کند.

* Document Section Loader: قطعات را برای جاسازی آماده می‌کند.

* OpenAI Embeddings Generator: بردارهای جاسازی را برای قطعات سند تولید می‌کند.

* MongoDB Vector Store Inserter: بردارهای جاسازی را در فروشگاه برداری MongoDB ذخیره می‌کند.

---

۵. جستجو در پایگاه دانش و تولید پاسخ هوش مصنوعی

این جزء اصلی RAG است که در آن پرس‌وجوهای کاربر برای بازیابی اطلاعات مرتبط پردازش شده و پاسخ‌های مبتنی بر هوش مصنوعی تولید می‌شوند.

  • گره‌ها (Nodes):

* Map text prompt (Set node): پیام متنی کاربر را برای پردازش استخراج می‌کند.

* Embeddings OpenAI: یک بردار جاسازی برای پرس‌وجوی کاربر تولید می‌کند.

* MongoDB Vector Search: فروشگاه برداری MongoDB را با استفاده از بردار جاسازی پرس‌وجو برای یافتن اسناد متنی مرتبط جستجو می‌کند. این گره به عنوان ابزاری به نام "productDocs" عمل می‌کند.

* Simple Memory: تاریخچه مکالمه را مدیریت می‌کند، که بر اساس شناسه کاربر واتس‌اپ (wa_id) کلیدگذاری شده است تا زمینه را در طول تعاملات حفظ کند.

* OpenAI Chat Model: دسترسی به مدل GPT-4o-mini را برای تولید پاسخ‌ها فراهم می‌کند. نیاز به اعتبارنامه OpenAI API دارد.

* Knowledge Base Agent: فرآیند RAG را با ترکیب پرس‌وجوی کاربر، زمینه بازیابی شده، حافظه مکالمه و مدل هوش مصنوعی برای تولید پاسخی منسجم و آگاه از زمینه، هماهنگ می‌کند.

* Send Response: پاسخ نهایی تولید شده توسط هوش مصنوعی را از طریق واتس‌اپ به کاربر ارسال می‌کند.

---

۶. مدیریت خطا و انواع فایل‌های پشتیبانی نشده

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

  • محرک: خروجی ELSE گره سوئیچ Route Document Types.
  • اقدام: گره Send Unsupported Response پیامی را به کاربر ارسال می‌کند که بیان می‌کند: "The File type you provided is unsupported." (نوع فایلی که ارائه دادید پشتیبانی نمی‌شود.)

جدول خلاصه

نام نود (Node Name)نوع نود (Node Type)نقش عملکردی (Functional Role)نود(های) ورودی (Input Node(s))نود(های) خروجی (Output Node(s))
Manual Triggern8n-nodes-base.manualTriggerفرآیند وارد کردن دستی سند را آغاز می‌کند.-Google Docs Importer
Google Docs Importern8n-nodes-base.googleDocsمحتوا را از URL مشخص شده Google Docs دریافت می‌کند.Manual TriggerDocument Chunker
Document Chunkern8n-nodes-base.code (Recursive Character Text Splitter)متن را به بخش‌های قابل مدیریت با همپوشانی تقسیم می‌کند.Google Docs ImporterDocument Section Loader
Document Section Loadern8n-nodes-base.code (Document Data Loader)بخش‌های سند را با فراداده برای جاسازی آماده می‌کند.Document ChunkerOpenAI Embeddings Generator
OpenAI Embeddings Generator@n8n/n8n-nodes-langchain.openAi (Embeddings)بردارهای جاسازی (embeddings) را برای بخش‌های متن تولید می‌کند.Document Section LoaderMongoDB Vector Store Inserter
MongoDB Vector Store Insertern8n-nodes-base.httpRequest (MongoDB Vector Store)بردارهای جاسازی و فراداده را در MongoDB ذخیره می‌کند.OpenAI Embeddings GeneratorSticky Note
Sticky Noten8n-nodes-base.stickyNoteدستورالعمل‌هایی برای وارد کردن دستی ارائه می‌دهد.MongoDB Vector Store Inserter-
WhatsApp Triggern8n-nodes-base.whatsAppTriggerپیام‌های ورودی WhatsApp را گوش می‌دهد.-Route Types
Route Typesn8n-nodes-base.switchپیام‌ها را بر اساس نوع (متن، صدا، تصویر، سند) مسیریابی می‌کند.WhatsApp Triggerانواع مختلف (بر اساس نوع)
Gets WhatsApp Voicemail Source URLn8n-nodes-base.whatsAppURL دانلود پیام‌های صوتی را دریافت می‌کند.WhatsApp Trigger (شاخه صدا)Download Voicemail
Download Voicemailn8n-nodes-base.httpRequestفایل‌های صوتی را از یک URL دانلود می‌کند.Gets WhatsApp Voicemail Source URLOpenAI Audio Translate
OpenAI Audio Translate@n8n/n8n-nodes-langchain.openAi (Audio Translate)پیام‌های صوتی را به متن رونویسی می‌کند.Download VoicemailMap document prompt (یا مشابه)
Gets WhatsApp Image Source URLn8n-nodes-base.whatsAppURL دانلود پیام‌های تصویری را دریافت می‌کند.WhatsApp Trigger (شاخه تصویر)Download Image
Download Imagen8n-nodes-base.httpRequestفایل‌های تصویری را از یک URL دانلود می‌کند.Gets WhatsApp Image Source URLOpenAI Image Analysis
OpenAI Image Analysis@n8n/n8n-nodes-langchain.openAi (Image Analysis)محتوای تصویر را با استفاده از GPT-4o-mini تجزیه و تحلیل می‌کند.Download ImageMap document prompt (یا مشابه)
Gets WhatsApp Document Source URLn8n-nodes-base.whatsAppURL دانلود پیام‌های سندی را دریافت می‌کند.WhatsApp Trigger (شاخه سند)Download Document
Download Documentn8n-nodes-base.httpRequestفایل‌های سندی را از یک URL دانلود می‌کند.Gets WhatsApp Document Source URLMap file extensions
Map file extensionsn8n-nodes-base.codeانواع MIME را برای فایل‌های سندی نرمال‌سازی می‌کند.Download DocumentRoute Document Types
Route Document Typesn8n-nodes-base.switchاسناد را بر اساس نوع MIME مسیریابی می‌کند.Map file extensionsانواع مختلف (بر اساس نوع MIME)
Map JSONn8n-nodes-base.setداده‌های JSON را برای انواع سند خاص آماده می‌کند.Route Document Types (شاخه JSON)Extract from PDF (یا مشابه)
Extract from PDFn8n-nodes-base.extractFromFileمتن را از فایل‌های PDF استخراج می‌کند.Route Document Types (شاخه PDF)Map document prompt
Extract from XLSn8n-nodes-base.extractFromFileداده‌ها را از فایل‌های XLS استخراج می‌کند.Route Document Types (شاخه XLS)Map JSON
Extract from XLSXn8n-nodes-base.extractFromFileداده‌ها را از فایل‌های XLSX استخراج می‌کند.Route Document Types (شاخه XLSX)Map JSON
Send Unsupported Responsen8n-nodes-base.whatsAppبرای انواع فایل‌های پشتیبانی نشده، اعلانی ارسال می‌کند.Route Document Types (شاخه ELSE)-
Map document promptn8n-nodes-base.setپرامپت AI را از محتوای سند استخراج شده می‌سازد.انواع مختلف (از پردازش رسانه)Document Chunker (یا embeddings)
Map text promptn8n-nodes-base.setپیام متنی کاربر را برای جاسازی استخراج می‌کند.WhatsApp Trigger (شاخه متن)Embeddings OpenAI
Embeddings OpenAI@n8n/n8n-nodes-langchain.openAi (Embeddings)بردار جاسازی را برای متن پرس و جوی کاربر تولید می‌کند.Map text promptMongoDB Vector Search
MongoDB Vector Searchn8n-nodes-base.httpRequest (MongoDB Vector Search)اسناد مرتبط را با استفاده از بردار جاسازی پرس و جو از MongoDB بازیابی می‌کند.Embeddings OpenAISimple Memory
Simple Memoryn8n-nodes-base.stickyNote (Memory Node)تاریخچه مکالمه را برای زمینه مدیریت می‌کند.MongoDB Vector SearchKnowledge Base Agent
OpenAI Chat Model@n8n/n8n-nodes-langchain.openAi (Chat Model)تکمیل چت GPT-4o-mini را ارائه می‌دهد.MongoDB Vector SearchKnowledge Base Agent
Knowledge Base Agent@n8n/n8n-nodes-langchain.agentRAG را هماهنگ می‌کند: پرس و جو، زمینه، حافظه و مدل AI را برای پاسخ ترکیب می‌کند.MongoDB Vector Search, Simple Memory, OpenAI Chat ModelSend Response
Send Responsen8n-nodes-base.whatsAppپاسخ تولید شده توسط AI را به کاربر ارسال می‌کند.Knowledge Base Agent-

Nodeهای استفاده‌شده

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

چت‌بات واتس‌اپ با هوش مصنوعی چه قابلیت‌هایی دارد؟

این چت‌بات قادر به درک و پاسخگویی به پیام‌های متنی، صوتی، تصویری و اسناد PDF است. همچنین می‌تواند با استفاده از پایگاه دانش ذخیره شده در MongoDB، پاسخ‌های مرتبط و دقیق ارائه دهد.

تکنیک RAG در این گردش کار چگونه عمل می‌کند؟

تولید افزوده بازیابی (RAG) به چت‌بات اجازه می‌دهد تا قبل از تولید پاسخ، اطلاعات مرتبط را از پایگاه دانش (ذخیره شده در MongoDB) بازیابی کند و سپس با استفاده از مدل زبانی مانند GPT-4o-mini، پاسخی جامع و مبتنی بر زمینه ارائه دهد.

چه ابزارها و سرویس‌هایی برای ساخت این چت‌بات لازم است؟

برای ساخت این چت‌بات به پلتفرم n8n، حساب واتس‌اپ، پایگاه داده MongoDB و دسترسی به API مدل‌های هوش مصنوعی مانند OpenAI (برای پردازش صدا، تصویر و تولید متن) نیاز دارید.

چگونه می‌توان اسناد را به پایگاه دانش چت‌بات اضافه کرد؟

این گردش کار امکان وارد کردن دستی اسناد از منابعی مانند Google Docs را فراهم می‌کند. اسناد پردازش، قطعه‌بندی شده و سپس بردارهای جاسازی آن‌ها در MongoDB ذخیره می‌شوند تا برای بازیابی در دسترس باشند.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.