چت‌بات واتس‌اپ: پاسخ به سوالات با PDF، Google Drive و RAG

چت‌بات واتس‌اپ: پاسخ به سوالات با PDF، Google Drive و RAG

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

دانلود workflow

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

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

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

پاسخ به سوالات واتس‌اپ از اسناد PDF با استفاده از RAG، Google Drive و Pinecone

این گردش کار نحوه ساخت یک چت‌بات مجهز به هوش مصنوعی را نشان می‌دهد که به سوالات پرسیده شده از طریق واتس‌اپ پاسخ می‌دهد و از رویکرد بازیابی-افزوده (Retrieval-Augmented Generation - RAG) استفاده می‌کند. پایگاه دانش چت‌بات از اسناد PDF ذخیره شده در Google Drive شما مشتق شده و جاسازی‌های برداری (vector embeddings) آن توسط Pinecone مدیریت می‌شود.

دسته‌بندی‌ها: چت‌بات پشتیبانی، AI RAG

کاتالوگ Axeto.ai: https://axeto.ai/n8n

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

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

1. پردازش و جاسازی اسناد: این بخش یک فایل PDF خاص را در Google Drive نظارت می‌کند. پس از شناسایی تغییرات، فایل را دانلود کرده، محتوای آن را با تقسیم‌بندی به بخش‌های قابل مدیریت پردازش می‌کند، با استفاده از OpenAI جاسازی‌های برداری (vector embeddings) تولید می‌کند و این جاسازی‌ها را در یک پایگاه داده برداری Pinecone ذخیره می‌کند. این کار به طور موثر یک پایگاه دانش قابل جستجو از اسناد شما ایجاد می‌کند.

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

3. بازیابی، استدلال و پاسخ هوش مصنوعی: هنگام دریافت پیام، این بخش پایگاه داده Pinecone را برای اطلاعات مرتبط بر اساس محتوای پیام جستجو می‌کند. سپس از یک عامل هوش مصنوعی (AI Agent)، که توسط یک مدل چت Google Gemini پشتیبانی می‌شود، برای تولید پاسخی مبتنی بر زمینه بازیابی شده استفاده می‌کند. در نهایت، پاسخ از طریق واتس‌اپ به کاربر ارسال می‌شود.

تحلیل بلوک به بلوک

۱. پردازش سند و جاسازی‌ها (Embeddings)

این بلوک اسناد PDF شما را برای استفاده به عنوان پایگاه دانش برای هوش مصنوعی آماده می‌کند.

  • عملکرد: یک فایل PDF مشخص در Google Drive را پایش می‌کند. هنگامی که فایل به‌روزرسانی می‌شود، آن را دانلود کرده، متن را استخراج می‌کند، به قطعات کوچک‌تر تقسیم می‌کند، جاسازی‌های برداری (vector embeddings) را با استفاده از OpenAI تولید می‌کند و این جاسازی‌ها را در یک ایندکس Pinecone برای جستجوی معنایی کارآمد ذخیره می‌کند.
  • Node ها:

* Google Drive Trigger

* Google Drive (دانلود فایل)

* LangChain: Recursive Character Text Splitter

* LangChain: Document Default Data Loader

* LangChain: Embeddings OpenAI

* LangChain: Vector Store Pinecone

  • جزئیات Node ها:

* Google Drive Trigger:

* نوع: Node تریگر برای Google Drive.

* پیکربندی: برای بررسی تغییرات در یک فایل خاص با استفاده از شناسه آن هر دقیقه پیکربندی شده است.

* خروجی: متادیتای فایل را به Node "Download file" ارسال می‌کند.

* مشکلات احتمالی: خطاهای احراز هویت، مشکلات دسترسی به فایل، محدودیت‌های نرخ API Google Drive.

* Google Drive (Download file):

* نوع: Node Google Drive.

* پیکربندی: فایلی را که توسط تریگر شناسایی شده با استفاده از شناسه پویا ({{$json.id}}) دانلود می‌کند.

* خروجی: محتوای باینری فایل را به Node "Pinecone Vector Store" ارسال می‌کند.

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

* LangChain: Document Default Data Loader:

* نوع: Node بارگذار داده LangChain.

* پیکربندی: داده‌های باینری را بارگذاری می‌کند، متادیتا شامل نام فایل ({{$('Download file').item.json.name}}) را پیوست می‌کند و از حالت تقسیم متن سفارشی استفاده می‌کند.

