عامل هوش مصنوعی برای چت با پایگاه داده Supabase/PostgreSQL

عامل هوش مصنوعی برای چت با پایگاه داده Supabase/PostgreSQL

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

دانلود workflow

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

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

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

عامل هوش مصنوعی برای تعامل مکالمه‌ای با پایگاه داده Supabase/PostgreSQL

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

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

---

ساختار گردش کار

گردش کار به بلوک‌های منطقی مجزا سازماندهی شده است که هر کدام مسئول بخش خاصی از تعامل هستند:

1. دریافت ورودی: پیام‌های چت کاربر را دریافت می‌کند.

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

3. کاوش طرحواره پایگاه داده: اطلاعات ساختار پایگاه داده را در اختیار هوش مصنوعی قرار می‌دهد.

4. اجرای کوئری SQL: کوئری‌های SQL تولید شده را در برابر پایگاه داده شما اجرا می‌کند.

---

تشریح جزئیات نودها

۱. دریافت ورودی

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

  • نود: When chat message received

* نوع: n8n-nodes-base.chatTrigger (Langchain Chat Trigger)

* نقش: گوش دادن به پیام‌های ورودی چت از طریق یک وب‌هوک و ارسال آن‌ها برای پردازش.

* پیکربندی: تنظیمات پیش‌فرض؛ یک شناسه وب‌هوک منحصربه‌فرد هنگام راه‌اندازی اختصاص داده می‌شود.

* ورودی/خروجی: ورودی دریافت نمی‌کند؛ متن پیام چت و فراداده‌های مرتبط را خروجی می‌دهد.

* مشکلات احتمالی: مشکلات اتصال وب‌هوک، درخواست‌های با فرمت نادرست.

* نسخه: ۱.۱

۲. پردازش عامل هوش مصنوعی

این هسته اصلی گردش کار است، جایی که عامل هوش مصنوعی درخواست‌های کاربر را تفسیر می‌کند، کوئری‌های SQL تولید می‌کند و جریان مکالمه را مدیریت می‌کند.

  • نود: AI Agent

* نوع: @n8n/n8n-nodes-langchain.agent (Langchain Agent - openAiFunctionsAgent)

* نقش: دریافت ورودی کاربر، فراخوانی نودهای زبان و ابزار هوش مصنوعی، و هماهنگی تولید و اجرای کوئری‌های SQL.

* پیکربندی:

* ورودی متن (Text Input): به صورت پویا از تریگر چت با استفاده از عبارت زیر منبع‌دهی می‌شود: ={{ $('When chat message received').item.json.chatInput }}

* پیام سیستمی (System Message): برای تعریف شخصیت هوش مصنوعی به عنوان "دستیار پایگاه داده" با دستورالعمل‌هایی برای تولید و اجرای کوئری‌های SQL مطابق با درخواست‌های کاربر پیکربندی شده است.

* نوع عامل (Agent Type): روی openAiFunctionsAgent تنظیم شده است.

* ورودی: پیام چت را از نود When chat message received دریافت می‌کند.

* خروجی: ابزارهای هوش مصنوعی متصل (مانند کاوش طرحواره پایگاه داده و اجرای کوئری) و نودهای مدل زبان را فراخوانی می‌کند.

* موارد مرزی (Edge Cases):

* خطا در ارزیابی عبارت در صورت عدم وجود ورودی.

* محدودیت‌های نرخ (Rate limits) یا خطاهای API از مدل هوش مصنوعی.

* پرسش‌های غیرمنتظره یا مخرب کاربر که منجر به SQL نامعتبر می‌شود.

* نسخه: ۱.۶

  • نود: OpenAI Chat Model

* نوع: @n8n/n8n-nodes-langchain.lmChatOpenAi (Langchain LM Chat OpenAI)

* نقش: ارائه مدل تکمیل چت OpenAI زیربنایی که توسط عامل هوش مصنوعی استفاده می‌شود.

