عامل هوش مصنوعی برای چت با فایل‌های Supabase و Google Drive

عامل هوش مصنوعی برای چت با فایل‌های Supabase و Google Drive

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

دانلود workflow

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

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

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

عامل هوش مصنوعی برای تعامل مکالمه‌ای با فایل‌ها در Supabase و Google Drive

این گردش کار به کاربران امکان می‌دهد تا با استفاده از زبان طبیعی با اسناد ذخیره شده در Supabase Storage و Google Drive تعامل داشته باشند. این فرآیند دریافت فایل‌ها، استخراج محتوای آن‌ها، ایجاد جاسازی‌های برداری (vector embeddings) و سپس استفاده از یک عامل هوش مصنوعی برای پاسخ به پرسش‌های کاربر بر اساس این پایگاه دانش را خودکار می‌کند.

ویژگی‌های کلیدی:

  • یکپارچه‌سازی چند پلتفرمی: به طور یکپارچه با Supabase Storage و Google Drive متصل می‌شود.
  • دریافت خودکار: فایل‌های جدید یا به‌روزرسانی شده را از هر دو منبع شناسایی و پردازش می‌کند.
  • تجزیه هوشمند: از LlamaParse برای استخراج قوی محتوای اسناد استفاده می‌کند.
  • برداری‌سازی (Vectorization): محتوای اسناد را برای جستجوی معنایی کارآمد به جاسازی‌ها تبدیل می‌کند.
  • هوش مصنوعی مکالمه‌ای: به کاربران امکان می‌دهد سؤال بپرسند و پاسخ‌هایی را با قدرت مدل‌های هوش مصنوعی دریافت کنند.
  • حذف موارد تکراری: از پردازش مجدد فایل‌های موجود جلوگیری می‌کند.

کاتالوگ n8n در Axeto.ai را مشاهده کنید: https://axeto.ai/n8n

---

تشریح گردش کار

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

1. جمع‌آوری و حذف موارد تکراری فایل از Supabase Storage: مدیریت دریافت و تأیید فایل‌ها از Supabase.

2. پردازش و تجزیه فایل: رسیدگی به استخراج و آماده‌سازی محتوای اسناد با استفاده از LlamaParse.

3. یکپارچه‌سازی و نظارت بر Google Drive: یکپارچه‌سازی با Google Drive برای پردازش فایل‌های جدید و به‌روزرسانی شده.

4. تعامل عامل هوش مصنوعی و مدیریت پرس و جو: تسهیل پرس و جوی مکالمه‌ای با هوش مصنوعی.

---

۱. جمع‌آوری و حذف موارد تکراری فایل از Supabase Storage

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

گره‌ها (Nodes):

  • Manual Trigger: (هنگام کلیک بر روی ‘Test workflow’) - به عنوان نقطه ورود برای تست دستی عمل می‌کند.
  • Supabase (getAll): سوابق فایل موجود را از پایگاه داده Supabase شما واکشی می‌کند.
  • Aggregate: لیست سوابق فایل موجود را تجمیع می‌کند.
  • HTTP Request (Supabase Storage API): لیست تمام فایل‌های موجود در سطل (bucket) Supabase شما را فهرست می‌کند.
  • Split in Batches: بر روی هر فایل یافت شده در Supabase Storage تکرار می‌شود.
  • If: به طور شرطی بررسی می‌کند که آیا فایلی از فضای ذخیره‌سازی در پایگاه داده ثبت شده است و یک placeholder نیست.
  • Supabase (insert): یک رکورد جدید در پایگاه داده برای فایل‌هایی که نیاز به پردازش دارند ایجاد می‌کند.
  • HTTP Request (Supabase Storage Download): محتوای فایل‌های جدید را از Supabase Storage دانلود می‌کند.

عملیات کلیدی:

1. واکشی سوابق موجود: گره Supabase (getAll) تمام ورودی‌ها را از جدول files شما بازیابی می‌کند.

