مقدمه
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
- وارد داشبورد n8n شوید.
- روی Import from File کلیک کنید.
- فایل JSON را انتخاب کنید.
- Workflow ایجاد خواهد شد.
- 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 از انواع مختلف فایل پشتیبانی میکند؛ مانند:
- 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
- استفاده مجدد از پایگاه دانش برای چندین پروژه یا چتبات مختلف
- مدیریت آسان اسناد و بروزرسانی سریع اطلاعات
نکات مهم
برای دستیابی به بهترین عملکرد، رعایت نکات زیر توصیه میشود:
- فایلها را قبل از ورود به سیستم بررسی و از خوانا بودن متن آنها اطمینان حاصل کنید.
- از ایجاد چندباره Embedding برای یک فایل یکسان خودداری کنید تا دادههای تکراری در Pinecone ایجاد نشود.
- اندازه Chunk را متناسب با نوع اسناد انتخاب کنید.
- از Metadata مناسب برای ذخیره اطلاعات اسناد استفاده کنید.
- مدل Embedding مورد استفاده در مرحله ذخیرهسازی و جستجو باید یکسان باشد.
- در صورت تغییر ساختار اسناد، پایگاه داده برداری را بروزرسانی کنید.
- برای پروژههای بزرگ از Namespaceهای جداگانه استفاده کنید.
- کلیدهای API و Credentialها را در محیطی امن نگهداری کنید.
- بهصورت دورهای Indexهای Pinecone را بررسی و دادههای قدیمی یا تکراری را حذف کنید.
- پیش از استفاده در محیط عملیاتی، 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 نقطه شروع بسیار مناسبی خواهد بود و با شخصیسازی آن میتوانید نیازهای پروژههای کوچک و بزرگ را بهخوبی پوشش دهید.