* پیکربندی: نیاز به اعتبارنامه‌های API OpenAI دارد (به عنوان مثال، پیکربندی شده به عنوان "OpenAi club").

* ورودی: توسط عامل هوش مصنوعی به عنوان مدل زبان آن (ai_languageModel) فراخوانی می‌شود.

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

* موارد مرزی (Edge Cases): کلیدهای API نامعتبر، خرابی شبکه، محدودیت‌های نرخ API.

* نسخه: ۱

۳. ابزارهای کاوش طرحواره پایگاه داده

این نودها فراداده‌های ضروری در مورد ساختار پایگاه داده شما را در اختیار عامل هوش مصنوعی قرار می‌دهند و به آن امکان می‌دهند کوئری‌های SQL دقیقی بسازد.

  • نود: DB Schema

* نوع: n8n-nodes-base.postgresTool (Postgres Tool)

* نقش: اجرای یک کوئری SQL برای بازیابی لیستی از تمام جداول کاربر در طرحواره public پایگاه داده شما.

* پیکربندی:

* کوئری SQL (SQL Query):

```sql

SELECT table_schema, table_name

FROM information_schema.tables

WHERE table_type = 'BASE TABLE' AND table_schema = 'public';

```

* اعتبارنامه‌ها (Credentials): با استفاده از اعتبارنامه‌های Supabase PostgreSQL شما (به عنوان مثال، "Postgres 5minai") متصل می‌شود.

* ورودی: توسط عامل هوش مصنوعی به عنوان یک ابزار (ai_tool) فراخوانی می‌شود.

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

* موارد مرزی (Edge Cases): مجوزهای ناکافی، خطاهای اتصال پایگاه داده، طرحواره خالی.

* نسخه: ۲.۵

  • نود: Get table definition

* نوع: n8n-nodes-base.postgresTool (Postgres Tool)

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

* پیکربندی:

* کوئری SQL (SQL Query):

```sql

SELECT

c.column_name,

c.data_type,

c.is_nullable,

c.column_default,

tc.constraint_type,

ccu.table_name AS referenced_table,

ccu.column_name AS referenced_column

FROM

information_schema.columns c

LEFT JOIN

information_schema.key_column_usage kcu

ON c.table_name = kcu.table_name

AND c.column_name = kcu.column_name

LEFT JOIN

information_schema.table_constraints tc

ON kcu.constraint_name = tc.constraint_name

AND tc.constraint_type = 'FOREIGN KEY'

LEFT JOIN

information_schema.constraint_column_usage ccu

ON tc.constraint_name = ccu.constraint_name

WHERE

c.table_name = '{{ $fromAI("table_name") }}' -- نام جدول ارائه شده توسط هوش مصنوعی

AND c.table_schema = 'public' -- اطمینان از طرحواره صحیح

ORDER BY

c.ordinal_position;

```

* نام جدول (Table Name): به صورت پویا توسط عامل هوش مصنوعی با استفاده از عبارت {{ $fromAI("table_name") }} ارائه می‌شود.

* اعتبارنامه‌ها (Credentials): از همان اعتبارنامه‌های Supabase PostgreSQL نود DB Schema استفاده می‌کند.

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

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

* موارد مرزی (Edge Cases): ورودی نام جدول نامعتبر یا گمشده، خطاهای مجوز، خطاهای اجرای SQL.

* نسخه: ۲.۵

۴. اجرای کوئری SQL

این بلوک مسئول اجرای کوئری‌های SQL تولید شده توسط عامل هوش مصنوعی و بازیابی داده‌ها است.

  • نود: Run SQL Query

* نوع: n8n-nodes-base.postgresTool (Postgres Tool)

* نقش: اجرای کوئری‌های SQL سفارشی تولید شده توسط عامل هوش مصنوعی در برابر پایگاه داده Supabase PostgreSQL شما. همچنین از عملگرهای JSON PostgreSQL (مانند ->>) برای استخراج فیلدهای JSON پشتیبانی می‌کند.