* خروجی: قطعات سند را به Node "Pinecone Vector Store" ارسال می‌کند.

* مشکلات احتمالی: محتوای فایل پشتیبانی نشده، مدیریت اسناد خالی.

* LangChain: Recursive Character Text Splitter:

* نوع: Node تقسیم‌کننده متن LangChain.

* پیکربندی: متن سند را به قطعاتی با ۱۰۰ کاراکتر و همپوشانی ۲۰ کاراکتری تقسیم می‌کند تا زمینه بین قطعات حفظ شود.

* ورودی: متن را از "Default Data Loader" دریافت می‌کند.

* خروجی: قطعات تقسیم‌شده را به "Default Data Loader" ارسال می‌کند.

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

* LangChain: Embeddings OpenAI:

* نوع: Node جاسازی‌های LangChain.

* پیکربندی: جاسازی‌های برداری را با استفاده از یک مدل جاسازی OpenAI با ابعاد ۵۱۲ تولید می‌کند.

* ورودی: قطعات متن را از "Default Data Loader" دریافت می‌کند.

* خروجی: جاسازی‌های تولید شده را به Node "Pinecone Vector Store" ارسال می‌کند.

* اعتبارنامه‌ها: نیاز به کلید API معتبر OpenAI دارد.

* مشکلات احتمالی: محدودیت‌های نرخ API OpenAI، اعتبارنامه‌های نامعتبر، متن ورودی نامعتبر.

* LangChain: Vector Store Pinecone:

* نوع: Node فروشگاه برداری LangChain.

* پیکربندی: برای درج در یک ایندکس Pinecone (به عنوان مثال، با نام "restaurant") پیکربندی شده است.

* ورودی: جاسازی‌ها را از "Embeddings OpenAI"، داده‌های فایل را از "Download file" و قطعات سند را از "Default Data Loader" دریافت می‌کند.

* اعتبارنامه‌ها: نیاز به کلید API Pinecone و نام ایندکس دارد.

* مشکلات احتمالی: خطاهای API Pinecone، خرابی شبکه، پیکربندی نادرست ایندکس.

  • یادداشت چسبان: "پردازش سند و جاسازی‌ها: فایل‌های Drive آپلود شده را پردازش می‌کند، متن را به قطعات تقسیم می‌کند، جاسازی‌ها را با OpenAI ایجاد می‌کند و آن‌ها را در ایندکس برداری Pinecone ذخیره می‌کند."

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

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

  • عملکرد: پیام‌های ورودی واتس‌اپ را از طریق یک وب‌هوک (webhook) گوش می‌دهد و فرآیند پرس‌وجوی هوش مصنوعی را راه‌اندازی می‌کند.
  • Node ها:

* WhatsApp Trigger

  • جزئیات Node ها:

* WhatsApp Trigger:

* نوع: Node تریگر برای واتساپ.

* پیکربندی: برای گوش دادن به به‌روزرسانی‌های پیام پیکربندی شده است.

* اعتبارنامه‌ها: نیاز به اعتبارنامه‌های API واتساپ و یک وب‌هوک راه‌اندازی شده صحیح دارد.

* خروجی: JSON پیام ورودی را به Node "AI Agent" ارسال می‌کند.

* مشکلات احتمالی: خطاهای راه‌اندازی وب‌هوک، شماره تلفن‌های نامعتبر، مشکلات اتصال.

  • یادداشت چسبان: "جریان پیام واتساپ: پیام‌های ورودی واتساپ را دریافت می‌کند، پرس‌وجو را به عامل هوش مصنوعی ارسال می‌کند و پاسخ تولید شده را به کاربر برمی‌گرداند."

۳. بازیابی، استدلال و پاسخ هوش مصنوعی

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

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

* LangChain: Agent

* LangChain: Vector Store Pinecone (بازیابی)

* LangChain: Memory Buffer Window

* LangChain: LM Chat Google Gemini

* WhatsApp (ارسال پیام)

  • جزئیات Node ها:

* LangChain: Agent:

* نوع: Node عامل هوش مصنوعی LangChain.

* پیکربندی: پیام‌های کاربر را در قالب "User : {{ $json.messages[0].text.body }}" پردازش می‌کند. اعلان سیستمی به عامل دستور می‌دهد که صرفاً بر اساس زمینه بازیابی شده پاسخ دهد، لحن طبیعی را حفظ کند، پاسخ‌ها را کوتاه نگه دارد و از ساختن اطلاعات (hallucination) خودداری کند.

