
ساخت چتبات هوش مصنوعی با n8n، OpenAI و Google Sheets
14 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 4071 · منبع: کاتالوگ Axeto
چتبات پرسش و پاسخ مبتنی بر هوش مصنوعی با استفاده از OpenAI، Google Sheets، Glide و Supabase
این گردش کار نحوه ساخت یک چتبات مبتنی بر تولید افزوده بازیابی (RAG) با قدرت هوش مصنوعی را نشان میدهد. این سیستم از OpenAI برای درک و تولید زبان، Google Sheets برای مدیریت دادهها، Glide برای یک رابط کاربری کاربرپسند و n8n برای اتوماسیون گردش کار استفاده میکند. این سیستم برای ارائه پاسخهای متنی با بازیابی اطلاعات مرتبط از پایگاه دانش طراحی شده است.
این گردش کار و موارد دیگر را در کاتالوگ Axeto کاوش کنید: https://axeto.ai/n8n
---
۱. نمای کلی گردش کار
این گردش کار یک سیستم پیشرفته چتبات مبتنی بر تولید افزوده بازیابی (RAG) با قدرت هوش مصنوعی را پیادهسازی میکند. این سیستم چندین سرویس از جمله OpenAI (GPT-4 و امبدینگها)، Google Sheets، رابط کاربری Glide، Supabase (اختیاری) و اتوماسیون n8n را برای ارائه پاسخ به سوالات متنی غنیشده با بازیابی دادههای مرتبط و مدیریت اختیاری رسانه، یکپارچه میکند.
گردش کار به بلوکهای منطقی زیر ساختاربندی شده است:
- ۱.۱ دریافت و ردیابی ورودی: سوالات کاربر را از رابط کاربری Glide از طریق وبهوک دریافت میکند، درخواستها را ثبت میکند و تاییدیه ارسال مینماید.
- ۱.۲ آمادهسازی دادهها و مدیریت فروشگاه برداری: اسناد را از Google Drive بارگیری میکند، آنها را به امبدینگ پردازش میکند و برای بازیابی کارآمد در یک فروشگاه برداری ذخیره مینماید.
- ۱.۳ امبدینگ و جستجوی برداری: کوئریهای ورودی کاربر را به امبدینگ تبدیل کرده و مرتبطترین اسناد را از فروشگاه برداری بازیابی میکند.
- ۱.۴ پرامپتدهی RAG و تولید پاسخ: از نودهای OpenAI و LangChain برای تولید پاسخهای آگاه از زمینه بر اساس اسناد بازیابیشده استفاده میکند.
- ۱.۵ مدیریت تقویم و قرار ملاقات (اختیاری): برای مدیریت کوئریهای مربوط به قرار ملاقات، با Google Calendar یکپارچه میشود.
- ۱.۶ تحویل پاسخ: پاسخهای تولید شده را به رابط کاربری Glide یا کلاینت درخواستکننده بازمیگرداند.
---
۲. تشریح گره به گره
---
۲.۱ دریافت و ردیابی ورودی
این بخش به دریافت اولیه پرسوجوهای کاربر از رابط کاربری Glide، ثبت درخواستها و ارائه یک پاسخ تأیید میپردازد.
-
n8n_order(Webhook)
* نقش: به عنوان نقطه ورود برای پرسشهای کاربر که از طریق برنامه Glide ارسال میشوند، عمل میکند.
* پیکربندی: برای گوش دادن به درخواستهای HTTP POST ورودی پیکربندی شده است. URL وبهوک باید در برنامه Glide شما ادغام شود.
* ورودی: دادههای پرسوجوی کاربر را از رابط کاربری Glide دریافت میکند.
* خروجی: دادههای دریافتی را به گره API URL Tracking منتقل میکند.
* نقاط شکست: مشکلات اتصال شبکه، درخواستهای ورودی با فرمت نادرست، یا فیلدهای داده ضروری گمشده.
-
API URL Tracking(HTTP Request)
* نقش: این گره برای ردیابی یا ثبت خارجی درخواستهای ورودی در نظر گرفته شده است. میتوان آن را برای ارسال دادهها به یک سرویس تجزیه و تحلیل یا یک نقطه پایانی ثبت سفارشی پیکربندی کرد.
* پیکربندی: بر اساس الزامات ردیابی خاص شما، نیاز به سفارشیسازی URL و متد HTTP دارد.
* ورودی: محموله را از وبهوک n8n_order دریافت میکند.
* خروجی: دادههای پردازش شده را به گره Tracking response ارسال میکند.
* نقاط شکست: خطاهای اتصال به نقطه پایانی ردیابی، URLهای نامعتبر، یا خرابیهای احراز هویت.
-
Tracking response(Set)
* نقش: دادههای دریافتی از مرحله ردیابی را قبل از بازگرداندن به عنوان پاسخ وبهوک، قالببندی یا غنیسازی میکند.
* ورودی: دادهها از گره API URL Tracking.
* خروجی: دادهها را برای گره Webhook tracking response آماده میکند.
-
Webhook tracking response(Respond to Webhook)
* نقش: یک پاسخ HTTP را به رابط کاربری Glide باز میگرداند و تأیید میکند که درخواست دریافت و ثبت شده است.
* ورودی: دادههای پاسخ قالببندی شده از گره Tracking response.
* خروجی: ندارد (تعامل وبهوک را تکمیل میکند).
* نقاط شکست: مهلتهای زمانی یا وقفههای شبکه در حین انتقال پاسخ.
---
۲.۲ آمادهسازی دادهها و مدیریت فروشگاه برداری
این بلوک بر آمادهسازی اسناد پایگاه دانش شما برای جستجوی معنایی کارآمد از طریق بارگیری، قطعهبندی، جاسازی و ذخیرهسازی آنها در یک پایگاه داده برداری تمرکز دارد.
-
When clicking ‘Test workflow’(Manual Trigger)
* نقش: امکان اجرای دستی فرآیند بارگیری دادهها و بهروزرسانی پایگاه داده برداری را فراهم میکند، که برای آزمایش و راهاندازی اولیه مفید است.
* ورودی: ندارد.
* خروجی: گرههای Create collection و Refresh collection را راهاندازی میکند.
-
Create collection(HTTP Request)
* نقش: یک مجموعه جدید را در پایگاه داده برداری Qdrant شما برای نگهداری جاسازیهای اسناد مقداردهی اولیه میکند.
* پیکربندی: نیاز به پیکربندی URL نقطه پایانی API Qdrant و جزئیات احراز هویت دارد. بدنه درخواست باید ساختار مجموعه را تعریف کند.
* ورودی: توسط Manual Trigger راهاندازی میشود.
* خروجی: به گره Refresh collection ادامه میدهد.
* نقاط شکست: جزئیات اتصال نادرست Qdrant، پیکربندی مجموعه نامعتبر.
-
Refresh collection(HTTP Request)
* نقش: یک مجموعه موجود را در پایگاه داده برداری Qdrant بهروزرسانی یا تازه میکند. این میتواند برای نمایهسازی مجدد اسناد استفاده شود.
* ورودی: پس از Create collection راهاندازی میشود.
* خروجی: فرآیند بازیابی اسناد را با فراخوانی گره Get folder آغاز میکند.
* نقاط شکست: مشابه Create collection، مربوط به اتصال Qdrant.
-
Get folder(Google Drive)
* نقش: لیستی از اسناد را از یک پوشه مشخص در Google Drive بازیابی میکند.
* پیکربندی: نیاز به اعتبارنامه OAuth2 Google Drive و شناسه پوشه هدف دارد.
* ورودی: توسط Refresh collection راهاندازی میشود.
* خروجی: لیست فایلها را به گره Download Files منتقل میکند.
* نقاط شکست: اعتبارنامههای نامعتبر Google Drive، شناسه پوشه نادرست، یا مجوزهای ناکافی.
-
Download Files(Google Drive)
* نقش: محتوای اسناد شناسایی شده توسط گره Get folder را دانلود میکند.
* ورودی: لیست فایلها از Get folder.
* خروجی: محتوای خام سند به گره Default Data Loader.
* نقاط شکست: مشکلات شبکه در حین دانلود، خطاهای دسترسی به فایل، یا فرمتهای فایل پشتیبانی نشده.
-
Default Data Loader(LangChain document loader)
* نقش: محتوا را از فرمتهای مختلف سند (مانند فایلهای متنی، PDF) برای پردازش بیشتر بارگیری و استاندارد میکند.
* ورودی: دادههای فایل خام از Download Files.
* خروجی: محتوای سند برای قطعهبندی و جاسازی.
* نقاط شکست: انواع فایل پشتیبانی نشده یا محتوای سند خراب.
-
Token Splitter(LangChain text splitter)
* نقش: اسناد متنی بزرگ را بر اساس تعداد توکن به قطعات کوچکتر و قابل مدیریت تقسیم میکند. این برای جاسازی و بازیابی مؤثر حیاتی است.
* ورودی: محتوای سند از Default Data Loader.
* خروجی: قطعات متن برای جاسازی.
* نقاط شکست: مشکلات پردازش متن یا پارامترهای قطعهبندی.
-
Embeddings OpenAI(LangChain embeddingsOpenAi)
* نقش: قطعات متن را با استفاده از یک مدل جاسازی OpenAI (مانند text-embedding-ada-002) به نمایشهای برداری عددی (جاسازیها) تبدیل میکند.
* ورودی: قطعات متن توکن شده از Token Splitter.
* خروجی: جاسازیهای برداری برای ذخیره در پایگاه داده برداری.
* نقاط شکست: مشکلات کلید API OpenAI، محدودیتهای نرخ، یا ورودی متن نامعتبر.
-
Qdrant Vector Store(LangChain vectorStoreQdrant)
* نقش: جاسازیهای برداری تولید شده و فرادادههای مرتبط را در پایگاه داده برداری Qdrant ذخیره میکند و امکان جستجوهای شباهت کارآمد را فراهم میسازد.
* ورودی: جاسازیهای برداری از Embeddings OpenAI.
* خروجی: ندارد (دادهها در Qdrant ذخیره میشوند).
* نقاط شکست: خطاهای اتصال یا مشکلات احراز هویت با نمونه Qdrant.
---
۲.۳ امبدینگ و جستجوی برداری برای RAG
این بخش به فرآیند اصلی RAG میپردازد: دریافت پرسوجوی کاربر، جاسازی آن، جستجو در پایگاه داده برداری برای اطلاعات مرتبط و آمادهسازی آن برای مدل زبان.
-
n8n_rag(Webhook)
* نقش: نقطه ورود برای پرسشهای کاربر که به طور خاص برای سیستم RAG در نظر گرفته شدهاند.
* ورودی: پرسوجوهای کاربر را از طریق HTTP POST از رابط کاربری Glide یا سایر کلاینتها دریافت میکند.
* خروجی: پرسوجوی کاربر را به گره Embeddings OpenAI2 منتقل میکند.
-
Embeddings OpenAI2(LangChain embeddingsOpenAi)
* نقش: یک بردار جاسازی برای پرسوجوی ورودی کاربر با استفاده از همان مدل OpenAI که برای جاسازیهای سند استفاده شده است، تولید میکند.
* ورودی: پرسوجوی کاربر از n8n_rag.
* خروجی: جاسازی پرسوجو به گره Retrive Qdrant Vector Store.
* نقاط شکست: مشکلات کلید API OpenAI، محدودیتهای نرخ، یا متن پرسوجوی نامعتبر.
-
Retrive Qdrant Vector Store(LangChain vectorStoreQdrant)
* نقش: یک جستجوی شباهت را در پایگاه داده برداری Qdrant با استفاده از جاسازی پرسوجو برای یافتن مرتبطترین قطعات سند انجام میدهد.
* ورودی: جاسازی پرسوجو از Embeddings OpenAI2.
* خروجی: قطعات سند مرتبط به RAG و OpenAI Chat Model2.
* نقاط شکست: خطاهای اتصال Qdrant، پارامترهای پرسوجوی نامعتبر.
-
OpenAI Chat Model2(LangChain lmChatOpenAi)
* نقش: مدلی را مقداردهی اولیه میکند که زمینه بازیابی شده را پردازش کرده و پاسخی را تولید میکند.
* ورودی: قطعات سند مرتبط از Retrive Qdrant Vector Store.
* خروجی: زمینه را به گره Retrive Agent منتقل میکند.
* نقاط شکست: مشکلات کلید API OpenAI، خطاهای پیکربندی مدل.
-
RAG(LangChain toolVectorStore)
* نقش: به عنوان یک ابزار در چارچوب عامل LangChain عمل میکند، که به طور خاص برای تعامل با پایگاه داده برداری برای بازیابی طراحی شده است.
* ورودی: قطعات سند مرتبط از Retrive Qdrant Vector Store و به طور بالقوه اعلانها از OpenAI Chat Model1 (اگرچه OpenAI Chat Model1 به طور صریح در این نمودار به عنوان ورودی نشان داده نشده است، اما در تنظیمات عامل رایج است).
* خروجی: زمینه بازیابی شده را به Retrive Agent ارائه میدهد.
* نکته: در متن اصلی انگلیسی، گره RAG به عنوان ورودی از OpenAI Chat Model1 ذکر شده است، اما OpenAI Chat Model1 در این بخش از گردش کار وجود ندارد. این ممکن است یک خطای مستندسازی باشد یا نشاندهنده یک جریان جایگزین باشد. در این ترجمه، فرض بر این است که ورودی اصلی از Retrive Qdrant Vector Store است و ارجاع به OpenAI Chat Model1 نادیده گرفته شده است تا با ساختار ارائه شده مطابقت داشته باشد.
-
Retrive Agent(LangChain agent)
* نقش: فرآیند RAG را هماهنگ میکند. پرسوجوی کاربر را دریافت میکند، از ابزار RAG برای بازیابی زمینه مرتبط استفاده میکند و سپس مدل زبان (OpenAI Chat Model2) را برای تولید پاسخ نهایی فرا میخواند.
* ورودی: زمینه از OpenAI Chat Model2 و اطلاعات بازیابی شده از RAG.
* خروجی: پاسخ نهایی تولید شده به گره Webhook RAG response.
* نقاط شکست: خطاهای منطق عامل، قالببندی اعلان، یا ارتباط بین ابزارها و مدلها.
-
Webhook RAG response(Respond to Webhook)
* نقش: پاسخ تولید شده توسط هوش مصنوعی را به کلاینت درخواست کننده (مانند رابط کاربری Glide) باز میگرداند.
* ورودی: پاسخ نهایی از Retrive Agent.
* خروجی: ندارد (تعامل وبهوک را تکمیل میکند).
* نقاط شکست: مهلتهای زمانی یا مشکلات شبکه در حین انتقال پاسخ.
---
۲.۴ مدیریت تقویم و قرار ملاقات (اختیاری)
این بخش اختیاری نحوه رسیدگی به پرسوجوهای مربوط به رویدادهای تقویم را با ادغام با Google Calendar برای بازیابی و پردازش دادهها نشان میدهد.
-
n8n_appointment(Webhook)
* نقش: درخواستهای خاص مربوط به رویدادهای تقویم یا قرار ملاقات را دریافت میکند.
* ورودی: درخواستهای HTTP POST حاوی پرسوجوهای مربوط به تقویم.
* خروجی: پرسوجو را به OpenAI Chat Model3 منتقل میکند.
-
OpenAI Chat Model3(LangChain lmChatOpenAi)
* نقش: پرسوجوی مربوط به تقویم را با استفاده از یک مدل زبان OpenAI پردازش میکند تا قصد را درک کرده و اطلاعات مرتبط را استخراج کند.
* ورودی: پرسوجو از n8n_appointment.
* خروجی: پرسوجوی پردازش شده و اطلاعات استخراج شده به Concert start date و Structured Output Parser.
-
Structured Output Parser(LangChain outputParserStructured)
* نقش: خروجی مدل زبان را برای استخراج دادههای ساختاریافته، مانند تاریخها، زمانها و جزئیات رویداد، تجزیه میکند و از سازگاری اطمینان حاصل میکند.
* ورودی: خروجی از OpenAI Chat Model3.
* خروجی: دادههای ساختاریافته به گره Concert start date.
* نقاط شکست: خروجی با فرمت نادرست از مدل زبان که قابل تجزیه نیست.
-
Concert start date(LangChain chainLlm)
* نقش: از قابلیتهای زنجیره LangChain برای اصلاح اطلاعات استخراج شده یا انجام محاسبات خاص تاریخ/زمان مورد نیاز برای تعامل با API Google Calendar استفاده میکند.
* ورودی: پرسوجوی پردازش شده از OpenAI Chat Model3 و دادههای ساختاریافته از Structured Output Parser.
* خروجی: پارامترهای پرسوجوی قالببندی شده برای گره Google Calendar.
* نقاط شکست: خطاهای منطق زنجیره یا دستکاری تاریخ/زمان.
-
Google Calendar(Google Calendar node)
* نقش: با API Google Calendar تعامل میکند تا اطلاعات رویداد را بازیابی کند یا به طور بالقوه رویدادها را بر اساس پرسوجوی پردازش شده ایجاد/بهروزرسانی کند.
* ورودی: پارامترهای قالببندی شده از Concert start date.
* خروجی: دادههای تقویم (رویدادها، در دسترس بودن و غیره) به گره Calendar response.
* نقاط شکست: خطاهای احراز هویت API Google Calendar، درخواستهای نامعتبر، یا مجوزهای ناکافی.
-
Calendar response(Set)
* نقش: دادههای بازیابی شده از Google Calendar را به یک پاسخ کاربرپسند قالببندی میکند.
* ورودی: دادههای تقویم از Google Calendar.
* خروجی: پاسخ قالببندی شده به گره Webhook calendar response.
-
Webhook calendar response(Respond to Webhook)
* نقش: اطلاعات تقویم پردازش شده را به کلاینت درخواست کننده باز میگرداند.
* ورودی: پاسخ قالببندی شده از Calendar response.
* خروجی: ندارد (تعامل وبهوک را تکمیل میکند).
* نقاط شکست: مهلتهای زمانی یا مشکلات شبکه در حین انتقال پاسخ.
---
۲.۵ گرههای جانبی و کمکی
- گرههای
Sticky Note: این گرهها در بوم n8n برای افزودن نظرات، توضیحات یا سازماندهی بصری استفاده میشوند. آنها هیچ عملکرد عملیاتی در گردش کار انجام نمیدهند.
---
۳. جدول خلاصه
| نام نود (Node Name) | نوع نود (Node Type) | نقش عملکردی (Functional Role) | نود(های) ورودی (Input Node(s)) | نود(های) خروجی (Output Node(s)) |
|---|---|---|---|---|
n8n_order | Webhook | دریافت سوالات کاربر از Glide | External HTTP request | API URL Tracking |
API URL Tracking | HTTP Request | فراخوانی API خارجی برای ردیابی درخواست | n8n_order | Tracking response |
Tracking response | Set | فرمتبندی دادههای تایید ردیابی | API URL Tracking | Webhook tracking response |
Webhook tracking response | Respond to Webhook | ارسال تاییدیه ردیابی به Glide | Tracking response | None |
When clicking ‘Test workflow’ | Manual Trigger | اجرای دستی بارگذاری داده و بهروزرسانی پایگاه داده برداری | None | Create collection, Refresh collection |
Create collection | HTTP Request | ایجاد مجموعه در Qdrant | When clicking ‘Test workflow’ | Refresh collection |
Refresh collection | HTTP Request | بهروزرسانی/رفرش مجموعه Qdrant | Create collection | Get folder |
Get folder | Google Drive | دریافت فایلها از پوشه Google Drive | Refresh collection | Download Files |
Download Files | Google Drive | دانلود اسناد از Google Drive | Get folder | Default Data Loader |
Default Data Loader | LangChain document loader | بارگذاری و نرمالسازی محتوای سند | Download Files | Token Splitter |
Token Splitter | LangChain text splitter | تقسیم متن به قطعات مبتنی بر توکن | Default Data Loader | Embeddings OpenAI |
Embeddings OpenAI | LangChain embeddingsOpenAi | تولید بردارهای جاسازی برای قطعات متن | Token Splitter | Qdrant Vector Store |
Qdrant Vector Store | LangChain vectorStoreQdrant | ذخیره بردارهای جاسازی در Qdrant | Embeddings OpenAI | None |
n8n_rag | Webhook | نقطه ورود برای کوئریهای RAG | External HTTP POST | Embeddings OpenAI2 |
Embeddings OpenAI2 | LangChain embeddingsOpenAi | تولید بردار جاسازی برای کوئری کاربر | n8n_rag | Retrive Qdrant Vector Store |
Retrive Qdrant Vector Store | LangChain vectorStoreQdrant | جستجو در پایگاه داده برداری برای اسناد مرتبط | Embeddings OpenAI2 | RAG, OpenAI Chat Model2 |
OpenAI Chat Model2 | LangChain lmChatOpenAi | مدل زبان برای پردازش اسناد بازیابی شده | Retrive Qdrant Vector Store | Retrive Agent |
Retrive Agent | LangChain agent | هماهنگسازی فرآیند RAG و تولید پاسخ | OpenAI Chat Model2, RAG | Webhook RAG response |
RAG | LangChain toolVectorStore | ابزار رابط پایگاه داده برداری برای عامل | Retrive Qdrant Vector Store, OpenAI Chat Model1 | Retrive Agent |
Webhook RAG response | Respond to Webhook | ارسال پاسخ تولید شده به کلاینت | Retrive Agent | None |
n8n_appointment | Webhook | دریافت کوئریهای مربوط به تقویم | External HTTP POST | OpenAI Chat Model3 |
OpenAI Chat Model3 | LangChain lmChatOpenAi | پردازش کوئریهای تقویم با GPT-4 | n8n_appointment | Concert start date, Structured Output Parser |
Concert start date | LangChain chainLlm | استخراج/محاسبه اطلاعات تاریخ برای تقویم | OpenAI Chat Model3, Structured Output Parser | Google Calendar |
Google Calendar | Google Calendar node | تعامل با API تقویم گوگل | Concert start date | Calendar response |
Calendar response | Set | آمادهسازی دادههای تقویم برای پاسخ | Google Calendar | Webhook calendar response |
Webhook calendar response | Respond to Webhook | ارسال نتایج کوئری تقویم به فرانتاند | Calendar response | None |
Structured Output Parser | LangChain outputParserStructured | تجزیه دادههای ساختاریافته از خروجی LLM | OpenAI Chat Model3 | Concert start date |
Nodeهای استفادهشده
سوالات متداول
چتبات RAG چیست و چگونه کار میکند؟▾
چتبات RAG (تولید افزوده بازیابی) با ترکیب مدلهای زبانی بزرگ (LLM) با یک پایگاه دانش خارجی کار میکند. ابتدا اطلاعات مرتبط را از پایگاه دانش بازیابی کرده و سپس از LLM برای تولید پاسخی آگاه از زمینه بر اساس آن اطلاعات استفاده میکند.
چه ابزارهایی برای ساخت این چتبات استفاده میشود؟▾
این گردش کار از n8n برای اتوماسیون، OpenAI برای قابلیتهای هوش مصنوعی (مانند GPT-4 و امبدینگها)، Google Sheets برای مدیریت دادهها و Glide برای ایجاد یک رابط کاربری کاربرپسند استفاده میکند.
آیا میتوانم دادههای خود را در Google Sheets ذخیره کنم؟▾
بله، این گردش کار به گونهای طراحی شده است که از Google Sheets به عنوان منبع داده استفاده کند. شما میتوانید اسناد و اطلاعات خود را در Google Sheets سازماندهی کرده و سپس n8n آنها را برای استفاده در چتبات بازیابی میکند.
نقش n8n در این گردش کار چیست؟▾
n8n به عنوان موتور اصلی اتوماسیون عمل میکند. این ابزار وظایفی مانند دریافت ورودی کاربر از طریق وبهوک، پردازش دادهها از Google Sheets، فراخوانی APIهای OpenAI و LangChain، و ارسال پاسخ نهایی را مدیریت میکند.
workflowهای مرتبط
- اتوماسیون جستجوی لینکدین با GPT-4 و جستجوی بولی گوگلHR
- اتوماسیون خلاصهسازی جلسات با Google Drive و OpenAIAI
- تحلیل صوتی با DeepGram و GPT-4o در n8nAI
- اختصاص خودکار کاربران Zammad به سازمانها بر اساس دامنه ایمیلSupport
- گردش کار n8n: ارجاع پشتیبانی هوش مصنوعی به انسانSupport
- ناشناسسازی و بازسازی رزومه با هوش مصنوعی Gemini و Google Sh…HR
