چت‌بات هوش مصنوعی با n8n

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

مقدمه

RAG در n8n

RAG در n8n:

آموزش ساخت سیستم پرسش و پاسخ هوشمند با RAG در n8n؛ اتصال Google Drive، Pinecone و OpenAI

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

Workflow حاضر در n8n دقیقاً با همین هدف طراحی شده است. در این Template ابتدا یک فایل از Google Drive دریافت می‌شود، محتوای آن به بخش‌های کوچک‌تر تقسیم شده و سپس با استفاده از مدل Embedding شرکت OpenAI به بردارهای معنایی تبدیل می‌شود. این بردارها داخل پایگاه داده برداری Pinecone ذخیره می‌شوند تا امکان جستجوی بسیار سریع و دقیق فراهم شود.

در ادامه:

در ادامه نیز یک Chat Trigger وظیفه دریافت سوال کاربر را بر عهده دارد. Workflow با جستجو در Pinecone مرتبط‌ترین بخش‌های سند را پیدا می‌کند، آن‌ها را در اختیار مدل زبانی OpenAI قرار می‌دهد و در نهایت پاسخی تولید می‌کند که علاوه بر دقت بالا، شامل ارجاع به بخش‌های استفاده‌شده از سند نیز خواهد بود.

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

قبل از شروع

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

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

این Workflow یک سیستم کامل RAG در n8n را پیاده‌سازی می‌کند که از سه بخش اصلی تشکیل شده است.

در مرحله اول: 

 فایل موردنظر از Google Drive دریافت می‌شود. سپس محتوای فایل توسط Data Loader استخراج شده و با استفاده از Text Splitter به قطعات کوچک‌تر تقسیم می‌شود تا پردازش آن برای مدل‌های هوش مصنوعی ساده‌تر و دقیق‌تر باشد.

در مرحله دوم:

 هر قطعه از متن توسط مدل Embedding شرکت OpenAI به یک بردار معنایی تبدیل شده و در پایگاه داده برداری Pinecone ذخیره می‌شود. این مرحله باعث می‌شود بعدها بتوان اطلاعات مرتبط را تنها بر اساس مفهوم متن و نه صرفاً کلمات کلیدی جستجو کرد.

در مرحله سوم:

 کاربر از طریق Chat Trigger سوال خود را مطرح می‌کند. Workflow سوال را به Embedding تبدیل کرده، نزدیک‌ترین بخش‌های سند را از Pinecone بازیابی می‌کند و آن‌ها را به مدل ChatGPT ارسال می‌کند. مدل تنها بر اساس اطلاعات بازیابی‌شده پاسخ تولید می‌کند و در پایان نیز ارجاعات مربوط به بخش‌های استفاده‌شده از سند را نمایش می‌دهد تا کاربر بتواند منبع پاسخ را مشاهده کند.

کاربردهای این Workflow

این Template در پروژه‌های مختلف هوش مصنوعی و اتوماسیون کاربردهای فراوانی دارد که مهم‌ترین آن‌ها عبارت‌اند از:

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

پیش‌نیازها

برای اجرای صحیح این Workflow به موارد زیر نیاز دارید:

  • نصب و راه‌اندازی n8n
  • دسترسی به Google Drive و ایجاد Credential مربوطه
  • حساب OpenAI به همراه API Key معتبر
  • حساب Pinecone
  • ایجاد یک Index در Pinecone با ابعاد 1536
  • دسترسی به فایل موردنظر در Google Drive
  • اتصال Credentialهای OpenAI، Google Drive و Pinecone در n8n
  • دسترسی اینترنت برای ارتباط با سرویس‌های ابری
  • آشنایی اولیه با Workflowهای n8n
  • مجوز خواندن فایل از Google Drive

آشنایی با سرویس‌های استفاده‌شده

Google Drive

Google Drive فضای ذخیره‌سازی ابری گوگل است که امکان نگهداری، اشتراک‌گذاری و مدیریت فایل‌ها را فراهم می‌کند. در این Workflow فایل موردنظر مستقیماً از Google Drive دانلود شده و برای پردازش به مراحل بعدی ارسال می‌شود.

OpenAI

OpenAI وظیفه پردازش هوش مصنوعی را بر عهده دارد. در این Template از دو قابلیت مهم این سرویس استفاده شده است. نخست تولید Embedding برای تبدیل متن به بردارهای معنایی و سپس استفاده از مدل Chat برای تولید پاسخ نهایی بر اساس اطلاعات بازیابی‌شده از پایگاه داده برداری.

Pinecone

Pinecone یک پایگاه داده برداری (Vector Database) است که برای ذخیره و جستجوی Embeddingها طراحی شده است. این سرویس امکان جستجوی معنایی بسیار سریع را فراهم می‌کند و یکی از محبوب‌ترین گزینه‌ها برای پیاده‌سازی سیستم‌های RAG محسوب می‌شود.

دانلود Template

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

آموزش Import کردن Workflow

RAG در n8n

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

ساختار Workflow

RAG در n8n

این Template از دو بخش اصلی تشکیل شده است.