2. فهرست کردن فایل‌های فضای ذخیره‌سازی: یک گره HTTP Request از API Supabase Storage برای دریافت لیستی از تمام فایل‌ها در سطل تعیین شده شما پرس و جو می‌کند.

3. منطق حذف موارد تکراری: گره‌های Split in Batches و If فایل‌ها را از فضای ذخیره‌سازی با سوابق پایگاه داده مقایسه می‌کنند. اگر فایلی (شناسایی شده با storage_id) در پایگاه داده یافت نشد و یک placeholder (.emptyFolderPlaceholder) نبود، به مراحل بعدی می‌رود.

4. ثبت فایل‌های جدید: برای فایل‌های جدید، یک رکورد با استفاده از Supabase (insert) در جدول files درج می‌شود.

5. دانلود فایل‌های جدید: گره HTTP Request (Supabase Storage Download) محتوای باینری این فایل‌های جدید را برای پردازش بعدی واکشی می‌کند.

مشکلات احتمالی:

  • اعتبارسنجی نامعتبر API Supabase.
  • مشکلات اتصال شبکه.
  • پاسخ‌های خالی یا بدشکل از Supabase.

---

۲. پردازش و تجزیه فایل از طریق LlamaParse

هدف: این بلوک فایل‌ها (چه از Supabase و چه از Google Drive) را دریافت می‌کند، آن‌ها را برای استخراج محتوا به API LlamaParse ارسال می‌کند و متن استخراج شده را برای پردازش هوش مصنوعی آماده می‌کند.

گره‌ها (Nodes):

  • HTTP Request (LlamaParse Upload): محتوای فایل را به LlamaParse آپلود می‌کند.
  • HTTP Request (LlamaParse Status): LlamaParse را برای بررسی وضعیت کار تجزیه (parsing job) نظرسنجی می‌کند.
  • Switch: گردش کار را بر اساس وضعیت کار تجزیه LlamaParse (PENDING, SUCCESS, ERROR) هدایت می‌کند.
  • Wait: برای رعایت محدودیت‌های نرخ (rate limits) API، اجرا را متوقف می‌کند.
  • Stop and Error: در صورت شکست تجزیه، گردش کار را متوقف می‌کند.
  • HTTP Request (LlamaParse Data): پس از موفقیت کار، محتوای تجزیه شده را بازیابی می‌کند.
  • Set: متن تجزیه شده را استخراج و قالب‌بندی می‌کند.
  • LangChain Text Splitter: اسناد متنی بزرگ را به قطعات کوچک و قابل مدیریت تقسیم می‌کند.
  • LangChain Document Loader: قطعات متن را به اشیاء سند (document objects) مناسب برای جاسازی تبدیل می‌کند.
  • LangChain Embeddings (OpenAI): جاسازی‌های برداری را برای هر قطعه متن با استفاده از مدل‌های جاسازی OpenAI ایجاد می‌کند.
  • LangChain Vector Store Supabase: قطعات متن و جاسازی‌های آن‌ها را در پایگاه داده برداری Supabase شما درج می‌کند.
  • Supabase (insert): سوابق فایل را در پایگاه داده Supabase شما ایجاد یا به‌روزرسانی می‌کند.

عملیات کلیدی:

1. آپلود برای تجزیه: محتوای باینری فایل با استفاده از درخواست multipart/form-data POST به LlamaParse آپلود می‌شود.

2. نظارت بر کار تجزیه: گردش کار به طور مکرر وضعیت کار را از طریق API LlamaParse بررسی می‌کند. یک گره Wait برای جلوگیری از رسیدن به محدودیت‌های نرخ گنجانده شده است.

3. مدیریت نتایج کار: گره Switch گردش کار را هدایت می‌کند:

* PENDING: به انتظار ادامه می‌دهد.

* SUCCESS: به بازیابی داده‌های تجزیه شده می‌رود.

* ERROR/CANCELED: گردش کار را با پیام خطا متوقف می‌کند.

