
چت هوش مصنوعی با فایلهای Supabase Storage
12 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۱۹
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 2621 · منبع: کاتالوگ Axeto
عامل هوش مصنوعی برای تعامل مکالمهای با فایلها در Supabase Storage
این گردش کار به کاربران امکان میدهد تا با اسناد ذخیره شده در Supabase Storage به زبان طبیعی مکالمه کنند. این سیستم از قابلیتهای جستجوی برداری و چت مبتنی بر هوش مصنوعی برای بازیابی اطلاعات متنی از مخزن فایل شما استفاده میکند. این ابزار برای محققان، تحلیلگران یا صاحبان کسبوکار که نیاز به دسترسی و درک کارآمد اطلاعات در مجموعههای بزرگ اسناد، از جمله فایلهای PDF و متنی ساده دارند، ایدهآل است.
شما میتوانید این گردش کار را در نمونه Axeto n8n خود در آدرس زیر پیدا و وارد کنید: Axeto n8n Workflows
---
نمای کلی گردش کار
این گردش کار به دو بلوک عملکردی اصلی تقسیم میشود:
1. دریافت و برداریسازی اسناد: این بلوک فرآیند دریافت فایلها از Supabase Storage، استخراج محتوای آنها، ایجاد بردارهای جاسازی (embeddings) و ذخیرهسازی آنها برای جستجوی کارآمد را مدیریت میکند.
2. تعامل با چتبات هوش مصنوعی: این بلوک تعاملات چت کاربر را مدیریت میکند، دادههای برداریشده را برای اطلاعات مرتبط پرسوجو میکند و پاسخهای مبتنی بر هوش مصنوعی را بر اساس محتوای اسناد تولید میکند.
این طراحی یک سیستم ماژولار و قابل نگهداری را تضمین میکند که Supabase را با قابلیتهای هوش مصنوعی از طریق OpenAI به طور ایمن ادغام میکند و به شما امکان میدهد بدون اتکا به سرویسهای خارجی مانند Google Drive، مخزن اسناد خود را پرسوجو کنید.
---
تجزیه و تحلیل گرههای دقیق
۱. ورود و بردارسازی اسناد
این بخش فرآیند ورود و آمادهسازی اسناد شما را برای بازیابی مبتنی بر هوش مصنوعی خودکار میکند.
گرههای درگیر:
-
Manual Trigger(n8n-nodes-base.manualTrigger) -
Get All Files(n8n-nodes-base.supabase) -
Aggregate(n8n-nodes-base.aggregate) -
Get All Files from Storage(n8n-nodes-base.httpRequest) -
Loop Over Items(n8n-nodes-base.splitInBatches) -
If New File(n8n-nodes-base.if) -
Download File(n8n-nodes-base.httpRequest) -
Switch File Type(n8n-nodes-base.switch) -
Extract PDF Content(n8n-nodes-base.extractFromFile) -
Merge Content(n8n-nodes-base.merge) -
Load Document(n8n-nodes-langchain.documentLoader) -
Split Text into Chunks(n8n-nodes-langchain.textSplitter) -
Generate Embeddings(n8n-nodes-langchain.embeddings) -
Create File Record(n8n-nodes-base.supabase) -
Insert into Vector Store(n8n-nodes-langchain.vectorStoreSupabase) -
Setup Reminder(n8n-nodes-base.stickyNote)
جزئیات گرهها:
-
Manual Trigger
* Type: n8n-nodes-base.manualTrigger
* نقش: فرآیند ورود فایل را با فعالسازی دستی آغاز میکند.
* پیکربندی: پارامتر خاصی لازم نیست.
* ورودی: ندارد.
* خروجی: گره Get All Files را فعال میکند.
-
Get All Files
* Type: n8n-nodes-base.supabase (عملیات Get All)
* نقش: رکوردهای فایل موجود را از جدول files Supabase شما بازیابی میکند تا موارد تکراری را بررسی کند.
* پیکربندی: شناسه جدول را روی "files" تنظیم کنید.
* ورودی: خروجی Manual Trigger.
* خروجی: لیستی از تمام رکوردهای فایل موجود.
* خطاهای احتمالی: خطاهای احراز هویت در صورت نامعتبر بودن اعتبارنامههای Supabase.
-
Aggregate
* Type: n8n-nodes-base.aggregate
* نقش: خروجی Get All Files را برای مقایسه آسانتر در یک آرایه واحد ادغام میکند.
* پیکربندی: تمام موارد ورودی را ادغام کنید.
* ورودی: خروجی Get All Files.
* خروجی: لیستی ادغام شده از فایلهای موجود.
-
Get All Files from Storage
* Type: n8n-nodes-base.httpRequest
* نقش: با استفاده از API ذخیرهسازی Supabase، لیست فایلهای موجود در سطل ذخیرهسازی Supabase شما را واکشی میکند.
* پیکربندی:
* Method: POST
* URL: نقطه پایانی API ذخیرهسازی Supabase برای لیست کردن اشیاء.
* Body: بار داده JSON برای لیست کردن اشیاء (مثلاً {"limit": 100, "offset": 0, "sortBy": {"column": "name", "order": "asc"}}).
* اعتبارنامهها: اعتبارنامههای API Supabase با مجوزهای مناسب.
* ورودی: لیست ادغام شده فایلهای موجود از گره Aggregate.
* خروجی: لیستی از فایلهای موجود در سطل ذخیرهسازی Supabase شما.
* خطاهای احتمالی: خطاهای API، مهلت زمانی شبکه، پاسخهای JSON نامعتبر.
* Setup Reminder: به شما یادآوری میکند که نام ذخیرهسازی Supabase، کلید API و URL خود را پیکربندی کنید.
-
Loop Over Items
* Type: n8n-nodes-base.splitInBatches
* نقش: هر فایل را از لیست ذخیرهسازی به صورت جداگانه پردازش میکند.
* پیکربندی: اندازه دسته روی 1 تنظیم شده است.
* ورودی: لیست فایلها از Get All Files from Storage.
* خروجی: دادههای فایل فردی برای پردازش.
-
If New File
* Type: n8n-nodes-base.if
* نقش: فایلهایی را که قبلاً پردازش شدهاند (در جدول files وجود دارند) یا فایلهای جایگزین (مانند .emptyFolderPlaceholder) را فیلتر میکند.
* پیکربندی:
شرط ۱: شناسه فایل در لیست فایلهای موجود یافت نمیشود*.
شرط ۲: نام فایل ".emptyFolderPlaceholder" نیست*.
* ورودی: دادههای فایل فعلی از Loop Over Items و لیست فایلهای موجود.
* خروجی: در صورت برآورده شدن شرایط (شاخه True)، به گره Download File ادامه میدهد؛ در غیر این صورت، پردازش را نادیده میگیرد (شاخه False).
* خطاهای احتمالی: خطاهای ارزیابی عبارت در صورت مفقود بودن یا نامعتبر بودن دادههای ورودی.
-
Download File
* Type: n8n-nodes-base.httpRequest
* نقش: محتوای یک فایل جدید را از ذخیرهسازی Supabase دانلود میکند.
* پیکربندی:
* Method: GET
* URL: URL ذخیرهسازی Supabase برای فایل.
* اعتبارنامهها: اعتبارنامههای API Supabase.
* ورودی: اطلاعات فایل از گره If New File (شاخه True).
* خروجی: دادههای باینری فایل.
* خطاهای احتمالی: خطاهای دانلود، مشکلات احراز هویت، مهلت زمانی.
* Setup Reminder: به شما یادآوری میکند که نام ذخیرهسازی Supabase، کلید API و URL خود را پیکربندی کنید.
-
Switch File Type
* Type: n8n-nodes-base.switch
* نقش: فایل دانلود شده را بر اساس نوع آن (PDF یا متن) برای استخراج محتوای مناسب هدایت میکند.
* پیکربندی: پسوند فایل دادههای باینری را بررسی میکند.
* ورودی: دادههای باینری فایل دانلود شده از Download File.
* خروجی:
* فایلهای PDF به Extract PDF Content ارسال میشوند.
* فایلهای متنی (یا فایلهایی با پسوند ناشناخته) به Merge Content ارسال میشوند.
-
Extract PDF Content
* Type: n8n-nodes-base.extractFromFile
* نقش: محتوای متنی را به طور خاص از فایلهای PDF استخراج میکند.
* پیکربندی: عملیات روی "pdf" تنظیم شده است.
* ورودی: دادههای باینری PDF از Switch File Type.
* خروجی: JSON حاوی محتوای متنی استخراج شده.
* خطاهای احتمالی: خطا در صورت خراب بودن فایل PDF یا در فرمت پشتیبانی نشده.
-
Merge Content
* Type: n8n-nodes-base.merge
* نقش: محتوای متنی استخراج شده از فایلهای PDF یا فایلهای متنی مستقیم را در یک فرمت واحد یکپارچه میکند.
* پیکربندی: حالت ادغام پیشفرض (پیوست).
* ورودی: محتوای متنی از Switch File Type (شاخه متن) یا Extract PDF Content (شاخه PDF).
* خروجی: محتوای متنی یکپارچه آماده برای پردازش بیشتر.
-
Load Document
* Type: n8n-nodes-langchain.documentLoader
* نقش: محتوای متنی را بارگیری کرده و آن را با فراداده مرتبط میکند و برای قطعهبندی و بردارسازی آماده میسازد.
* پیکربندی:
* Document Content: از یک عبارت برای انتخاب فیلد data یا text از گره Merge Content استفاده میکند.
* Metadata: شامل file_id استخراج شده از ویژگی JSON id داده ورودی.
* ورودی: محتوای متنی ادغام شده و فراداده فایل.
* خروجی: یک شیء سند با محتوا و فراداده.
* خطاهای احتمالی: خطاهای عبارت در صورت مفقود بودن فیلدهای مورد انتظار در ورودی.
-
Split Text into Chunks
* Type: n8n-nodes-langchain.textSplitter
* نقش: محتوای متنی بزرگ را به قطعات کوچکتر و قابل مدیریت برای بردارسازی تقسیم میکند.
* پیکربندی:
* Chunk Size: 500 کاراکتر.
* Chunk Overlap: 200 کاراکتر.
* ورودی: شیء سند از Load Document.
* خروجی: آرایهای از قطعات متن.
-
Generate Embeddings
* Type: n8n-nodes-langchain.embeddings (OpenAI)
* نقش: با استفاده از مدل بردارسازی OpenAI، بردارهای جاسازی (embeddings) را برای هر قطعه متن ایجاد میکند.
* پیکربندی:
* Model: text-embedding-3-small.
* اعتبارنامهها: اعتبارنامههای API OpenAI.
* ورودی: قطعات متن از Split Text into Chunks.
* خروجی: بردارهای جاسازی به همراه فراداده مرتبط آنها.
* خطاهای احتمالی: خطاهای API OpenAI، مشکلات احراز هویت.
-
Create File Record
* Type: n8n-nodes-base.supabase (عملیات Insert)
* نقش: یک رکورد جدید را در جدول files Supabase درج میکند تا فایل را به عنوان پردازش شده علامتگذاری کند.
* پیکربندی:
* Table ID: "files".
* Fields:
* name: نام فایل.
* storage_id: شناسه ذخیرهسازی فایل.
* اعتبارنامهها: اعتبارنامههای API Supabase.
* ورودی: اطلاعات فایل از گره Loop Over Items.
* خروجی: تأیید ایجاد رکورد در جدول files.
-
Insert into Vector Store
* Type: n8n-nodes-langchain.vectorStoreSupabase
* نقش: بردارهای جاسازی تولید شده و فراداده آنها را در فروشگاه بردار Supabase شما ذخیره میکند.
* پیکربندی:
* Mode: Insert.
* Query Name: match_documents.
* Table: documents.
* اعتبارنامهها: اعتبارنامههای API Supabase.
* ورودی: بردارهای جاسازی از Generate Embeddings و تأییدیه از Create File Record.
* خروجی: تأیید درج موفقیتآمیز در فروشگاه بردار.
* خطاهای احتمالی: خطاهای درج پایگاه داده، مشکلات اعتبارنامهها.
-
Setup Reminder
* Type: n8n-nodes-base.stickyNote
* نقش: یادآوریهای مهمی را برای پیکربندی کلیدهای API، نامهای ذخیرهسازی و شناسههای پایگاه داده خاص محیط شما ارائه میدهد.
---
۲. تعامل ربات چت هوش مصنوعی
این بخش به کاربران امکان میدهد به صورت مکالمهای با اسناد خود تعامل داشته باشند.
گرههای درگیر:
-
Chat Message Trigger(n8n-nodes-langchain.chatTrigger) -
AI Agent(n8n-nodes-langchain.agent) -
OpenAI Chat Model(n8n-nodes-langchain.chatModel) -
Vector Store Tool(n8n-nodes-langchain.toolVectorStore) -
Supabase Vector Store(n8n-nodes-langchain.vectorStoreSupabase) -
OpenAI Embeddings(n8n-nodes-langchain.embeddings) -
Setup Reminder(n8n-nodes-base.stickyNote)
جزئیات گرهها:
-
Chat Message Trigger
* Type: n8n-nodes-langchain.chatTrigger (Webhook)
* نقش: پیامهای چت ورودی از کاربران را گوش میدهد.
* پیکربندی: یک شناسه Webhook منحصر به فرد برای ادغام با رابط چت شما تولید میشود.
* ورودی: بار داده پیام چت کاربر.
* خروجی: پیام چت را به AI Agent ارسال میکند.
* خطاهای احتمالی: خطاهای پیکربندی Webhook، فرمتهای نامعتبر بار داده.
-
AI Agent
* Type: n8n-nodes-langchain.agent
* نقش: هسته ربات چت، هماهنگ کننده تعامل بین مدل چت و فروشگاه بردار برای تولید پاسخهای آگاه از زمینه.
* ورودی: پرس و جوی کاربر از Chat Message Trigger، قطعات سند مرتبط از Vector Store Tool و پاسخها از OpenAI Chat Model.
* خروجی: پاسخ نهایی چت تولید شده توسط هوش مصنوعی.
* خطاهای احتمالی: خطاهای API، دادههای ورودی نامعتبر.
-
OpenAI Chat Model
* Type: n8n-nodes-langchain.chatModel (OpenAI)
* نقش: پاسخهای زبان طبیعی را بر اساس پرس و جوی کاربر و زمینه سند بازیابی شده تولید میکند.
* اعتبارنامهها: اعتبارنامههای API OpenAI.
* ورودی: پرس و جوی کاربر و زمینه ارائه شده توسط AI Agent.
* خروجی: پاسخهای کاندید برای AI Agent.
* خطاهای احتمالی: محدودیتهای نرخ API OpenAI، خطاهای احراز هویت.
-
Vector Store Tool
* Type: n8n-nodes-langchain.toolVectorStore
* نقش: فروشگاه بردار Supabase را برای یافتن مرتبطترین قطعات سند بر اساس پرس و جوی کاربر، پرس و جو میکند.
* پیکربندی:
* Name: knowledge_base.
* Top K: 8 (مرتبطترین ۸ قطعه را بازیابی میکند).
* ورودی: متن پرس و جوی کاربر از AI Agent.
* خروجی: مرتبطترین قطعات سند K و فراداده آنها.
* خطاهای احتمالی: خطاهای اجرای پرس و جو، مشکلات اتصال به Supabase.
-
Supabase Vector Store
* Type: n8n-nodes-langchain.vectorStoreSupabase
* نقش: رابطی را برای پرس و جوی فروشگاه بردار Supabase شما فراهم میکند.
* پیکربندی:
* Table: documents.
* Metadata Filter: میتواند برای فیلتر کردن نتایج بر اساس فراداده (مانند file_id) پیکربندی شود.
* اعتبارنامهها: اعتبارنامههای API Supabase.
* ورودی: پارامترهای پرس و جو از Vector Store Tool.
* خروجی: بردارهای سند مطابق در پایگاه داده Supabase.
* خطاهای احتمالی: خطاهای پرس و جوی پایگاه داده، مشکلات اعتبارنامهها.
-
OpenAI Embeddings
* Type: n8n-nodes-langchain.embeddings (OpenAI)
* نقش: به طور داخلی توسط اجزای Langchain برای تولید بردارهای جاسازی برای جستجوهای فروشگاه بردار استفاده میشود.
* اعتبارنامهها: اعتبارنامههای API OpenAI.
* ورودی: متن پرس و جو.
* خروجی: بردارهای جاسازی برای جستجوی فروشگاه بردار.
* خطاهای احتمالی: مشابه گره Generate Embeddings.
-
Setup Reminder
* Type: n8n-nodes-base.stickyNote
* نقش: به شما یادآوری میکند که اعتبارنامههای API OpenAI و Supabase خود را در جایی که در این بلوک استفاده میشوند، پیکربندی کنید.
---
۳. جدول خلاصه
| نام گره | نوع گره | نقش عملکردی | گره(های) ورودی | گره(های) خروجی |
|---|---|---|---|---|
Manual Trigger | n8n-nodes-base.manualTrigger | شروع ورود فایل | - | Get All Files |
Get All Files | n8n-nodes-base.supabase | بازیابی رکوردهای فایل موجود | Manual Trigger | Aggregate |
Aggregate | n8n-nodes-base.aggregate | ادغام رکوردهای فایل | Get All Files | Get All Files from Storage |
Get All Files from Storage | n8n-nodes-base.httpRequest | واکشی فایلها از ذخیرهسازی Supabase | Aggregate | Loop Over Items |
Loop Over Items | n8n-nodes-base.splitInBatches | پردازش فایلها یکی یکی | Get All Files from Storage | If New File |
If New File | n8n-nodes-base.if | فیلتر کردن فایلهای پردازش شده/جایگزین | Loop Over Items, Get All Files | Download File (True), Skip (False) |
Download File | n8n-nodes-base.httpRequest | دانلود محتوای فایل | If New File (True) | Switch File Type |
Switch File Type | n8n-nodes-base.switch | هدایت بر اساس نوع فایل (PDF/متن) | Download File | Extract PDF Content (PDF), Merge Content (Text) |
Extract PDF Content | n8n-nodes-base.extractFromFile | استخراج متن از PDF | Switch File Type (PDF) | Merge Content |
Merge Content | n8n-nodes-base.merge | یکپارچهسازی محتوای متنی | Switch File Type (Text), Extract PDF Content | Load Document |
Load Document | n8n-nodes-langchain.documentLoader | بارگیری متن با فراداده | Merge Content | Split Text into Chunks |
Split Text into Chunks | n8n-nodes-langchain.textSplitter | تقسیم متن به قطعات | Load Document | Generate Embeddings |
Generate Embeddings | n8n-nodes-langchain.embeddings | ایجاد بردارهای جاسازی | Split Text into Chunks | Insert into Vector Store |
Create File Record | n8n-nodes-base.supabase | علامتگذاری فایل به عنوان پردازش شده در جدول files Supabase | Loop Over Items | Insert into Vector Store |
Insert into Vector Store | n8n-nodes-langchain.vectorStoreSupabase | ذخیره بردارهای جاسازی در فروشگاه بردار Supabase | Generate Embeddings, Create File Record | - |
Setup Reminder | n8n-nodes-base.stickyNote | یادآوریهای پیکربندی | - | - |
Chat Message Trigger | n8n-nodes-langchain.chatTrigger | دریافت پیامهای چت کاربر | - | AI Agent |
AI Agent | n8n-nodes-langchain.agent | هماهنگسازی تولید پاسخ هوش مصنوعی | Chat Message Trigger, Vector Store Tool, OpenAI Chat Model | OpenAI Chat Model |
OpenAI Chat Model | n8n-nodes-langchain.chatModel | تولید پاسخهای چت | AI Agent | AI Agent |
Vector Store Tool | n8n-nodes-langchain.toolVectorStore | پرس و جو از فروشگاه بردار برای اسناد مرتبط | AI Agent | AI Agent |
Supabase Vector Store | n8n-nodes-langchain.vectorStoreSupabase | رابط برای پرس و جوهای فروشگاه بردار Supabase | Vector Store Tool | Vector Store Tool |
OpenAI Embeddings | n8n-nodes-langchain.embeddings | تولید بردارهای جاسازی برای جستجو (داخلی) | Vector Store Tool | Vector Store Tool |
Setup Reminder | n8n-nodes-base.stickyNote | یادآوریهای پیکربندی | - | - |
Nodeهای استفادهشده
سوالات متداول
این گردش کار n8n چه کاری انجام میدهد؟▾
این گردش کار به شما امکان میدهد تا با فایلهای ذخیره شده در Supabase Storage خود به زبان طبیعی مکالمه کنید. این سیستم اسناد را پردازش کرده، بردارهای جاسازی ایجاد میکند و سپس با استفاده از هوش مصنوعی به سوالات شما پاسخ میدهد.
چه فناوریهایی در این گردش کار استفاده شده است؟▾
این گردش کار از n8n برای اتوماسیون، Supabase Storage برای ذخیرهسازی فایل، OpenAI برای قابلیتهای هوش مصنوعی و LangChain برای پردازش زبان طبیعی و ایجاد بردارهای جاسازی استفاده میکند.
چگونه میتوانم این گردش کار را در نمونه n8n خود استفاده کنم؟▾
شما میتوانید این گردش کار را از طریق لینک ارائه شده در وبسایت Axeto.ai وارد نمونه n8n خود کنید. جزئیات دقیقتر در بخش "تجزیه و تحلیل گرههای دقیق" توضیح داده شده است.
این گردش کار برای چه کسانی مفید است؟▾
این گردش کار برای محققان، تحلیلگران، صاحبان کسبوکار و هر کسی که نیاز به دسترسی و درک سریع اطلاعات از مجموعههای بزرگ اسناد دارد، ایدهآل است.
workflowهای مرتبط
- ساخت عامل هوش مصنوعی خصوصی با Ollama، آب و هوا و ویکیپدیا د…Building Blocks
- اتوماسیون مدیریت پروژه با هوش مصنوعی و AirtableProduct
- ساخت پایگاه دانش با Google Docs، Discord و GPT-4o-mini در n…Support
- پردازش تصاویر و PDF با Gemini AI در n8n: ۵ روش کاربردیBuilding Blocks
- ساخت محتوا با هوش مصنوعی برای ChatGPT، Gemini و Google با n…AI
- ادغام عامل هوش مصنوعی با Bubble و پروتکل MCPBuilding Blocks