بخش اول: آماده‌سازی اطلاعات و ساخت پایگاه دانش

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

بخش دوم: پاسخگویی هوشمند به سوالات

در این مرحله، پس از دریافت سوال کاربر، مرتبط‌ترین بخش‌های سند از Pinecone بازیابی می‌شوند. سپس مدل زبانی OpenAI تنها بر اساس اطلاعات استخراج‌شده پاسخ تولید می‌کند و در نهایت ارجاعات مربوط به بخش‌های استفاده‌شده از سند نیز به پاسخ اضافه می‌شود تا کاربر بتواند منبع اطلاعات را مشاهده کند.

آموزش کامل Nodeهای مرحله آماده‌سازی اطلاعات (Setup)

RAG در n8n

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

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

Node اول: Manual Trigger
نام Node

When clicking “Execute Workflow”

وظیفه Node

این Node نقطه شروع Workflow است و تنها زمانی اجرا می‌شود که کاربر روی دکمه Execute Workflow در محیط n8n کلیک کند.

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

ورودی

این Node ورودی خاصی ندارد و اجرای آن کاملاً دستی است.

خروجی

یک آیتم اولیه برای شروع اجرای Workflow تولید می‌کند.

تنظیمات مهم
  • نیازی به تنظیم پارامتر خاصی ندارد.
  • تنها با کلیک روی Execute Workflow اجرا می‌شود.
نکات قابل تغییر

در پروژه‌های واقعی می‌توانید این Node را با موارد زیر جایگزین کنید:

  • Schedule Trigger
  • Webhook Trigger
  • Google Drive Trigger
  • Cron Trigger

در این صورت فرآیند وارد کردن اسناد به صورت خودکار انجام خواهد شد.

دلیل استفاده در Workflow

هدف از استفاده از Manual Trigger جلوگیری از ورود چندباره یک فایل به Pinecone است؛ زیرا هر بار اجرای این بخش باعث ایجاد نسخه جدیدی از بردارها در پایگاه داده می‌شود.

Node دوم: Set File URL in Google Drive

RAG در n8n

وظیفه Node

این Node آدرس فایل موجود در Google Drive را داخل یک متغیر ذخیره می‌کند تا در مراحل بعدی برای دانلود فایل استفاده شود.

در واقع به جای اینکه لینک فایل در چند قسمت Workflow تکرار شود، تنها یک بار تعریف شده و سایر Nodeها از همان مقدار استفاده می‌کنند.

ورودی

خروجی Manual Trigger

خروجی

فیلدی با نام:

  • file_url

که شامل لینک فایل Google Drive است.

تنظیمات مهم

در این Workflow مقدار زیر در این Node ذخیره شده است:

  • لینک فایل Google Drive

هر زمان فایل جدیدی داشته باشید کافی است همین مقدار را تغییر دهید.

نکات قابل تغییر

می‌توانید به جای مقدار ثابت از روش‌های زیر استفاده کنید:

  • دریافت لینک از Webhook
  • خواندن لینک از Google Sheets
  • دریافت از Airtable
  • خواندن از Database
  • دریافت از فرم کاربر
دلیل استفاده در Workflow

این روش باعث می‌شود نگهداری Workflow بسیار ساده‌تر شود و در صورت تغییر فایل تنها یک قسمت نیاز به ویرایش داشته باشد.

Node سوم: Google Drive Download

RAG در n8n

نام Node

Download file

وظیفه Node

این Node فایل معرفی‌شده را از Google Drive دانلود می‌کند.

n8n به صورت مستقیم از Credential تعریف‌شده استفاده کرده و فایل را به صورت Binary در اختیار مراحل بعدی قرار می‌دهد.

ورودی
  • file_url
خروجی

خروجی شامل اطلاعات Binary فایل است، از جمله:

  • نام فایل
  • نوع فایل
  • پسوند
  • محتوای فایل
تنظیمات مهم

در این Template عملیات روی حالت زیر قرار گرفته است:

Operation:

Download

همچنین File ID مستقیماً از لینک Google Drive استخراج می‌شود.

نکات قابل تغییر

این Node از انواع مختلف فایل پشتیبانی می‌کند؛ مانند:

  • PDF
  • Word
  • Text
  • CSV
  • سایر فایل‌های قابل پردازش

همچنین می‌توانید فایل را از پوشه‌های مختلف Google Drive دریافت کنید.

دلیل استفاده در Workflow

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

Node چهارم: Code

RAG در n8n

نام Node

Add in metadata

وظیفه Node

این Node اطلاعات تکمیلی فایل را به داده‌ها اضافه می‌کند.

اطلاعاتی مانند:

  • نام فایل
  • پسوند فایل
  • لینک فایل

به Metadata افزوده می‌شوند تا بعداً هنگام پاسخگویی و نمایش Citation قابل استفاده باشند.

ورودی

فایل دانلود شده از Google Drive

خروجی

همان فایل به همراه Metadata جدید

تنظیمات مهم

در کد جاوااسکریپت سه مقدار به داده اضافه می‌شود:

  • file_name
  • file_ext
  • file_url
