پاسخ به سوالات اسناد با RAG، Supabase و OpenAI

پاسخ به سوالات اسناد با RAG، Supabase و OpenAI

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

دانلود workflow

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

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

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

پاسخ به سوالات از اسناد با RAG با استفاده از Supabase، OpenAI و Cohere Reranker

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

موارد استفاده کلیدی:

  • دریافت و نمایه‌سازی اسناد: بارگذاری و نمایه‌سازی اسناد خاص دامنه، غنی‌سازی آن‌ها با فراداده برای جستجوی معنایی مؤثر.
  • پرسش و پاسخ متنی: امکان پرسیدن سوالات توسط کاربران و دریافت پاسخ‌های مبتنی بر محتوای نمایه‌شده، با بازیابی مبتنی بر هوش مصنوعی.
  • ارتباط بهبود یافته: استفاده از رتبه‌بندی مجدد هوش مصنوعی برای اولویت‌بندی مرتبط‌ترین اطلاعات قبل از تولید پاسخ.
  • تعامل چت در زمان واقعی: تسهیل یک رابط مکالمه‌ای برای کاربران جهت پرس‌وجو از پایگاه دانش.

ساختار گردش کار:

گردش کار به طور منطقی به دو بخش اصلی تقسیم می‌شود:

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

2. عامل پرسش و پاسخ RAG: این بخش کوئری‌های ورودی کاربر را از یک رابط چت مدیریت می‌کند. از یک عامل هوش مصنوعی برای تفسیر کوئری استفاده می‌کند، بخش‌های مرتبط سند را از Supabase بازیابی می‌کند (با بهبود رتبه‌بندی مجدد Cohere)، و سپس از یک مدل چت OpenAI برای تدوین پاسخی جامع بر اساس زمینه بازیابی شده استفاده می‌کند.

---

۱. دریافت و برداری‌سازی اسناد

این بخش بر آماده‌سازی اسناد شما برای بازیابی تمرکز دارد. یک PDF را دانلود می‌کند، متن آن را استخراج می‌کند، آن را به بخش‌های مبتنی بر قاعده تقسیم می‌کند، فراداده را اضافه می‌کند، امبدینگ‌ها را تولید می‌کند و همه چیز را در Supabase ذخیره می‌کند.

گره‌های (Nodes) درگیر:

  • Manual Trigger: فرآیند دریافت سند را آغاز می‌کند.
  • Download File (Google Drive): سند PDF مشخص شده را دریافت می‌کند.
  • Extract from File: محتوای متنی خام را از PDF استخراج می‌کند.
  • Code: متن استخراج شده را به قواعد مجزا تقسیم می‌کند و شماره قواعد و عناوین را به عنوان فراداده استخراج می‌کند.
  • Default Data Loader (LangChain): داده‌های قاعده استخراج شده را با فراداده در قالب سند قالب‌بندی می‌کند.
  • Embeddings OpenAI1: امبدینگ‌های برداری را برای هر بخش سند با استفاده از OpenAI تولید می‌کند.
  • Upload to Supabase: امبدینگ‌ها و فراداده را در فروشگاه برداری Supabase درج می‌کند.
  • Sticky Note: مستندات و زمینه را برای این بخش فراهم می‌کند.

جزئیات گره‌ها:

