
ساخت چتبات واتساپ با هوش مصنوعی و RAG در n8n
10 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- 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 Trigger | n8n-nodes-base.manualTrigger | فرآیند وارد کردن دستی سند را آغاز میکند. | - | Google Docs Importer |
Google Docs Importer | n8n-nodes-base.googleDocs | محتوا را از URL مشخص شده Google Docs دریافت میکند. | Manual Trigger | Document Chunker |
Document Chunker | n8n-nodes-base.code (Recursive Character Text Splitter) | متن را به بخشهای قابل مدیریت با همپوشانی تقسیم میکند. | Google Docs Importer | Document Section Loader |
Document Section Loader | n8n-nodes-base.code (Document Data Loader) | بخشهای سند را با فراداده برای جاسازی آماده میکند. | Document Chunker | OpenAI Embeddings Generator |
OpenAI Embeddings Generator | @n8n/n8n-nodes-langchain.openAi (Embeddings) | بردارهای جاسازی (embeddings) را برای بخشهای متن تولید میکند. | Document Section Loader | MongoDB Vector Store Inserter |
MongoDB Vector Store Inserter | n8n-nodes-base.httpRequest (MongoDB Vector Store) | بردارهای جاسازی و فراداده را در MongoDB ذخیره میکند. | OpenAI Embeddings Generator | Sticky Note |
Sticky Note | n8n-nodes-base.stickyNote | دستورالعملهایی برای وارد کردن دستی ارائه میدهد. | MongoDB Vector Store Inserter | - |
WhatsApp Trigger | n8n-nodes-base.whatsAppTrigger | پیامهای ورودی WhatsApp را گوش میدهد. | - | Route Types |
Route Types | n8n-nodes-base.switch | پیامها را بر اساس نوع (متن، صدا، تصویر، سند) مسیریابی میکند. | WhatsApp Trigger | انواع مختلف (بر اساس نوع) |
Gets WhatsApp Voicemail Source URL | n8n-nodes-base.whatsApp | URL دانلود پیامهای صوتی را دریافت میکند. | WhatsApp Trigger (شاخه صدا) | Download Voicemail |
Download Voicemail | n8n-nodes-base.httpRequest | فایلهای صوتی را از یک URL دانلود میکند. | Gets WhatsApp Voicemail Source URL | OpenAI Audio Translate |
OpenAI Audio Translate | @n8n/n8n-nodes-langchain.openAi (Audio Translate) | پیامهای صوتی را به متن رونویسی میکند. | Download Voicemail | Map document prompt (یا مشابه) |
Gets WhatsApp Image Source URL | n8n-nodes-base.whatsApp | URL دانلود پیامهای تصویری را دریافت میکند. | WhatsApp Trigger (شاخه تصویر) | Download Image |
Download Image | n8n-nodes-base.httpRequest | فایلهای تصویری را از یک URL دانلود میکند. | Gets WhatsApp Image Source URL | OpenAI Image Analysis |
OpenAI Image Analysis | @n8n/n8n-nodes-langchain.openAi (Image Analysis) | محتوای تصویر را با استفاده از GPT-4o-mini تجزیه و تحلیل میکند. | Download Image | Map document prompt (یا مشابه) |
Gets WhatsApp Document Source URL | n8n-nodes-base.whatsApp | URL دانلود پیامهای سندی را دریافت میکند. | WhatsApp Trigger (شاخه سند) | Download Document |
Download Document | n8n-nodes-base.httpRequest | فایلهای سندی را از یک URL دانلود میکند. | Gets WhatsApp Document Source URL | Map file extensions |
Map file extensions | n8n-nodes-base.code | انواع MIME را برای فایلهای سندی نرمالسازی میکند. | Download Document | Route Document Types |
Route Document Types | n8n-nodes-base.switch | اسناد را بر اساس نوع MIME مسیریابی میکند. | Map file extensions | انواع مختلف (بر اساس نوع MIME) |
Map JSON | n8n-nodes-base.set | دادههای JSON را برای انواع سند خاص آماده میکند. | Route Document Types (شاخه JSON) | Extract from PDF (یا مشابه) |
Extract from PDF | n8n-nodes-base.extractFromFile | متن را از فایلهای PDF استخراج میکند. | Route Document Types (شاخه PDF) | Map document prompt |
Extract from XLS | n8n-nodes-base.extractFromFile | دادهها را از فایلهای XLS استخراج میکند. | Route Document Types (شاخه XLS) | Map JSON |
Extract from XLSX | n8n-nodes-base.extractFromFile | دادهها را از فایلهای XLSX استخراج میکند. | Route Document Types (شاخه XLSX) | Map JSON |
Send Unsupported Response | n8n-nodes-base.whatsApp | برای انواع فایلهای پشتیبانی نشده، اعلانی ارسال میکند. | Route Document Types (شاخه ELSE) | - |
Map document prompt | n8n-nodes-base.set | پرامپت AI را از محتوای سند استخراج شده میسازد. | انواع مختلف (از پردازش رسانه) | Document Chunker (یا embeddings) |
Map text prompt | n8n-nodes-base.set | پیام متنی کاربر را برای جاسازی استخراج میکند. | WhatsApp Trigger (شاخه متن) | Embeddings OpenAI |
Embeddings OpenAI | @n8n/n8n-nodes-langchain.openAi (Embeddings) | بردار جاسازی را برای متن پرس و جوی کاربر تولید میکند. | Map text prompt | MongoDB Vector Search |
MongoDB Vector Search | n8n-nodes-base.httpRequest (MongoDB Vector Search) | اسناد مرتبط را با استفاده از بردار جاسازی پرس و جو از MongoDB بازیابی میکند. | Embeddings OpenAI | Simple Memory |
Simple Memory | n8n-nodes-base.stickyNote (Memory Node) | تاریخچه مکالمه را برای زمینه مدیریت میکند. | MongoDB Vector Search | Knowledge Base Agent |
OpenAI Chat Model | @n8n/n8n-nodes-langchain.openAi (Chat Model) | تکمیل چت GPT-4o-mini را ارائه میدهد. | MongoDB Vector Search | Knowledge Base Agent |
Knowledge Base Agent | @n8n/n8n-nodes-langchain.agent | RAG را هماهنگ میکند: پرس و جو، زمینه، حافظه و مدل AI را برای پاسخ ترکیب میکند. | MongoDB Vector Search, Simple Memory, OpenAI Chat Model | Send Response |
Send Response | n8n-nodes-base.whatsApp | پاسخ تولید شده توسط AI را به کاربر ارسال میکند. | Knowledge Base Agent | - |
Nodeهای استفادهشده
سوالات متداول
چتبات واتساپ با هوش مصنوعی چه قابلیتهایی دارد؟▾
این چتبات قادر به درک و پاسخگویی به پیامهای متنی، صوتی، تصویری و اسناد PDF است. همچنین میتواند با استفاده از پایگاه دانش ذخیره شده در MongoDB، پاسخهای مرتبط و دقیق ارائه دهد.
تکنیک RAG در این گردش کار چگونه عمل میکند؟▾
تولید افزوده بازیابی (RAG) به چتبات اجازه میدهد تا قبل از تولید پاسخ، اطلاعات مرتبط را از پایگاه دانش (ذخیره شده در MongoDB) بازیابی کند و سپس با استفاده از مدل زبانی مانند GPT-4o-mini، پاسخی جامع و مبتنی بر زمینه ارائه دهد.
چه ابزارها و سرویسهایی برای ساخت این چتبات لازم است؟▾
برای ساخت این چتبات به پلتفرم n8n، حساب واتساپ، پایگاه داده MongoDB و دسترسی به API مدلهای هوش مصنوعی مانند OpenAI (برای پردازش صدا، تصویر و تولید متن) نیاز دارید.
چگونه میتوان اسناد را به پایگاه دانش چتبات اضافه کرد؟▾
این گردش کار امکان وارد کردن دستی اسناد از منابعی مانند Google Docs را فراهم میکند. اسناد پردازش، قطعهبندی شده و سپس بردارهای جاسازی آنها در MongoDB ذخیره میشوند تا برای بازیابی در دسترس باشند.
workflowهای مرتبط
- پاسخ خودکار به سوالات GitHub PR با GPT-4o، Notion و SlackEngineering
- اتوماسیون جستجوی لینکدین با GPT-4 و جستجوی بولی گوگلHR
- اتوماسیون خلاصهسازی جلسات با Google Drive و OpenAIAI
- تغییر نام خودکار گرههای n8n با هوش مصنوعیEngineering
- احراز هویت کاربران با OpenID Connect در n8nBuilding Blocks
- تحلیل صوتی با DeepGram و GPT-4o در n8nAI
