
پاسخ به سوالات مستندات با n8n، BigQuery و OpenAI
11 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۳۰
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 8220 · منبع: کاتالوگ Axeto
پاسخ به سوالات مستندات با استفاده از BigQuery RAG و OpenAI
این گردش کار نحوه ساخت یک سیستم تولید افزوده بازیابی (Retrieval-Augmented Generation - RAG) برای پاسخ به سوالات مربوط به مستندات n8n را نشان میدهد. این سیستم از BigQuery به عنوان پایگاه داده برداری و مدلهای OpenAI برای جاسازی سوالات و تولید پاسخ استفاده میکند. این سیستم به کاربران اجازه میدهد تا سوالات زبان طبیعی بپرسند، قطعات مرتبط مستندات را از BigQuery بازیابی کند و سپس از یک عامل هوش مصنوعی برای ترکیب این قطعات در یک پاسخ منسجم با فرمت Markdown استفاده کند.
شما میتوانید این گردش کار و موارد دیگر را در کاتالوگ Axeto بیابید.
ساختار گردش کار
گردش کار به دو بخش اصلی تقسیم میشود:
1. گردش کار اصلی: دریافت ورودی و پردازش عامل هوش مصنوعی: این بخش کوئریهای ورودی کاربر را مدیریت میکند، آنها را به یک عامل هوش مصنوعی هدایت میکند و فرآیند RAG را هماهنگ میکند.
2. گردش کار فرعی: بازیابی سند (BigQuery RAG OpenAI): این یک ابزار تخصصی است که توسط عامل هوش مصنوعی برای انجام بازیابی واقعی اسناد مرتبط از BigQuery فراخوانی میشود.
---
تجزیه و تحلیل گرههای دقیق
۱. گردش کار اصلی: دریافت ورودی و پردازش عامل هوش مصنوعی
این بخش از گردش کار، پیامهای چت را دریافت میکند، آنها را با استفاده از یک عامل هوش مصنوعی پردازش میکند و پاسخهایی با فرمت Markdown تولید میکند.
- گرهها (Nodes):
* When chat message received (LangChain Chat Trigger)
* AI Agent (LangChain Agent)
* OpenAI Chat Model (LangChain LM Chat OpenAI)
* Simple Memory (LangChain Memory Buffer Window)
* BigQuery RAG OpenAI (LangChain Tool Workflow)
* Sticky Note (برای مستندات)
- جزئیات گرهها:
* When chat message received
* نوع: n8n-nodes-base.chatTrigger (یا گره مشابه LangChain Trigger)
* هدف: به عنوان نقطه ورود عمل میکند و از طریق یک Webhook توسط پیامهای چت دریافتی فعال میشود.
* پیکربندی: نیاز به شناسه Webhook دارد.
* اتصالات: خروجی به گره AI Agent دارد.
* ملاحظات: از اتصال Webhook و فرمتبندی صحیح پیام اطمینان حاصل کنید.
* AI Agent
* نوع: @n8n/n8n-nodes-langchain.agent
* هدف: هسته منطق پرسش و پاسخ است. ورودی کاربر را تفسیر میکند، از ابزار BigQuery RAG OpenAI برای بازیابی اسناد استفاده میکند و پاسخ نهایی را در فرمت Markdown تولید میکند.
* پیکربندی: یک prompt سیستمی، عامل را راهنمایی میکند تا از ابزار vector store استفاده کند و پاسخها را با عناصر Markdown (بخشها، لیستها، بلوکهای کد، تصاویر) قالببندی کند.
* اتصالات: ورودی را از When chat message received دریافت میکند، از OpenAI Chat Model به عنوان مدل زبان خود استفاده میکند، از Simple Memory برای تاریخچه مکالمه بهره میبرد و BigQuery RAG OpenAI را به عنوان یک ابزار فراخوانی میکند.
* ملاحظات: خطاهای احتمالی در اجرای ابزار، پاسخهای مدل زبان یا قالببندی Markdown.
* OpenAI Chat Model
* نوع: @n8n/n8n-nodes-langchain.lmChatOpenAi
* هدف: قابلیتهای مدل زبان را فراهم میکند، به طور خاص از gpt-4.1-mini برای مقرون به صرفه بودن استفاده میکند.
* پیکربندی: مدل روی gpt-4.1-mini تنظیم شده است. نیاز به اعتبارنامه معتبر OpenAI API دارد.
* اتصالات: توسط AI Agent به عنوان مدل زبان آن استفاده میشود.
* ملاحظات: محدودیتهای نرخ OpenAI API، مشکلات احراز هویت یا در دسترس بودن مدل.
* Simple Memory
* نوع: @n8n/n8n-nodes-langchain.memoryBufferWindow
* هدف: زمینه مکالمه را حفظ میکند و به عامل هوش مصنوعی اجازه میدهد به نوبتهای قبلی مراجعه کند.
* پیکربندی: تنظیمات پیشفرض buffer window.
* اتصالات: برای مدیریت زمینه به AI Agent متصل است.
* ملاحظات: برای محیطهای تولیدی، راهحلهای حافظه قویتری مانند Postgres Chat Memory را برای جلوگیری از از دست دادن زمینه در مکالمات طولانی در نظر بگیرید.
* BigQuery RAG OpenAI
* نوع: @n8n/n8n-nodes-langchain.toolWorkflow
* هدف: این گره به عنوان یک ابزار قابل فراخوانی عمل میکند و یک گردش کار فرعی را برای بازیابی اسناد مرتبط از BigQuery بر اساس سوال کاربر فراخوانی میکند.
* پیکربندی: پارامتر ورودی vector_search_question را میگیرد که همان پرس و جوی کاربر است.
* اتصالات: توسط AI Agent به عنوان یک ابزار فراخوانی میشود.
* ملاحظات: خطا در گردش کار فرعی یا عدم تطابق در پارامترهای ورودی.
۲. گردش کار فرعی: بازیابی اسناد (BigQuery RAG OpenAI)
این گردش کار فرعی مسئول تبدیل سوال کاربر به یک embedding، پرس و جو از vector store در BigQuery و بازگرداندن مرتبطترین قطعات مستندات است.
- گرهها (Nodes):
* When Executed by Another Workflow (Execute Workflow Trigger)
* Set field - question (Set Node)
* OpenAI - Create Embedding (HTTP Request)
* Set Field - Embedding (Set Node)
* BigQuery - Vector Retriever - n8n docs (HTTP Request)
* Documents retrieved (Set Node)
* Sticky Note (برای مستندات)
- جزئیات گرهها:
* When Executed by Another Workflow
* نوع: n8n-nodes-base.executeWorkflowTrigger
* هدف: نقطه ورود این گردش کار فرعی است که هنگام فراخوانی آن توسط AI Agent به عنوان یک ابزار فعال میشود.
* پیکربندی: انتظار پارامتر ورودی به نام vector_search_question را دارد.
* اتصالات: خروجی به گره Set field - question دارد.
* ملاحظات: اطمینان حاصل کنید که پارامتر ورودی به درستی منتقل و قالببندی شده است.
* Set field - question
* نوع: n8n-nodes-base.set
* هدف: پارامتر ورودی vector_search_question را به فیلدی به نام question برای دسترسی آسانتر در گرههای بعدی اختصاص میدهد.
* پیکربندی: question را به {{$json.vector_search_question}} تنظیم میکند.
* اتصالات: خروجی به گره OpenAI - Create Embedding دارد.
* ملاحظات: مواردی را که ممکن است سوال ورودی خالی یا تعریف نشده باشد، مدیریت میکند.
* OpenAI - Create Embedding
* نوع: n8n-nodes-base.httpRequest
* هدف: API OpenAI را برای تولید یک embedding برداری برای سوال کاربر فراخوانی میکند.
* پیکربندی:
* متد (Method): POST
* URL: https://api.openai.com/v1/embeddings
* بدنه (Body): شامل سوال و مشخص کردن مدل embedding (مثلاً text-embedding-3-large).
* احراز هویت (Authentication): نیاز به اعتبارنامه OpenAI API دارد.
* اتصالات: دادههای embedding تولید شده را به گره Set Field - Embedding خروجی میدهد.
* ملاحظات: خطاهای احتمالی API، شکست احراز هویت، محدودیتهای نرخ یا مشکلات مربوط به متن ورودی.
* Set Field - Embedding
* نوع: n8n-nodes-base.set
* هدف: بردار embedding را از پاسخ API OpenAI استخراج کرده و در فیلدی به نام embedding ذخیره میکند.
* پیکربندی: embedding را به {{$json.data[0].embedding}} تنظیم میکند.
* اتصالات: خروجی به گره BigQuery - Vector Retriever - n8n docs دارد.
* ملاحظات: دادههای embedding گمشده یا بدشکل در پاسخ API را مدیریت میکند.
* BigQuery - Vector Retriever - n8n docs
* نوع: n8n-nodes-base.httpRequest
* هدف: یک کوئری SQL را در برابر BigQuery اجرا میکند تا جستجوی شباهت برداری را انجام دهد. ۱۰ سند مرتبطتر را بر اساس embedding ارائه شده بازیابی میکند.
* پیکربندی:
* متد (Method): POST
* URL: نقطه پایانی کوئری BigQuery (مثلاً https://bigquery.googleapis.com/bigquery/v2/projects/<YOUR-PROJECT-ID>/queries). به یاد داشته باشید که <YOUR-PROJECT-ID> را با شناسه پروژه واقعی Google Cloud خود جایگزین کنید.
* بدنه (Body): شامل یک کوئری SQL با استفاده از تابع VECTOR_SEARCH است (مثلاً SELECT document FROM \n8n-docs-rag.n8n_docs.n8n_docs_embeddings\ WHERE VECTOR_SEARCH(embedding_column, @embedding_vector, 10, options => 'distance_type=COSINE,brute_force=true')).
* احراز هویت (Authentication): نیاز به اعتبارنامه OAuth2 Google BigQuery دارد.
* اتصالات: نتایج کوئری را به گره Documents retrieved خروجی میدهد.
* ملاحظات: خطاهای احراز هویت، محدودیتهای سهمیه، سینتکس نامعتبر SQL، شناسه پروژه نادرست، قطع شدن شبکه یا مشکلات مربوط به جدول/ستونهای BigQuery.
* Documents retrieved
* نوع: n8n-nodes-base.set
* هدف: ردیفهای بازگردانده شده توسط BigQuery را به یک رشته JSON تبدیل کرده و در فیلد documents ذخیره میکند. این داده قالببندی شده سپس به AI Agent در گردش کار اصلی بازگردانده میشود.
* پیکربندی: documents را به {{$json.rows.toJsonString()}} تنظیم میکند.
* اتصالات: این خروجی نهایی گردش کار فرعی است و دادهها را به گره BigQuery RAG OpenAI در گردش کار اصلی بازمیگرداند.
* ملاحظات: نتایج خالی کوئری یا خطاهای احتمالی تبدیل JSON را مدیریت میکند.
---
جدول خلاصه
| نام نود (Node Name) | نوع نود (Node Type) | نقش عملکردی (Functional Role) | نود(های) ورودی (Input Node(s)) | نود(های) خروجی (Output Node(s)) | یادداشت چسبان (Sticky Note) |
|---|---|---|---|---|---|
When chat message received | LangChain Chat Trigger | نقطه ورود برای پیامهای چت دریافتی | — | AI Agent | با دریافت پیام چت، گردش کار را فعال میکند. |
AI Agent | LangChain Agent | ورودی را پردازش میکند، پایگاه داده برداری را جستجو میکند، پاسخ Markdown تولید میکند | When chat message received | OpenAI Chat Model, Simple Memory, BigQuery RAG OpenAI | RAG را هماهنگ میکند؛ از ابزار برای بازیابی استفاده میکند و خروجی را در Markdown قالببندی میکند. |
OpenAI Chat Model | LangChain LM Chat OpenAI | مدل gpt-4.1-mini را برای تولید متن فراهم میکند | AI Agent | AI Agent (به عنوان مدل زبان) | از gpt-4.1-mini برای کارایی هزینه استفاده میکند. کلید API OpenAI مورد نیاز است. |
Simple Memory | LangChain Memory Buffer Window | زمینه مکالمه را حفظ میکند | AI Agent | AI Agent (به عنوان حافظه) | تاریخچه مکالمه را ذخیره میکند. برای محیط عملیاتی، جایگزینها را در نظر بگیرید. |
BigQuery RAG OpenAI | LangChain Tool Workflow | فراخوانی گردش کار فرعی برای بازیابی سند | AI Agent | AI Agent (به عنوان ابزار) | گردش کار بازیابی سند را فراخوانی میکند و سوال کاربر را ارسال میکند. |
When Executed by Another Workflow | Execute Workflow Trigger | نقطه ورود گردش کار فرعی | — | Set field - question | زمانی که AI Agent این گردش کار فرعی را فراخوانی میکند، فعال میشود. |
Set field - question | Set Node | پارامتر ورودی را به فیلد question اختصاص میدهد | When Executed by Another Workflow | OpenAI - Create Embedding | سوال را برای تولید امبدینگ آماده میکند. |
OpenAI - Create Embedding | HTTP Request | بردار امبدینگ را برای سوال تولید میکند | Set field - question | Set Field - Embedding | API OpenAI را برای امبدینگ فراخوانی میکند. از text-embedding-3-large استفاده میکند. |
Set Field - Embedding | Set Node | بردار امبدینگ را از پاسخ API استخراج میکند | OpenAI - Create Embedding | BigQuery - Vector Retriever - n8n docs | آرایه امبدینگ را برای کوئری BigQuery جدا میکند. |
BigQuery - Vector Retriever - n8n docs | HTTP Request | جدول برداری BigQuery را برای اسناد مرتبط کوئری میکند | Set Field - Embedding | Documents retrieved | جستجوی شباهت برداری را در BigQuery انجام میدهد. <YOUR-PROJECT-ID> را جایگزین کنید. اعتبارنامههای BigQuery مورد نیاز است. |
Documents retrieved | Set Node | نتایج BigQuery را به عنوان رشته JSON برای AI Agent قالببندی میکند | BigQuery - Vector Retriever - n8n docs | BigQuery RAG OpenAI (خروجی گردش کار فرعی) | اسناد بازیابی شده را بستهبندی میکند تا به AI Agent گردش کار اصلی بازگردانده شود. |
Sticky Note (multiple) | Sticky Note | مستندات و توضیحات را ارائه میدهد | — | — | اطلاعات زمینهای، دستورالعملها و پیوندها را برای نودهای مختلف و گردش کار کلی ارائه میدهد. |
---
بازسازی گردش کار
برای بازسازی این گردش کار:
1. راهاندازی گردش کار اصلی:
* یک گره LangChain Chat Trigger (مثلاً n8n-nodes-base.chatTrigger) اضافه کنید. آن را با یک شناسه وبهوک منحصربهفرد پیکربندی کنید.
* یک گره LangChain Agent (مثلاً @n8n/n8n-nodes-langchain.agent) اضافه کنید. یک اعلان سیستمی تعریف کنید که به آن دستور استفاده از ابزار فروشگاه برداری (vector store) و قالببندی پاسخها در Markdown را بدهد.
* یک گره LangChain LM Chat OpenAI (مثلاً @n8n/n8n-nodes-langchain.lmChatOpenAi) اضافه کنید. مدل را روی gpt-4.1-mini تنظیم کرده و کلید API OpenAI خود را وارد کنید.
* یک گره LangChain Memory Buffer Window (مثلاً @n8n/n8n-nodes-langchain.memoryBufferWindow) اضافه کنید.
* یک گره LangChain Tool Workflow (مثلاً @n8n/n8n-nodes-langchain.toolWorkflow) اضافه کرده و نام آن را BigQuery RAG OpenAI بگذارید. این گره زیرگردش کار را فراخوانی میکند.
* این گرهها را همانطور که در بخش "گردش کار اصلی" توضیح داده شده است، به هم متصل کنید.
2. راهاندازی زیرگردش کار (بازیابی اسناد):
* یک زیرگردش کار جدید ایجاد کنید.
* یک گره Execute Workflow Trigger (مثلاً n8n-nodes-base.executeWorkflowTrigger) اضافه کنید. آن را طوری پیکربندی کنید که پارامتر ورودی vector_search_question را بپذیرد.
* یک گره Set برای نگاشت پارامتر ورودی به فیلد question اضافه کنید.
* یک گره HTTP Request برای فراخوانی API Embeddings OpenAI (https://api.openai.com/v1/embeddings) اضافه کنید. بدنه درخواست و احراز هویت را پیکربندی کنید.
* یک گره Set دیگر برای استخراج بردار embedding از پاسخ OpenAI اضافه کنید.
* یک گره نهایی HTTP Request برای پرسوجو از جدول برداری BigQuery خود اضافه کنید. نقطه پایانی API BigQuery، پرسوجوی SQL (با استفاده از VECTOR_SEARCH) و احراز هویت را پیکربندی کنید. اطمینان حاصل کنید که <YOUR-PROJECT-ID> را در URL و احتمالاً نام جدول/ستونها را در پرسوجوی SQL جایگزین کنید.
* یک گره نهایی Set برای قالببندی نتایج BigQuery به یک رشته JSON به نام documents اضافه کنید.
* این گرهها را به صورت متوالی در داخل زیرگردش کار به هم متصل کنید.
3. پیکربندی اعتبارنامهها: اطمینان حاصل کنید که اعتبارنامههای API لازم برای OpenAI و Google BigQuery را در n8n تنظیم کردهاید.
4. استقرار و آزمایش: گردش کار را فعال کرده و با ارسال پیامهای چت به وبهوک پیکربندی شده، آن را آزمایش کنید.
Nodeهای استفادهشده
سوالات متداول
RAG چیست و چگونه کار میکند؟▾
RAG (Retrieval-Augmented Generation) سیستمی است که با بازیابی اطلاعات مرتبط از یک پایگاه داده خارجی (مانند BigQuery در این مورد) و سپس استفاده از یک مدل زبان بزرگ (مانند OpenAI) برای تولید پاسخ بر اساس آن اطلاعات، کیفیت و دقت پاسخهای هوش مصنوعی را بهبود میبخشد.
چرا از BigQuery به عنوان پایگاه داده برداری استفاده میشود؟▾
BigQuery به دلیل قابلیتهای مقیاسپذیری، مدیریت دادههای حجیم و ادغام با سایر ابزارهای Google Cloud، میتواند به عنوان یک پایگاه داده کارآمد برای ذخیره و بازیابی بردارهای جاسازی شده (embeddings) مورد استفاده قرار گیرد، که برای سیستمهای RAG ضروری است.
چه مدلهایی از OpenAI در این گردش کار استفاده میشود؟▾
این گردش کار از مدلهای OpenAI برای جاسازی سوالات و تولید پاسخ استفاده میکند. در مثال ذکر شده، مدل `gpt-4.1-mini` به دلیل مقرون به صرفه بودن پیشنهاد شده است، اما میتوان از مدلهای دیگر OpenAI نیز بسته به نیاز استفاده کرد.
چگونه میتوان این گردش کار را برای مستندات خود سفارشی کرد؟▾
برای سفارشیسازی، باید دادههای مستندات خود را پردازش کرده و به بردارهای جاسازی شده تبدیل کنید، سپس آنها را در BigQuery بارگذاری نمایید. همچنین، prompt سیستم در گره 'AI Agent' را برای هدایت بهتر عامل هوش مصنوعی تنظیم کنید.
workflowهای مرتبط
- تحلیل خودکار مناقصهها با n8n، LlamaParse و GeminiDocument Extraction
- دستهبندی خودکار ایمیل جیمیل با GPT-4o و هشدار SlackAI Summarization
- اتوماسیون زیرنویسگذاری ویدیو با n8n، Google Drive و SubmagicContent Creation
- تحلیل خودکار Google Analytics با هوش مصنوعی Gemini و اعلانه…Market Research
- اتوماسیون ثبت رزروهای Calendly در Google Sheets با n8nCRM
- اتوماسیون پیامهای تشکر و کوپن واتساپ برای مشتریان ShopifyContent Creation