نام گره (Node Name)نوع گره (Node Type)نقشگره ورودی (Input Node(s))گره خروجی (Output Node(s))محتوای یادداشت چسبان (Sticky Note Content)
Manual TriggerTriggerفرآیند دریافت سند را شروع می‌کند.NoneDownload File
Download FileGoogle Drive Fileسند "Rules\_of\_Golf\_Simplified.pdf" را دانلود می‌کند.Manual TriggerExtract from File
Extract from FilePDF Extractorمحتوای متنی را از PDF دانلود شده استخراج می‌کند.Download FileCode
CodeJavaScript Codeمتن را به قواعد تقسیم می‌کند، فراداده را استخراج می‌کند.Extract from FileDefault Data Loader, Upload to Supabase# Vectorize Document w/ Metadata (this code node is set up for the golf rules PDF specifically)
Default Data LoaderDocument Loader (LangChain)داده‌ها را با فراداده در قالب سند آماده می‌کند.CodeUpload to Supabase
Embeddings OpenAI1Embeddings (OpenAI)امبدینگ‌های برداری را برای بخش‌های سند تولید می‌کند.Default Data LoaderUpload to Supabase
Upload to SupabaseVector Store (Supabase)امبدینگ‌ها و فراداده را در Supabase درج می‌کند.Code, Embeddings OpenAI1
Sticky NoteSticky Noteزمینه را برای فرآیند برداری‌سازی فراهم می‌کند.

---

۲. عامل پرسش و پاسخ RAG

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

گره‌های (Nodes) درگیر:

  • When chat message received (محرک چت): نقطه ورود برای سوالات کاربر.
  • Metadata Agent (عامل هوش مصنوعی LangChain): اطلاعات خاصی مانند شماره قوانین را از پرس‌وجوی کاربر استخراج می‌کند تا به بازیابی هدفمند کمک کند.
  • RAG Agent / RAG Agent 2 (عامل هوش مصنوعی LangChain): عامل اصلی مسئول پردازش پرس‌وجو، بازیابی اسناد و تولید پاسخ نهایی.
  • Supabase Vector Store / Supabase Vector Store1: با پایگاه داده برداری Supabase برای انجام جستجوهای شباهت ارتباط برقرار می‌کند.
  • Reranker Cohere / Reranker Cohere1: نتایج جستجوی اولیه را از Supabase برای بهبود ارتباط، دوباره رتبه‌بندی می‌کند.
  • Embeddings OpenAI / Embeddings OpenAI2: امبدینگ‌هایی را برای پرس‌وجوی کاربر ایجاد می‌کند تا جستجوی برداری را تسهیل کند.
  • GPT 4.1-mini / GPT 4.1-mini1 (مدل چت OpenAI از طریق OpenRouter): مدل زبانی مورد استفاده برای ترکیب پاسخ نهایی.
  • Sticky Notes: توضیحات مربوط به اجزای مختلف خط لوله RAG را ارائه می‌دهد.

جزئیات گره (Node Details):

نام گره (Node Name)نوع گره (Node Type)نقش (Role)گره ورودی (Input Node(s))گره خروجی (Output Node(s))محتوای یادداشت چسبان (Sticky Note Content)
When chat message receivedChat triggerسوالات کاربر را از طریق رابط چت دریافت می‌کند.NoneRAG Agent# RAG Agent
Metadata AgentAI Agent (LangChain)شماره قوانین یا سایر فراداده‌ها را از پرس‌وجوی کاربر استخراج می‌کند.GPT 4.1-mini1RAG Agent 2# Metadata Agent
RAG Agent / RAG Agent 2AI Agent (LangChain)بازیابی و تولید را هماهنگ می‌کند؛ به سوال کاربر پاسخ می‌دهد.When chat message received, Supabase Vector Storeبلوک RAG Agent نقش و تنظیمات عامل هوش مصنوعی را نشان می‌دهد.
Supabase Vector Store / 1Vector Store (Supabase)اسناد مرتبط را بر اساس امبدینگ‌های پرس‌وجو از Supabase بازیابی می‌کند.Embeddings OpenAI / 2, Reranker Cohere / 1RAG Agent / 2Vector Store w/ Reranker بهبودهای بازیابی را توضیح می‌دهد.
Reranker Cohere / 1Reranker (Cohere)اسناد بازیابی شده از Supabase را برای ارتباط بهتر دوباره رتبه‌بندی می‌کند.Supabase Vector Store / 1Supabase Vector Store / 1
Embeddings OpenAI / 2Embeddings (OpenAI)امبدینگ‌های برداری را برای پرس‌وجوی کاربر ایجاد می‌کند.When chat message receivedSupabase Vector Store / 1
GPT 4.1-mini / 1Chat Model (OpenAI/OpenRouter)پاسخ نهایی را بر اساس پرس‌وجو و زمینه بازیابی شده تولید می‌کند.RAG Agent / 2
Sticky NoteSticky Noteهدف عامل فراداده را مستند می‌کند.