نکات قابل تغییر

می‌توانید اطلاعات بیشتری نیز ذخیره کنید، مانند:

  • نویسنده فایل
  • تاریخ ایجاد
  • دسته‌بندی
  • شناسه سند
  • زبان فایل
  • نسخه سند
  • برچسب‌ها

این اطلاعات بعدها برای فیلتر کردن اسناد بسیار کاربردی هستند.

دلیل استفاده در Workflow

وجود Metadata باعث می‌شود هنگام جستجو و تولید پاسخ، اطلاعات دقیق‌تری درباره منبع هر بخش از متن در دسترس باشد.

Node پنجم: Default Data Loader

RAG در n8n

وظیفه Node

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

همچنین Metadata تولیدشده در مرحله قبل را به هر بخش از متن متصل می‌کند.

ورودی

فایل Binary

خروجی

Documentهای استاندارد LangChain

هر Document شامل دو بخش اصلی است:

  • متن
  • Metadata
تنظیمات مهم

در این Workflow دو Metadata مهم ذخیره می‌شوند:

  • file_url
  • file_name

این اطلاعات بعدها هنگام تولید Citation استفاده خواهند شد.

نکات قابل تغییر

می‌توانید Metadataهای بیشتری نیز اضافه کنید تا مدیریت اسناد در پروژه‌های بزرگ ساده‌تر شود.

دلیل استفاده در Workflow

مدل‌های هوش مصنوعی مستقیماً فایل Binary را درک نمی‌کنند؛ بنابراین ابتدا باید فایل به Documentهای متنی تبدیل شود.

Node ششم: Recursive Character Text Splitter

RAG در n8n

وظیفه Node

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

در این Workflow هر قطعه دارای اندازه مناسبی است تا هم کیفیت Embedding حفظ شود و هم جستجوی معنایی دقیق‌تر انجام گیرد.

ورودی

Documentهای استخراج‌شده

خروجی

چندین Chunk از متن

تنظیمات مهم

در این Template تنظیمات به صورت زیر است:

  • Chunk Size: 3000
  • Chunk Overlap: 200

وجود Overlap باعث می‌شود ارتباط بین بخش‌های مختلف متن حفظ شود و اطلاعات مهم در مرز دو Chunk از بین نرود.

نکات قابل تغییر

بسته به نوع اسناد می‌توانید اندازه Chunk را تغییر دهید:

  • اسناد کوتاه: اندازه کوچک‌تر
  • کتاب‌ها: اندازه متوسط
  • مستندات فنی: اندازه بزرگ‌تر

همچنین مقدار Overlap نیز قابل تنظیم است.

دلیل استفاده در Workflow

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

Node هفتم: OpenAI Embeddings

RAG در n8n

نام Node

Embeddings OpenAI

وظیفه Node

این Node متن هر Chunk را به یک بردار عددی (Embedding) تبدیل می‌کند.

Embedding نمایش ریاضی مفهوم متن است و امکان جستجوی معنایی را فراهم می‌کند.

ورودی

Chunkهای تولیدشده توسط Text Splitter

خروجی

بردارهای معنایی با ابعاد مناسب برای ذخیره در Pinecone

تنظیمات مهم

این Node از Credential مربوط به OpenAI استفاده می‌کند.

هر Chunk به صورت جداگانه پردازش شده و یک Embedding مستقل دریافت می‌کند.

نکات قابل تغییر

می‌توانید:

  • مدل Embedding را تغییر دهید.
  • از Azure OpenAI استفاده کنید.
  • سرویس Embedding دیگری را جایگزین کنید.
  • پارامترهای پردازش را متناسب با پروژه تنظیم کنید.
دلیل استفاده در Workflow

بدون Embedding، Pinecone قادر به انجام جستجوی معنایی نخواهد بود و تنها جستجوی ساده بر اساس کلمات امکان‌پذیر است.

Node هشتم: Pinecone Vector Store (Insert)

RAG در n8n

نام Node

Add to Pinecone vector store

وظیفه Node

این Node تمام Embeddingهای تولیدشده را داخل پایگاه داده Pinecone ذخیره می‌کند.

هر Chunk به همراه Metadata مربوط به خود در Index مشخص‌شده ثبت می‌شود تا در آینده قابل بازیابی باشد.

ورودی
  • Embeddingها
  • Documentها
  • Metadata
خروجی

ثبت موفق اطلاعات در پایگاه داده برداری

تنظیمات مهم

در این Template از Index زیر استفاده شده است:

test-index

همچنین Index باید دارای ابعاد 1536 باشد تا با خروجی مدل Embedding سازگار باشد.

نکات قابل تغییر

در پروژه‌های واقعی می‌توانید:

  • Indexهای جداگانه برای هر پروژه ایجاد کنید.
  • اسناد را بر اساس دسته‌بندی ذخیره کنید.
  • Namespaceهای مختلف تعریف کنید.
  • Metadataهای بیشتری برای فیلتر کردن نتایج اضافه کنید.
دلیل استفاده در Workflow