4. بازیابی و آماده‌سازی محتوا: پس از موفقیت، محتوای markdown تجزیه شده واکشی می‌شود. سپس این متن با استفاده از Recursive Character Text Splitter به قطعات تقسیم می‌شود.

5. ایجاد جاسازی‌ها: هر قطعه متن با استفاده از مدل‌های جاسازی OpenAI به یک نمایش برداری عددی (جاسازی) تبدیل می‌شود.

6. ذخیره در پایگاه داده برداری: گره LangChain Vector Store Supabase این جاسازی‌ها و متن‌های مرتبط را به طور کارآمد در جدول documents Supabase شما ذخیره می‌کند و امکان جستجوهای معنایی سریع را فراهم می‌کند.

مشکلات احتمالی:

  • خطاهای API LlamaParse یا مهلت‌های زمانی (timeouts).
  • کلیدهای نامعتبر API LlamaParse.
  • محدودیت نرخ توسط LlamaParse یا OpenAI.
  • خطاهای اتصال یا نوشتن Supabase.

---

۳. یکپارچه‌سازی و نظارت بر Google Drive

هدف: این بخش یک پوشه خاص Google Drive را برای فایل‌های جدید یا اصلاح شده نظارت می‌کند. این فایل‌ها را دانلود می‌کند، آن‌ها را به یک فرمت قابل پردازش (مانند PDF) تبدیل می‌کند و سپس همان فرآیند تجزیه و جاسازی را که در بلوک ۲ توضیح داده شد، راه‌اندازی می‌کند.

گره‌ها (Nodes):

  • Google Drive Trigger (File Created/Updated): فایل‌های جدید یا به‌روزرسانی شده را در یک پوشه Google Drive مشخص شده شناسایی می‌کند.
  • Set: اطلاعات مربوط به فایل را استخراج می‌کند.
  • Supabase (delete): هرگونه سوابق سند قدیمی مرتبط با فایلی که در حال به‌روزرسانی است را حذف می‌کند.
  • Google Drive (download): فایل را دانلود می‌کند و فرمت‌های Google Workspace (Docs, Sheets, Slides) را به PDF تبدیل می‌کند.
  • HTTP Request (LlamaParse Upload): فایل دانلود شده را به LlamaParse آپلود می‌کند.
  • HTTP Request (LlamaParse Status): وضعیت کار تجزیه را بررسی می‌کند.
  • Switch: نتایج وضعیت کار را مدیریت می‌کند.
  • Wait: برای محدودیت‌های نرخ متوقف می‌شود.
  • Stop and Error: در صورت شکست تجزیه متوقف می‌شود.
  • HTTP Request (LlamaParse Data): محتوای تجزیه شده را بازیابی می‌کند.
  • Set: متن تجزیه شده را قالب‌بندی می‌کند.
  • LangChain Text Splitter: متن را به قطعات تقسیم می‌کند.
  • LangChain Document Loader: اشیاء سند را ایجاد می‌کند.
  • LangChain Embeddings (OpenAI): جاسازی‌ها را ایجاد می‌کند.
  • LangChain Vector Store Supabase: جاسازی‌ها را در Supabase ذخیره می‌کند.
  • Supabase (insert): یک رکورد فایل جدید برای فایل‌های Google Drive ایجاد می‌کند.

عملیات کلیدی:

1. نظارت بر پوشه: تریگرهای Google Drive پوشه پیکربندی شده را برای تغییرات نظارت می‌کنند.

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

3. دانلود و تبدیل: فایل از Google Drive دانلود می‌شود. اگر فایل در فرمت Google Workspace باشد، به طور خودکار به PDF تبدیل می‌شود تا برای تجزیه آماده شود.

4. پردازش و جاسازی: فایل دانلود شده (یا تبدیل شده) سپس به LlamaParse ارسال می‌شود و مراحل پردازش، تجزیه، تقسیم‌بندی متن، ایجاد جاسازی و ذخیره‌سازی در پایگاه داده برداری Supabase مشابه بلوک ۲ دنبال می‌شود.