---

۳. جدول خلاصه

نام نود (Node Name)نوع نود (Node Type)نقش عملکردی (Functional Role)نود(های) ورودی (Input Node(s))نود(های) خروجی (Output Node(s))یادداشت چسبان (Sticky Note)
Manual TriggerTriggerشروع ورود اسنادNoneDownload File
Download FileGoogle Drive Fileدانلود فایل قوانین PDFManual TriggerExtract from File
Extract from FilePDF Extractorاستخراج متن از PDFDownload FileCode
CodeJavaScript Codeتقسیم متن به قوانین همراه با فرادادهExtract from FileDefault Data Loader, Upload to Supabase# Vectorize Document w/ Metadata (this code node is set up for the golf rules PDF specifically)
Default Data LoaderDocument Loader (LangChain)آماده‌سازی اسناد با فرادادهCodeUpload to Supabase
Embeddings OpenAI1Embeddings (OpenAI)ایجاد امبدینگ برای اسنادDefault Data LoaderUpload to Supabase
Upload to SupabaseVector Store (Supabase)درج امبدینگ‌ها در پایگاه داده برداریCode, Embeddings OpenAI1
When chat message receivedChat triggerنقطه ورود برای سوالات کاربرNoneRAG Agent# RAG Agent
Metadata AgentAI Agent (LangChain)استخراج شماره قانون از سوالGPT 4.1-mini1RAG Agent 2# Metadata Agent
RAG Agent / RAG Agent 2AI Agent (LangChain)پردازش پرس و جو، بازیابی اسناد، تولید پاسخWhen chat message received, Supabase Vector StoreRAG Agent block notes the AI agent role and setup.
Supabase Vector Store / 1Vector Store (Supabase)بازیابی اسناد مرتبط از SupabaseEmbeddings OpenAI / 2, Reranker Cohere / 1RAG Agent / 2Vector Store w/ Reranker explains retrieval enhancements.
Reranker Cohere / 1Reranker (Cohere)رتبه‌بندی مجدد اسناد بازیابی شده بر اساس ارتباطSupabase Vector Store / 1Supabase Vector Store / 1
Embeddings OpenAI / 2Embeddings (OpenAI)ایجاد امبدینگ برای پرس و جوی کاربرWhen chat message receivedSupabase Vector Store / 1
GPT 4.1-mini / 1Chat Model (OpenAI/OpenRouter)تولید پاسخ نهایی بر اساس زمینهRAG Agent / 2
Sticky NoteSticky Noteمستندسازی هدف عامل فراداده (Metadata Agent).

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

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

RAG چیست و چگونه کار می‌کند؟

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

نقش Supabase در این گردش کار چیست؟

Supabase به عنوان پایگاه داده برداری عمل می‌کند. امبدینگ‌های (نمایش‌های عددی) بخش‌های مختلف اسناد در آن ذخیره می‌شوند تا بتوان به سرعت اطلاعات مرتبط با پرسش کاربر را بازیابی کرد.

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

OpenAI برای تولید امبدینگ‌های متنی و همچنین برای تولید پاسخ نهایی بر اساس اطلاعات بازیابی شده استفاده می‌شود. Cohere برای رتبه‌بندی مجدد نتایج بازیابی شده به کار می‌رود تا اطمینان حاصل شود که مرتبط‌ترین اطلاعات در ابتدا به مدل زبان ارائه می‌شوند و پاسخ دقیق‌تری تولید می‌شود.

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

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

workflowهای مرتبط

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