Pinecone قلب سیستم RAG محسوب می‌شود. تمام قابلیت جستجوی هوشمند این Workflow به اطلاعات ذخیره‌شده در این Node وابسته است. هر زمان کاربر سوالی مطرح کند، ابتدا Pinecone نزدیک‌ترین Chunkها را پیدا می‌کند و سپس آن‌ها برای تولید پاسخ به مدل زبانی ارسال می‌شوند.

نتیجه مرحله Setup

RAG در n8n

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

آموزش کامل Nodeهای بخش پرسش و پاسخ (RAG) – قسمت اول

پس از اینکه اسناد در پایگاه داده برداری Pinecone ذخیره شدند، Workflow وارد مرحله دوم می‌شود. این بخش وظیفه پاسخگویی هوشمند به سوالات کاربران را بر عهده دارد. برخلاف یک جستجوی معمولی که تنها بر اساس کلمات کلیدی انجام می‌شود، این Workflow ابتدا مفهوم سوال را درک می‌کند، سپس مرتبط‌ترین بخش‌های سند را پیدا کرده و در نهایت پاسخ را بر اساس همان اطلاعات تولید می‌کند.

در این قسمت، Nodeهای ابتدایی این فرآیند شامل دریافت سوال، تعیین تعداد اسناد قابل بازیابی، جستجوی معنایی در Pinecone و آماده‌سازی متن برای ارسال به مدل زبانی بررسی می‌شوند.

Node نهم: Chat Trigger

وظیفه Node

Chat Trigger نقطه شروع بخش دوم Workflow است. این Node یک رابط گفتگو ایجاد می‌کند تا کاربر بتواند سوال خود را مستقیماً وارد کند.

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

ورودی

ورودی این Node توسط کاربر و از طریق رابط چت وارد می‌شود.

نمونه سوال‌ها:

  • بیت‌کوین چگونه کار می‌کند؟
  • خالق بیت‌کوین از چه سرویس ایمیلی استفاده می‌کند؟
  • این سند درباره چه موضوعی توضیح داده است؟
خروجی

خروجی شامل متن سوال کاربر است که در متغیر chatInput ذخیره می‌شود.

همین مقدار در مراحل بعدی برای جستجوی معنایی استفاده خواهد شد.

تنظیمات مهم

این Node به صورت خودکار یک Webhook اختصاصی ایجاد می‌کند و محیط گفتگوی n8n را فعال می‌سازد.

نکات قابل تغییر

می‌توانید این Node را با موارد زیر جایگزین کنید:

  • Telegram Trigger
  • Slack Trigger
  • Discord Trigger
  • Webhook
  • WhatsApp API
  • فرم وب‌سایت
  • API اختصاصی

در این صورت کاربران از همان بستر می‌توانند سوالات خود را مطرح کنند.

دلیل استفاده در Workflow

تمام فرآیند RAG بر اساس سوال کاربر انجام می‌شود؛ بنابراین ابتدا باید ورودی کاربر دریافت شود.

Node دهم: Set max chunks to send to model

وظیفه Node

پس از دریافت سوال، این Node مشخص می‌کند چند بخش از سند برای مدل زبانی ارسال شود.

در Workflow حاضر مقدار این متغیر روی عدد ۴ قرار گرفته است.

یعنی تنها چهار Chunk مرتبط به مدل هوش مصنوعی ارسال خواهند شد.

ورودی

سوال کاربر

خروجی

فیلدی با نام:

chunks

که مقدار آن برابر با 4 است.

تنظیمات مهم

عدد تعیین‌شده نقش مهمی در عملکرد سیستم دارد.

اگر مقدار بسیار کم باشد، ممکن است اطلاعات کافی برای پاسخ وجود نداشته باشد.

اگر مقدار بسیار زیاد باشد:

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

بسته به پروژه می‌توانید این مقدار را تغییر دهید.

برای مثال:

  • FAQها: ۲ تا ۳ Chunk
  • اسناد فنی: ۴ تا ۶ Chunk
  • کتاب‌های طولانی: ۶ تا ۱۰ Chunk
دلیل استفاده در Workflow

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

Node یازدهم: Pinecone Vector Store (Load)

نام Node

Get top chunks matching query

وظیفه Node

این مهم‌ترین Node بخش RAG است.

وظیفه آن جستجوی معنایی میان تمام بردارهای ذخیره‌شده در Pinecone و پیدا کردن نزدیک‌ترین بخش‌های سند به سوال کاربر است.

به جای جستجو بر اساس کلمات، Pinecone مفهوم سوال را با مفهوم متن‌ها مقایسه می‌کند.

به همین دلیل حتی اگر عبارات دقیقاً یکسان نباشند، نزدیک‌ترین پاسخ پیدا خواهد شد.

ورودی

این Node از سه بخش اصلی استفاده می‌کند:

  • سوال کاربر
  • مقدار chunks
  • Embedding تولیدشده از سوال
خروجی

لیستی از مرتبط‌ترین Documentها

هر Document شامل موارد زیر است:

  • متن Chunk
  • Metadata
  • شماره خطوط
  • نام فایل
  • لینک فایل
