ساخت چت‌بات هوش مصنوعی با n8n، Google Drive و Supabase

ساخت چت‌بات هوش مصنوعی با n8n، Google Drive و Supabase

6 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷

دانلود workflow

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

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

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

پردازش اسناد و چت‌بات مبتنی بر هوش مصنوعی با Google Drive و Supabase

این گردش کار، فرآیند دریافت، پردازش، نمایه‌سازی و پرس‌وجوی تعاملی اسناد آپلود شده در یک پوشه مشخص Google Drive را خودکار می‌کند. این سیستم از فناوری‌های هوش مصنوعی و پایگاه‌های داده برداری برای ایجاد یک سیستم قدرتمند تولید افزوده بازیابی (RAG) استفاده می‌کند. این سیستم اسناد خام (PDF، CSV، Google Docs) را به یک پایگاه دانش قابل جستجو تبدیل می‌کند و امکان تعامل مکالمه‌ای با داده‌های شما را فراهم می‌آورد.

این گردش کار و موارد دیگر را در کاتالوگ n8n در Axeto.ai کاوش کنید.

نمای کلی گردش کار

گردش کار به پنج بلوک منطقی تقسیم شده است:

1. دریافت و استخراج داده: پوشه Google Drive را برای فایل‌های جدید نظارت می‌کند، آن‌ها را دانلود کرده و محتوای متنی را بر اساس نوع فایل استخراج می‌کند.

2. آماده‌سازی سند و تولید فراداده: متن استخراج شده را قالب‌بندی می‌کند، از هوش مصنوعی برای تولید فراداده (عنوان، توضیحات) استفاده می‌کند و اسناد را به بخش‌های قابل مدیریت تقسیم می‌کند.

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

4. تعبیه و درج در فروشگاه برداری: بخش‌های متنی را با استفاده از OpenAI به تعبیه‌های برداری تبدیل کرده و آن‌ها را همراه با فراداده غنی در فروشگاه برداری Supabase درج می‌کند.

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

---

تجزیه و تحلیل بلوک به بلوک

۱. دریافت و استخراج داده

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

گره‌ها (Nodes):

  • Google Drive Trigger File Created (Trigger): پوشه Google Drive را برای فایل‌های جدید نظارت می‌کند.

* پیکربندی: پوشه با شناسه 1B-Wl-ktVFbTmX685DB978jNvs9Ihnxiv را نظارت می‌کند.

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

  • Loop Over Items (Split in Batches): هر فایل آپلود شده را به صورت جداگانه پردازش می‌کند تا از خطاهای پردازش دسته‌ای جلوگیری شود.
  • Set File ID (Set): شناسه فایل Google Drive را برای استفاده در گره‌های بعدی استخراج و ذخیره می‌کند.

* عبارت (Expression): file_id = {{$json.id}}

  • Download File (Google Drive): فایل را با استفاده از شناسه آن دانلود می‌کند. Google Docs به طور خودکار به PDF تبدیل می‌شوند.

* پیکربندی: شناسه فایل به صورت پویا تنظیم می‌شود؛ تبدیل به PDF برای Google Docs فعال است.

  • Switch (File Type) (Switch): گردش کار را بر اساس نوع MIME فایل هدایت می‌کند.

* خروجی‌ها:

* application/pdf: به استخراج PDF ادامه می‌دهد.

* text/csv: به استخراج CSV ادامه می‌دهد.

  • Extract from PDF (Extract from File): محتوای متنی خام را از فایل‌های PDF استخراج می‌کند.

* عملیات (Operation): pdf

  • Extract from CSV (Extract from File): محتوای CSV را استخراج و به یک رشته قابل خواندن قالب‌بندی می‌کند.
  • Document Data (Set): متن استخراج شده را در یک شی JSON تحت فیلد data برای پردازش هوش مصنوعی بسته‌بندی می‌کند.

* عبارت (Expression): {"data": <extracted text>}

---

۲. آماده‌سازی سند و تولید فراداده

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

گره‌ها (Nodes):

  • Create Metadata Title & Description (LangChain Chain LLM): از هوش مصنوعی Google Gemini برای تولید عنوان و توضیحات سند بر اساس محتوای آن استفاده می‌کند.
  • Structured Output Parser (LangChain Output Parser): فراداده تولید شده توسط هوش مصنوعی را به یک فرمت JSON ساختاریافته تجزیه می‌کند و اطمینان می‌دهد که دارای فیلدهای title و description است.
  • Split into chunks (Code node) (Code): متن سند را به بخش‌هایی با تقریباً ۱۰۰۰ کاراکتر و همپوشانی ۲۰۰ کاراکتری تقسیم می‌کند. اولویت را به تقسیم در مرزهای پاراگراف یا جمله می‌دهد و در صورت لزوم به تقسیم کلمه یا تقسیم سخت بازمی‌گردد.
  • Split Out (Split Out): آرایه بخش‌های متنی را به آیتم‌های گردش کار جداگانه تبدیل می‌کند و پردازش موازی را امکان‌پذیر می‌سازد.