* پیکربندی:

* کوئری SQL (SQL Query): به صورت پویا از خروجی عامل هوش مصنوعی با استفاده از عبارت زیر منتقل می‌شود: {{ $fromAI("query","SQL query for PostgreSQL DB in Supabase") }}

* اعتبارنامه‌ها (Credentials): از همان اعتبارنامه‌های Supabase PostgreSQL استفاده می‌کند.

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

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

* موارد مرزی (Edge Cases): کوئری‌های SQL بدشکل یا ناامن، مهلت زمانی کوئری، خطاهای عدم دسترسی (permission denied)، مجموعه‌های نتیجه خالی.

* نسخه: ۲.۵

---

جدول خلاصه گردش کار

نام گره (Node Name)نوع گره (Node Type)نقش عملکردی (Functional Role)گره(های) ورودی (Input Node(s))گره(های) خروجی (Output Node(s))یادداشت چسبان (Sticky Note)
When chat message receivedchatTriggerدریافت پیام‌های چت(Webhook trigger)AI Agent
AI Agentagentپردازش اصلی هوش مصنوعی و تولید SQLWhen chat message receivedDB Schema, Get table definition, Run SQL Query, OpenAI Chat Modelتنظیم دقیق اعلان دستیار (Finetune the prompt of assistant)
OpenAI Chat ModellmChatOpenAiارائه تکمیل OpenAI برای عاملAI Agent (ai_languageModel)AI Agent
DB SchemapostgresToolدریافت لیست تمام جداول در پایگاه دادهAI Agent (ai_tool)AI Agent
Get table definitionpostgresToolبازیابی فراداده ستون برای یک جدولAI Agent (ai_tool)AI Agent
Run SQL QuerypostgresToolاجرای کوئری‌های SQL تولید شده توسط هوش مصنوعیAI Agent (ai_tool)AI Agent
Sticky Note3stickyNoteیادآوری برای جایگزینی اعتبارنامه‌های پایگاه دادهجایگزینی رمز عبور و نام کاربری برای Supabase (Replace password and username for Supabase)
Sticky Note5stickyNoteدستورالعمل‌های راه‌اندازی و آماده‌سازیمراحل راه‌اندازی - حساب‌ها، اتصال و خلاصه ابزارهای گردش کار (Set up steps - accounts, connection, and workflow tools summary)
Sticky Note6stickyNoteمعرفی و توضیحات گردش کارهدف گردش کار، نویسنده و قابلیت‌ها (Workflow purpose, author, and capabilities)
Sticky Note7stickyNoteپیوند به راهنمای ویدیویی راه‌اندازی... یا ویدیوی راه‌اندازی را تماشا کنید [20 دقیقه] https://www.youtube.com/watch?v=-GgKzhCNxjk

---

بازسازی گردش کار

برای ساخت این گردش کار از ابتدا، مراحل زیر را دنبال کنید:

1. افزودن نود When chat message received:

* نوع: chatTrigger

* Webhook را برای دریافت ورودی چت پیکربندی کنید.

* آن را روی بوم قرار دهید.

2. افزودن نود AI Agent:

* نوع: agent

* پیکربندی:

* ورودی متن (Text Input): ={{ $('When chat message received').item.json.chatInput }}

* عامل (Agent): openAiFunctionsAgent را انتخاب کنید.

* پیام سیستمی (System Message):

```

شما دستیار پایگاه داده هستید. شما باید کوئری‌ها را در پایگاه داده مطابق با درخواست‌های کاربر اجرا کنید.

برای تجمیع داده‌ها و پاسخ به کاربر، کوئری SQL سفارشی را اجرا کنید.

برای تحلیل داده‌ها جهت پاسخگویی در صورت نیاز، همه داده‌ها را دریافت کنید.

```