* ورودی‌ها: پیام‌های کاربر را از "WhatsApp Trigger"، نتایج بازیابی را از "Pinecone Vector Store1" و زمینه مکالمه را از "Simple Memory" دریافت می‌کند.

* ابزارها: از "Pinecone Vector Store1" برای بازیابی و "Google Gemini Chat Model" به عنوان مدل زبان خود استفاده می‌کند.

* خروجی: پاسخ متنی تولید شده را به Node "Send message" ارسال می‌کند.

* مشکلات احتمالی: خرابی API مدل هوش مصنوعی، تفسیر نادرست اعلان، عدم بازیابی زمینه مرتبط.

* LangChain: Vector Store Pinecone (Retrieve):

* نوع: Node فروشگاه برداری LangChain.

* پیکربندی: ۵ بردار مرتبط‌تر را از همان ایندکس Pinecone که برای جاسازی استفاده شده است (به عنوان مثال، "restaurant") بازیابی می‌کند.

* ورودی: پرس‌وجوی کاربر را از "AI Agent" دریافت می‌کند.

* خروجی: زمینه سند مرتبط را به "AI Agent" ارائه می‌دهد.

* اعتبارنامه‌ها: نیاز به اعتبارنامه‌های API Pinecone دارد.

* مشکلات احتمالی: یافت نشدن اسناد مرتبط، خطاهای API Pinecone.

* LangChain: Memory Buffer Window:

* نوع: Node حافظه LangChain.

* پیکربندی: از یک کلید جلسه ثابت (به عنوان مثال، "1") برای حفظ تاریخچه مکالمه استفاده می‌کند.

* ورودی: تاریخچه مکالمه را دریافت و ذخیره می‌کند.

* خروجی: زمینه مکالمه را به "AI Agent" ارائه می‌دهد.

* مشکلات احتمالی: سرریز حافظه، مشکلات احتمالی در مدیریت کلید جلسه در سناریوهای مقیاس‌پذیر.

* LangChain: LM Chat Google Gemini:

* نوع: Node مدل زبان LangChain.

* پیکربندی: از API Google Gemini (PaLM) برای تولید زبان طبیعی استفاده می‌کند.

* ورودی: اعلان‌ها و زمینه را از "AI Agent" دریافت می‌کند.

* خروجی: متن تولید شده را به "AI Agent" برمی‌گرداند.

* اعتبارنامه‌ها: نیاز به اعتبارنامه‌های API Google Palm دارد.

* مشکلات احتمالی: اتمام سهمیه API، تأخیر بالا.

* WhatsApp (Send message):

* نوع: Node واتساپ.

* پیکربندی: پاسخ تولید شده توسط هوش مصنوعی را به عنوان بدنه پیام به شماره واتساپ مبدأ ({{$('WhatsApp Trigger').item.json.messages[0].from}}) ارسال می‌کند. نیاز به شناسه شماره تلفن فرستنده دارد.

* ورودی: پاسخ تولید شده توسط هوش مصنوعی را از "AI Agent" دریافت می‌کند.

* اعتبارنامه‌ها: نیاز به اعتبارنامه‌های API واتساپ دارد.

* مشکلات احتمالی: شکست در ارسال پیام، شماره‌های گیرنده نامعتبر.

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

جدول خلاصه