5. ثبت رکورد فایل: یک رکورد جدید برای فایل پردازش شده در جدول files پایگاه داده Supabase ایجاد می‌شود.

مشکلات احتمالی:

  • خطاهای احراز هویت Google Drive.
  • مشکلات دسترسی به پوشه یا فایل.
  • خطاهای تبدیل فرمت فایل.
  • مشکلات مربوط به LlamaParse، OpenAI یا Supabase (همانند بلوک ۲).

---

۴. تعامل عامل هوش مصنوعی و مدیریت پرس و جو

هدف: این بخش به کاربران اجازه می‌دهد تا با استفاده از زبان طبیعی سؤال بپرسند. گردش کار، سؤال را به یک پایگاه داده برداری تبدیل می‌کند، اسناد مرتبط را بازیابی می‌کند و سپس از یک مدل زبان بزرگ (LLM) برای تولید پاسخ بر اساس اطلاعات بازیابی شده استفاده می‌کند.

گره‌ها (Nodes):

  • Manual Trigger: (برای تست دستی) - نقطه شروع برای ارسال پرس و جو.
  • Set: پرس و جوی کاربر را برای پردازش آماده می‌کند.
  • LangChain Embeddings (OpenAI): پرس و جوی کاربر را به یک جاسازی برداری تبدیل می‌کند.
  • LangChain Vector Store Supabase: اسناد مرتبط را از پایگاه داده برداری Supabase بر اساس شباهت جاسازی پرس و جو بازیابی می‌کند.
  • Set: زمینه (context) بازیابی شده و پرس و جوی اصلی را برای مدل زبان بزرگ قالب‌بندی می‌کند.
  • LangChain LLM (OpenAI): از مدل زبان بزرگ برای تولید پاسخ استفاده می‌کند.
  • Set: پاسخ نهایی را قالب‌بندی می‌کند.
  • Response: پاسخ تولید شده توسط هوش مصنوعی را به کاربر برمی‌گرداند.

عملیات کلیدی:

1. دریافت پرس و جو: کاربر سؤالی را از طریق یک ماشه دستی یا یک رابط کاربری دیگر وارد می‌کند.

2. تبدیل پرس و جو به جاسازی: پرس و جوی متنی کاربر با استفاده از مدل‌های جاسازی OpenAI به یک بردار عددی تبدیل می‌شود.

3. جستجوی معنایی: گره LangChain Vector Store Supabase از این بردار برای جستجوی اسناد مشابه در پایگاه داده برداری Supabase استفاده می‌کند. اسناد مرتبط (که حاوی اطلاعات مربوط به پرس و جو هستند) بازیابی می‌شوند.

4. آماده‌سازی زمینه برای LLM: پرس و جوی اصلی کاربر به همراه متن اسناد بازیابی شده به عنوان زمینه (context) در یک قالب مناسب برای مدل زبان بزرگ ترکیب می‌شود.

5. تولید پاسخ توسط LLM: مدل زبان بزرگ (مانند GPT-4) با استفاده از زمینه ارائه شده، پاسخی دقیق و مرتبط به سؤال کاربر تولید می‌کند.

6. ارائه پاسخ: پاسخ نهایی به کاربر نمایش داده می‌شود.

مشکلات احتمالی:

  • خطاهای OpenAI API (برای جاسازی یا LLM).
  • پایگاه داده برداری Supabase در دسترس نیست یا پرس و جوی آن ناموفق است.
  • عدم وجود اسناد مرتبط کافی برای پاسخ به پرس و جو.
  • پاسخ‌های نامربوط یا نادرست از LLM.

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

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

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

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

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

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

چگونه از پردازش مجدد فایل‌های تکراری جلوگیری می‌شود؟

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

مفهوم "برداری‌سازی" (Vectorization) در این گردش کار چیست؟

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

workflowهای مرتبط

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