* نوع اعلان (Prompt Type): Define

* نود When chat message received (خروجی اصلی) را به نود AI Agent (ورودی اصلی) متصل کنید.

3. افزودن نود OpenAI Chat Model:

* نوع: lmChatOpenAi

* اعتبارنامه‌ها (Credentials): اعتبارنامه API OpenAI خود را انتخاب یا ایجاد کنید (مثلاً "OpenAi club").

* خروجی ai_languageModel از نود AI Agent را به این نود متصل کنید.

4. افزودن نود DB Schema:

* نوع: postgresTool

* اعتبارنامه‌ها (Credentials): اعتبارنامه PostgreSQL خود برای Supabase را انتخاب یا ایجاد کنید (مثلاً "Postgres 5minai").

* کوئری SQL (SQL Query):

```sql

SELECT table_schema, table_name

FROM information_schema.tables

WHERE table_type = 'BASE TABLE' AND table_schema = 'public';

```

* عملیات (Operation): Execute Query

* این نود را به عنوان یک ابزار هوش مصنوعی از نود AI Agent (اتصال ai_tool) متصل کنید.

5. افزودن نود Get table definition:

* نوع: postgresTool

* اعتبارنامه‌ها (Credentials): از همان اعتبارنامه PostgreSQL Supabase استفاده کنید.

* کوئری SQL (SQL Query):

```sql

SELECT

c.column_name,

c.data_type,

c.is_nullable,

c.column_default,

tc.constraint_type,

ccu.table_name AS referenced_table,

ccu.column_name AS referenced_column

FROM

information_schema.columns c

LEFT JOIN

information_schema.key_column_usage kcu

ON c.table_name = kcu.table_name

AND c.column_name = kcu.column_name

LEFT JOIN

information_schema.table_constraints tc

ON kcu.constraint_name = tc.constraint_name

AND tc.constraint_type = 'FOREIGN KEY'

LEFT JOIN

information_schema.constraint_column_usage ccu

ON tc.constraint_name = ccu.constraint_name

WHERE

c.table_name = '{{ $fromAI("table_name") }}' -- نام جدول ارائه شده توسط هوش مصنوعی

AND c.table_schema = 'public' -- اطمینان از شمای صحیح

ORDER BY

c.ordinal_position;

```

* این نود را به عنوان یک ابزار هوش مصنوعی از نود AI Agent (اتصال ai_tool) متصل کنید.

6. افزودن نود Run SQL Query:

* نوع: postgresTool

* اعتبارنامه‌ها (Credentials): از همان اعتبارنامه PostgreSQL Supabase استفاده کنید.

* کوئری SQL (SQL Query): {{ $fromAI("query","SQL query for PostgreSQL DB in Supabase") }}

* عملیات (Operation): Execute Query

* این نود را به عنوان یک ابزار هوش مصنوعی از نود AI Agent (اتصال ai_tool) متصل کنید.

7. افزودن یادداشت‌های چسبان (Sticky Notes):

* یادداشت‌های چسبان برای اطلاعات حیاتی مانند راه‌اندازی اعتبارنامه پایگاه داده، نمای کلی گردش کار و هرگونه لینک مرتبط (مانند ویدیوی راه‌اندازی) اضافه کنید.

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

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

این گردش کار n8n چگونه به من کمک می‌کند تا با پایگاه داده خود تعامل داشته باشم؟

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

آیا برای استفاده از این گردش کار نیاز به دانش SQL دارم؟

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

چه ابزارهایی برای اجرای این گردش کار لازم است؟

شما به n8n، یک حساب Supabase با دسترسی به پایگاه داده PostgreSQL و یک کلید API OpenAI نیاز دارید. نودهای خاصی مانند `When chat message received`، `AI Agent`، `OpenAI Chat Model` و `postgresTool` در گردش کار استفاده می‌شوند.

workflowهای مرتبط

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