تنظیمات مهم

در این Workflow مقدار Top K به صورت داینامیک از Node قبلی دریافت می‌شود.

همچنین Index انتخاب‌شده همان Index مرحله ساخت پایگاه دانش است.

نکات قابل تغییر

در پروژه‌های بزرگ می‌توانید:

  • Namespace تعریف کنید.
  • فقط در یک دسته خاص جستجو انجام دهید.
  • بر اساس Metadata نتایج را فیلتر کنید.
  • چند Index مختلف ایجاد کنید.
دلیل استفاده در Workflow

بدون این Node مدل زبانی هیچ اطلاعاتی درباره اسناد شما نخواهد داشت.

تمام مفهوم Retrieval در معماری RAG توسط همین Node انجام می‌شود.

Node دوازدهم: OpenAI Embeddings (Search)

RAG در n8n

وظیفه Node

قبل از اینکه Pinecone بتواند جستجو انجام دهد، باید سوال کاربر نیز به بردار معنایی تبدیل شود.

این Node دقیقاً همین کار را انجام می‌دهد.

سوال کاربر به Embedding تبدیل شده و برای جستجوی برداری به Pinecone ارسال می‌شود.

ورودی

متن سوال کاربر

خروجی

یک بردار معنایی که مفهوم سوال را نمایش می‌دهد.

تنظیمات مهم

بهتر است همان مدل Embedding مرحله ذخیره‌سازی اسناد استفاده شود تا کیفیت بازیابی اطلاعات حفظ گردد.

نکات قابل تغییر

در صورت تغییر مدل Embedding هنگام ساخت پایگاه دانش، این Node نیز باید از همان مدل استفاده کند.

در غیر این صورت نتایج جستجو دقت لازم را نخواهند داشت.

دلیل استفاده در Workflow

جستجوی معنایی زمانی امکان‌پذیر است که هم اسناد و هم سوال کاربر به یک فضای برداری مشترک تبدیل شده باشند.

Node سیزدهم: Prepare Chunks

وظیفه Node

این Node تمام Chunkهای بازیابی‌شده را در قالب یک متن منظم کنار یکدیگر قرار می‌دهد.

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

ورودی

لیست Chunkهای دریافت‌شده از Pinecone

خروجی

یک متن واحد شامل تمام بخش‌های بازیابی‌شده.

نمونه ساختار خروجی:

  • CHUNK 0
  • CHUNK 1
  • CHUNK 2
  • CHUNK 3

این متن به عنوان Context برای مدل زبانی ارسال می‌شود.

تنظیمات مهم

در کد جاوااسکریپت این Node، تمام Chunkها به ترتیب شماره‌گذاری شده و به یک رشته متنی تبدیل می‌شوند.

نکات قابل تغییر

در صورت نیاز می‌توانید:

  • فاصله بین Chunkها را تغییر دهید.
  • شماره‌گذاری متفاوتی انجام دهید.
  • Metadata هر Chunk را نیز به متن اضافه کنید.
  • عنوان فایل را قبل از هر Chunk نمایش دهید.
دلیل استفاده در Workflow

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

جمع‌بندی قسمت اول بخش RAG

تا این مرحله Workflow موفق شده است سوال کاربر را دریافت کند، آن را به بردار معنایی تبدیل نماید، مرتبط‌ترین بخش‌های سند را از پایگاه داده Pinecone بازیابی کند و همه آن‌ها را در قالب یک متن ساخت‌یافته برای مدل زبانی آماده سازد. در قسمت بعدی، مدل OpenAI بر اساس همین اطلاعات پاسخ تولید خواهد کرد و سپس سیستم به‌صورت خودکار ارجاعات (Citation) مربوط به منابع استفاده‌شده را نیز به پاسخ نهایی اضافه می‌کند.

آموزش کامل Nodeهای بخش پرسش و پاسخ (RAG) – قسمت دوم

در قسمت قبل، مشاهده کردیم که Workflow چگونه سوال کاربر را دریافت می‌کند، آن را به بردار معنایی تبدیل می‌کند و سپس مرتبط‌ترین بخش‌های سند را از پایگاه داده Pinecone بازیابی می‌کند. اکنون نوبت به مهم‌ترین مرحله Workflow می‌رسد؛ یعنی تولید پاسخ توسط مدل هوش مصنوعی و نمایش ارجاعات (Citation) برای افزایش اعتبار پاسخ.

این بخش باعث می‌شود پاسخ نهایی تنها بر اساس اطلاعات موجود در اسناد تولید شود و مدل از ارائه اطلاعات حدسی یا نادرست خودداری کند.

Node چهاردهم: OpenAI Chat Model

وظیفه Node

این Node مدل زبانی OpenAI را در اختیار زنجیره پردازش قرار می‌دهد. برخلاف Node مربوط به Embedding که وظیفه تبدیل متن به بردار را بر عهده داشت، این Node مسئول تحلیل متن و تولید پاسخ نهایی است.

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

ورودی