نام نود (Node Name)نوع نود (Node Type)نقش عملکردی (Functional Role)نود(های) ورودی (Input Node(s))نود(های) خروجی (Output Node(s))یادداشت چسبان (Sticky Note)
Google Drive Triggern8n-nodes-base.googleDriveTriggerنظارت بر به‌روزرسانی فایل‌ها در Google Drive-n8n-nodes-base.googleDrive
Google Drive (Download file)n8n-nodes-base.googleDriveدانلود فایل فعال‌شدهGoogle Drive Triggern8n-nodes-base.stickyNote (از طریق خروجی پیش‌فرض)
LangChain: Recursive Character Text Splitter@n8n/n8n-nodes-langchain.textSplitterتقسیم متن سند به قطعات (chunks)-LangChain: Document Default Data Loader
LangChain: Document Default Data Loader@n8n/n8n-nodes-langchain.documentDefaultDataLoaderبارگذاری و آماده‌سازی قطعات سندLangChain: Recursive Character Text SplitterLangChain: Vector Store Pineconeپردازش سند و جاسازی‌ها (Embeddings): پردازش فایل‌های آپلود شده در درایو، تقسیم متن به قطعات، ایجاد جاسازی‌ها با OpenAI و ذخیره آن‌ها در شاخص وکتور Pinecone.
LangChain: Embeddings OpenAI@n8n/n8n-nodes-langchain.embeddingsOpenAiتولید جاسازی‌های وکتور از قطعات متنLangChain: Document Default Data LoaderLangChain: Vector Store Pinecone
LangChain: Vector Store Pinecone@n8n/n8n-nodes-langchain.vectorStorePineconeدرج جاسازی‌ها در شاخص PineconeLangChain: Embeddings OpenAI, Google Drive (Download file), LangChain: Document Default Data Loader-
WhatsApp Triggern8n-nodes-base.whatsAppTriggerگوش دادن به پیام‌های دریافتی WhatsApp-LangChain: Agentجریان پیام واتساپ: دریافت پیام‌های دریافتی WhatsApp، ارسال پرس‌وجو به عامل هوش مصنوعی و بازگرداندن پاسخ تولید شده به کاربر.
LangChain: Agent@n8n/n8n-nodes-langchain.agentپردازش پرس‌وجوی کاربر، بازیابی زمینه، تولید پاسخWhatsApp Trigger, LangChain: Vector Store Pinecone (Retrieve), LangChain: Memory Buffer Window, LangChain: LM Chat Google Geminin8n-nodes-base.whatsApp (Send message)منطق بازیابی و پاسخ‌دهی هوش مصنوعی: عامل هوش مصنوعی، وکتورهای مرتبط را از Pinecone بازیابی کرده و از آن‌ها به عنوان زمینه برای تولید پاسخ‌های دقیق از طریق RAG استفاده می‌کند.
LangChain: Vector Store Pinecone (Retrieve)@n8n/n8n-nodes-langchain.vectorStorePineconeبازیابی وکتورهای مرتبط از PineconeLangChain: AgentLangChain: Agent
LangChain: Memory Buffer Window@n8n/n8n-nodes-langchain.memoryBufferWindowحفظ زمینه مکالمه جلسه-LangChain: Agent
LangChain: LM Chat Google Gemini@n8n/n8n-nodes-langchain.lmChatGoogleGeminiارائه تولید زبان طبیعی-LangChain: Agent
WhatsApp (Send message)n8n-nodes-base.whatsAppارسال پاسخ تولید شده توسط هوش مصنوعی به کاربرLangChain: Agent-

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

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

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

این گردش کار از تکنیک Retrieval-Augmented Generation (RAG) استفاده می‌کند. ابتدا اسناد PDF شما را پردازش کرده و جاسازی‌های برداری (vector embeddings) آن‌ها را در Pinecone ذخیره می‌کند. سپس، پیام‌های ورودی واتس‌اپ را دریافت کرده، اطلاعات مرتبط را از Pinecone بازیابی می‌کند و با استفاده از یک عامل هوش مصنوعی (AI Agent) و مدل زبانی بزرگ (مانند Google Gemini)، پاسخی متناسب با زمینه تولید کرده و از طریق واتس‌اپ ارسال می‌کند.

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

این گردش کار از n8n به عنوان پلتفرم اصلی اتوماسیون استفاده می‌کند. برای ذخیره‌سازی اسناد از Google Drive، برای مدیریت پایگاه داده برداری از Pinecone و برای تولید جاسازی‌های برداری از OpenAI استفاده می‌شود. همچنین از مدل چت Google Gemini برای استدلال هوش مصنوعی بهره می‌برد.

آیا می‌توانم اسناد دیگری غیر از PDF را به این چت‌بات اضافه کنم؟

در حال حاضر، این گردش کار به طور خاص برای پردازش اسناد PDF طراحی شده است. با این حال، با تغییر Node های بارگذار داده (Data Loader) و تقسیم‌کننده متن (Text Splitter) در n8n، می‌توان آن را برای پشتیبانی از انواع دیگر اسناد متنی نیز تطبیق داد.

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

برای به‌روزرسانی پایگاه دانش، کافیست فایل PDF مورد نظر خود را در Google Drive که توسط گردش کار پایش می‌شود، جایگزین یا به‌روزرسانی کنید. گردش کار به طور خودکار فایل جدید را شناسایی کرده، آن را پردازش و جاسازی‌های برداری به‌روز شده را در Pinecone ذخیره می‌کند.

workflowهای مرتبط

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