* فیلد برای تقسیم: chunks

  • Limit (Limit): تعداد بخش‌های پردازش شده را به ۲۰ محدود می‌کند تا مصرف API و زمان پردازش را مدیریت کند.

* پیکربندی: Max items = 20

---

۳. بهبود زمینه بخش‌ها و خلاصه‌سازی

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

گره‌ها (Nodes):

  • Process Context (LangChain Chain LLM - Google Gemini Chat Model): برای هر بخش، این گره یک زمینه مختصر برای قرار دادن آن در سند تولید می‌کند. همچنین اعداد یا موجودیت‌های ناقص را اصلاح کرده و جملات یا جداول بریده شده را بازسازی می‌کند.

* ورودی‌ها: داده‌های کامل سند و متن بخش جداگانه.

  • Summarize (Summarize): تمام بخش‌های بهبود یافته را با استفاده از ###SPLIT### به عنوان جداکننده سفارشی، در یک رشته متنی واحد الحاق می‌کند.

* پیکربندی: فیلد text را با جداکننده ###SPLIT### الحاق می‌کند.

---

۴. تعبیه و درج در فروشگاه برداری

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

گره‌ها (Nodes):

  • Character Text Splitter (LangChain Text Splitter): متن خلاصه‌شده را با استفاده از جداکننده ###SPLIT### دوباره به بخش‌هایی تقسیم می‌کند و آن‌ها را برای تعبیه آماده می‌سازد.

* پیکربندی: جداکننده روی ###SPLIT### تنظیم شده است.

  • Default Data Loader (LangChain Document Default Data Loader): هر بخش را با فراداده مربوطه (شناسه فایل، عنوان، توضیحات) قبل از درج در فروشگاه برداری بسته‌بندی می‌کند.
  • Embeddings OpenAI (LangChain Embeddings): هر بخش سند را با استفاده از API OpenAI به یک تعبیه برداری تبدیل می‌کند.

* اعتبارنامه‌ها (Credentials): نیاز به کلید API OpenAI دارد.

  • Add Data to Supabase Vector Store (LangChain Vector Store - Supabase): تعبیه‌های تولید شده و فراداده مرتبط با آن‌ها را در جدول documents Supabase درج می‌کند.

* پیکربندی: حالت درج، جدول هدف documents.

* اعتبارنامه‌ها (Credentials): نیاز به کلید API Supabase و URL پروژه دارد.

---

۵. رابط چت هوش مصنوعی

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

گره‌ها (Nodes):

  • When chat message received (Trigger): پیام‌های چت ورودی را دریافت می‌کند.
  • AI Agent (LangChain Agent): تعامل بین پرس‌وجوی کاربر، فروشگاه برداری و مدل زبان را برای تولید پاسخ هماهنگ می‌کند.
  • Simple Memory (LangChain Memory): تاریخچه مکالمه را برای ارائه زمینه برای سوالات بعدی حفظ می‌کند.
  • Supabase Vector Store (LangChain Vector Store): برای انجام جستجوهای معنایی بر اساس پرس‌وجوی کاربر به فروشگاه برداری Supabase متصل می‌شود.
  • Embeddings OpenAI1 (LangChain Embeddings): تعبیه‌هایی را برای پرس‌وجوی کاربر تولید می‌کند تا جستجوی معنایی را تسهیل کند.

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

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

این گردش کار n8n چه کاری انجام می‌دهد؟

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

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

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

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

این گردش کار به طور خاص برای پردازش فایل‌های PDF، CSV و Google Docs از Google Drive طراحی شده است. فایل‌های Google Docs به طور خودکار به PDF تبدیل می‌شوند.

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

برای پیاده‌سازی این گردش کار، نیاز به دسترسی به n8n، حساب‌های Google Drive و Supabase، و کلید API برای OpenAI دارید. می‌توانید گردش کار را از کاتالوگ n8n در Axeto.ai دریافت کرده و با پیکربندی گره‌ها، آن را راه‌اندازی کنید.

workflowهای مرتبط

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