این Node به صورت مستقیم داده‌ای از مسیر اصلی Workflow دریافت نمی‌کند، بلکه به عنوان AI Language Model به Node بعدی متصل است.

اطلاعاتی که مدل پردازش می‌کند عبارت‌اند از:

  • سوال کاربر
  • متن بازیابی‌شده از Pinecone
  • دستورالعمل (Prompt)
خروجی

یک مدل زبانی آماده استفاده که توسط Node زنجیره (LLM Chain) فراخوانی می‌شود.

تنظیمات مهم

در این Template از Credential مربوط به OpenAI استفاده شده است.

در صورت نیاز می‌توانید مدل دلخواه خود را انتخاب کنید؛ برای مثال:

  • GPT-4
  • GPT-4.1
  • GPT-4o
  • GPT-4o mini

انتخاب مدل به بودجه، سرعت موردنیاز و کیفیت پاسخ بستگی دارد.

نکات قابل تغییر

در پروژه‌های مختلف می‌توانید موارد زیر را تغییر دهید:

  • مدل هوش مصنوعی
  • مقدار Temperature
  • حداکثر تعداد Token
  • تنظیمات مربوط به هزینه و سرعت پاسخ
دلیل استفاده در Workflow

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

Node پانزدهم: Answer the query based on chunks (LLM Chain)

وظیفه Node

این Node مهم‌ترین بخش فرآیند پاسخگویی است. وظیفه آن ارسال Context بازیابی‌شده به مدل OpenAI و دریافت پاسخ نهایی است.

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

همچنین مدل موظف است شماره Chunkهایی را که برای تولید پاسخ استفاده کرده است نیز برگرداند.

ورودی

این Node سه ورودی اصلی دریافت می‌کند:

  • متن آماده‌شده توسط Node Prepare Chunks
  • سوال کاربر
  • مدل زبانی OpenAI
خروجی

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

  • پاسخ تولیدشده
  • شماره Chunkهای استفاده‌شده
تنظیمات مهم

Prompt این Node شامل چند دستور مهم است:

  • فقط از اطلاعات موجود در Context استفاده کن.
  • اگر پاسخ در متن وجود ندارد، چیزی حدس نزن.
  • شماره Chunkهای استفاده‌شده را نیز اعلام کن.

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

نکات قابل تغییر

می‌توانید Prompt را متناسب با پروژه خود تغییر دهید. برای مثال:

  • پاسخ رسمی یا دوستانه تولید شود.
  • پاسخ‌ها خلاصه یا مفصل باشند.
  • پاسخ به زبان خاصی ارائه شود.
  • خروجی به صورت Markdown یا HTML باشد.
  • پاسخ همراه با منابع یا بدون منابع تولید شود.
دلیل استفاده در Workflow

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

Node شانزدهم: Structured Output Parser

وظیفه Node

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

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

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

  • answer
  • citations
ورودی

پاسخ مدل زبانی

خروجی

یک شیء ساختاریافته که به‌راحتی توسط Nodeهای بعدی پردازش می‌شود.

تنظیمات مهم

Schema تعریف‌شده در این Template شامل موارد زیر است:

  • پاسخ متنی
  • آرایه‌ای از شماره Chunkهای استفاده‌شده

به همین دلیل Nodeهای بعدی بدون نیاز به پردازش اضافی می‌توانند ارجاعات را تولید کنند.

نکات قابل تغییر

می‌توانید فیلدهای بیشتری به Schema اضافه کنید؛ مانند:

  • عنوان پاسخ
  • میزان اطمینان مدل
  • خلاصه پاسخ
  • دسته‌بندی موضوع
  • کلمات کلیدی
  • پیشنهاد مطالعه بیشتر
دلیل استفاده در Workflow

وجود خروجی ساختاریافته باعث می‌شود توسعه و نگهداری Workflow بسیار ساده‌تر شود و احتمال خطا در مراحل بعدی کاهش یابد.

Node هفدهم: Compose Citations

وظیفه Node

پس از اینکه مدل شماره Chunkهای استفاده‌شده را برگرداند، این Node آن شماره‌ها را به ارجاعات واقعی تبدیل می‌کند.

برای هر شماره Chunk اطلاعاتی مانند نام فایل و شماره خطوط استخراج شده و به پاسخ اضافه می‌شود.

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

ورودی
  • پاسخ مدل
  • شماره Chunkها
  • اطلاعات Metadata موجود در Pinecone
خروجی

لیستی از ارجاعات قابل نمایش

نمونه اطلاعات هر Citation:

  • نام فایل
  • شماره خطوط متن
  • موقعیت Chunk
تنظیمات مهم

این Node از Metadata ذخیره‌شده هنگام ساخت پایگاه دانش استفاده می‌کند.

اگر Metadata کامل‌تر باشد، ارجاعات نیز دقیق‌تر خواهند بود.

نکات قابل تغییر

می‌توانید Citationها را به شکل‌های مختلف نمایش دهید:

  • فقط نام فایل
  • نام فایل و شماره صفحه
  • لینک فایل
  • شماره خطوط
  • شناسه سند
  • عنوان مقاله
دلیل استفاده در Workflow

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

Node هجدهم: Generate Response

وظیفه Node

این آخرین Node Workflow است.

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

اگر Citation وجود داشته باشد، به انتهای پاسخ اضافه می‌شود. در غیر این صورت تنها متن پاسخ نمایش داده خواهد شد.

ورودی
  • پاسخ مدل
  • Citationها
خروجی

یک متن نهایی آماده نمایش

این متن شامل دو بخش است:

  • پاسخ اصلی
  • منابع استفاده‌شده
تنظیمات مهم

در این Template، پاسخ و ارجاعات در یک فیلد با نام text ذخیره می‌شوند.

همین مقدار به رابط Chat یا هر سرویس دیگری که Workflow به آن متصل باشد ارسال خواهد شد.

نکات قابل تغییر

می‌توانید خروجی را به شکل‌های مختلف تولید کنید:

  • Markdown
  • HTML
  • JSON
  • پیام مناسب تلگرام
  • پیام مناسب Slack
  • ایمیل
  • ذخیره در Database
  • ثبت در Google Sheets
دلیل استفاده در Workflow

این Node آخرین مرحله پردازش است و خروجی Workflow را به قالبی مناسب برای نمایش یا ارسال به سرویس‌های دیگر تبدیل می‌کند.

جمع‌بندی بخش RAG

در پایان این مرحله، Workflow تمام عملیات موردنیاز برای پاسخگویی هوشمند را انجام داده است. ابتدا سوال کاربر دریافت می‌شود، سپس مفهوم آن به بردار معنایی تبدیل شده و نزدیک‌ترین بخش‌های سند از Pinecone بازیابی می‌شوند. مدل OpenAI با استفاده از همین اطلاعات پاسخ دقیق تولید می‌کند و Structured Output Parser آن را به ساختاری استاندارد تبدیل می‌کند. در نهایت، Citationها از Metadata اسناد استخراج شده و همراه با پاسخ نهایی نمایش داده می‌شوند.

این معماری باعث می‌شود پاسخ‌های تولیدشده علاوه بر دقت بالا، قابل استناد نیز باشند. به همین دلیل چنین Workflowهایی برای ساخت دستیارهای هوشمند سازمانی، سیستم‌های جستجوی اسناد، پایگاه‌های دانش و چت‌بات‌های مبتنی بر مستندات، گزینه‌ای بسیار مناسب محسوب می‌شوند.

نحوه شخصی‌سازی Workflow

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

تغییر Prompt مدل هوش مصنوعی

مهم‌ترین بخش قابل تغییر، Prompt موجود در Node Answer the query based on chunks است. با ویرایش این Prompt می‌توانید رفتار مدل را مطابق نیاز خود تنظیم کنید.

برای مثال می‌توانید:

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

تغییر مدل هوش مصنوعی

در Node مربوط به OpenAI Chat Model می‌توانید مدل مورد استفاده را تغییر دهید.

برای مثال:

  • GPT-4.1 برای پاسخ‌های دقیق‌تر
  • GPT-4o برای تعادل بین سرعت و کیفیت
  • GPT-4o mini برای کاهش هزینه پردازش

همچنین در صورت استفاده از Azure OpenAI یا سایر ارائه‌دهندگان سازگار با API، تنها کافی است Credential مربوطه را تغییر دهید.

استفاده از منابع اطلاعاتی دیگر

در این Template فایل از Google Drive دریافت می‌شود، اما می‌توانید آن را با منابع دیگری جایگزین کنید، مانند:

  • Dropbox
  • OneDrive
  • Amazon S3
  • FTP
  • WebDAV
  • پایگاه داده SQL
  • Google Sheets
  • Notion
  • Airtable
  • فایل‌های آپلودشده توسط کاربران

تغییر Trigger

در حال حاضر برای ورود اطلاعات از Manual Trigger و برای دریافت سوال از Chat Trigger استفاده شده است. بسته به نیاز پروژه می‌توانید Triggerهای دیگری را جایگزین کنید.

نمونه‌ها:

  • Schedule Trigger برای بروزرسانی روزانه اسناد
  • Webhook برای ارتباط با وب‌سایت
  • Telegram Trigger
  • Slack Trigger
  • Discord Trigger
  • فرم‌های آنلاین
  • API اختصاصی

تغییر اندازه Chunkها

Node مربوط به Recursive Character Text Splitter امکان تغییر اندازه قطعات متن را فراهم می‌کند.

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

تغییر تعداد نتایج بازیابی‌شده

در Node Set max chunks to send to model می‌توانید تعداد Chunkهای ارسالی به مدل را تغییر دهید.

افزایش این مقدار باعث می‌شود اطلاعات بیشتری در اختیار مدل قرار گیرد، اما در مقابل:

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

تغییر پایگاه داده برداری

اگرچه این Template از Pinecone استفاده می‌کند، اما n8n از پایگاه‌های داده برداری مختلفی پشتیبانی می‌کند.

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

  • Qdrant
  • Weaviate
  • Chroma
  • Supabase Vector
  • Elasticsearch Vector
  • PGVector

مزایای استفاده از این Workflow

استفاده از این Template مزایای متعددی دارد که مهم‌ترین آن‌ها عبارت‌اند از:

  • ساخت سریع یک سیستم کامل RAG بدون نیاز به برنامه‌نویسی پیچیده
  • افزایش دقت پاسخ‌های هوش مصنوعی با استفاده از اسناد اختصاصی
  • جلوگیری از تولید پاسخ‌های حدسی و نادرست
  • امکان نمایش منبع پاسخ و افزایش اعتماد کاربران
  • قابلیت توسعه برای پروژه‌های کوچک و سازمانی
  • کاهش زمان جستجو در اسناد حجیم
  • قابلیت اتصال به سرویس‌های مختلف بدون تغییر ساختار اصلی Workflow
  • استفاده مجدد از پایگاه دانش برای چندین پروژه یا چت‌بات مختلف
  • مدیریت آسان اسناد و بروزرسانی سریع اطلاعات

نکات مهم

برای دستیابی به بهترین عملکرد، رعایت نکات زیر توصیه می‌شود:

  1. فایل‌ها را قبل از ورود به سیستم بررسی و از خوانا بودن متن آن‌ها اطمینان حاصل کنید.
  2. از ایجاد چندباره Embedding برای یک فایل یکسان خودداری کنید تا داده‌های تکراری در Pinecone ایجاد نشود.
  3. اندازه Chunk را متناسب با نوع اسناد انتخاب کنید.
  4. از Metadata مناسب برای ذخیره اطلاعات اسناد استفاده کنید.
  5. مدل Embedding مورد استفاده در مرحله ذخیره‌سازی و جستجو باید یکسان باشد.
  6. در صورت تغییر ساختار اسناد، پایگاه داده برداری را بروزرسانی کنید.
  7. برای پروژه‌های بزرگ از Namespaceهای جداگانه استفاده کنید.
  8. کلیدهای API و Credentialها را در محیطی امن نگهداری کنید.
  9. به‌صورت دوره‌ای Indexهای Pinecone را بررسی و داده‌های قدیمی یا تکراری را حذف کنید.
  10. پیش از استفاده در محیط عملیاتی، Workflow را با سناریوهای مختلف آزمایش کنید.

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

خطا: فایل از Google Drive دانلود نمی‌شود
علت:
  • لینک فایل نادرست است.
  • دسترسی فایل محدود شده است.
  • Credential مربوط به Google Drive معتبر نیست.
راه‌حل:
  • لینک فایل را بررسی کنید.
  • دسترسی فایل را روی حالت مناسب قرار دهید.
  • Credential را مجدداً ایجاد یا بروزرسانی کنید.

خطا: اطلاعات در Pinecone ذخیره نمی‌شود

علت:
  • Index وجود ندارد.
  • ابعاد Index با مدل Embedding سازگار نیست.
  • API Key اشتباه است.
راه‌حل:
  • از ایجاد Index با ابعاد صحیح (1536) اطمینان حاصل کنید.
  • API Key را بررسی کنید.
  • نام Index انتخاب‌شده در Workflow را کنترل کنید.

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

علت:
  • Chunkها اندازه مناسبی ندارند.
  • تعداد Chunkهای بازیابی‌شده کم یا زیاد است.
  • اسناد به‌درستی وارد Pinecone نشده‌اند.
راه‌حل:
  • اندازه Chunk را تنظیم کنید.
  • مقدار Top K را تغییر دهید.
  • فرآیند ساخت Embedding را دوباره اجرا کنید.

خطا: Citation نمایش داده نمی‌شود

علت:
  • Metadata هنگام ذخیره اسناد ثبت نشده است.
  • Structured Output Parser خروجی صحیح تولید نکرده است.
راه‌حل:
  • Metadata را بررسی کنید.
  • Schema مربوط به Structured Output Parser را کنترل کنید.
  • از بازگرداندن شماره Chunkها توسط مدل اطمینان حاصل کنید.

خطا: هزینه استفاده از OpenAI بیش از حد انتظار است

علت:
  • تعداد زیادی Chunk به مدل ارسال می‌شود.
  • از مدل‌های گران‌قیمت استفاده شده است.
  • Workflow بیش از حد اجرا می‌شود.
راه‌حل:
  • تعداد Chunkها را کاهش دهید.
  • در صورت امکان از مدل‌های اقتصادی‌تر استفاده کنید.
  • اجرای Workflow را مدیریت و محدود کنید.

جمع‌بندی

RAG در n8n یکی از قدرتمندترین روش‌ها برای ساخت سیستم‌های پرسش و پاسخ مبتنی بر اسناد است. این Workflow با ترکیب Google Drive، OpenAI و Pinecone، فرآیندی کامل برای دریافت فایل، استخراج محتوا، ساخت Embedding، ذخیره در پایگاه داده برداری و پاسخگویی هوشمند به سوالات کاربران ارائه می‌دهد.

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

از سوی دیگر:

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

GIT

Categories: ,

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