ساخت ربات تلگرام عامل با LangChain و DALL-E 3 در n8n

ساخت ربات تلگرام عامل با LangChain و DALL-E 3 در n8n

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

دانلود workflow

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

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

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

ربات هوش مصنوعی تلگرام عامل با LangChain و ابزارهای پیشرفته

این گردش کار نحوه ساخت یک ربات هوش مصنوعی تلگرام عامل با استفاده از گره‌های LangChain و ابزارهای جدید n8n را نشان می‌دهد. این قابلیت‌های پیشرفته هوش مصنوعی مکالمه‌ای را امکان‌پذیر می‌سازد، از جمله تولید تصویر از طریق DALL·E-3. ربات به پیام‌های کاربر در تلگرام گوش می‌دهد، آن‌ها را از طریق یک عامل هوش مصنوعی که ابزارها را به صورت پویا انتخاب می‌کند، پردازش می‌کند، زمینه مکالمه را حفظ می‌کند و با متن یا تصویر پاسخ می‌دهد.

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

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

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

1. دریافت ورودی: یک گره تریگر تلگرام پیام‌های جدید را برای شروع پردازش گوش می‌دهد.

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

3. اجرای مدل زبانی: یک مدل چت OpenAI GPT-4o پاسخ‌های آگاه از زمینه را تولید می‌کند.

4. مدیریت حافظه: یک گره حافظه بافر پنجره‌ای (Window Buffer Memory) زمینه مکالمه را برای هر جلسه کاربر حفظ می‌کند.

5. ابزار تولید تصویر: یک ابزار درخواست HTTP (HTTP Request) برای تولید تصاویر در صورت تقاضا، API DALL·E-3 OpenAI را فراخوانی می‌کند.

6. ابزار ارسال تصویر تلگرام: یک ابزار گره تلگرام تصاویر تولید شده را به کاربران ارسال می‌کند.

7. ارسال پاسخ نهایی: یک گره ارسال تلگرام پاسخ متنی نهایی را به کاربر تحویل می‌دهد.

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

تحلیل گره به گره

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

  • گره: Listen for incoming events
  • نوع: n8n-nodes-base.telegramTrigger
  • نقش: این گره به عنوان نقطه ورود عمل می‌کند و به تمام به‌روزرسانی‌های دریافتی (پیام‌ها، دستورات و غیره) از یک چت تلگرام پیکربندی شده گوش می‌دهد. این گره اجرای گردش کار را برای هر رویداد جدید فعال می‌کند.
  • پیکربندی:

updates: برای ثبت تمام انواع به‌روزرسانی، روی [""] تنظیم شده است.

* credentials: از اعتبارنامه‌های API تلگرام با نام "Chat & Sound" استفاده می‌کند.

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

  • ورودی: به‌روزرسانی‌های خارجی تلگرام از طریق وب‌هوک.
  • خروجی: یک شیء JSON حاوی جزئیات پیام، از جمله اطلاعات چت و کاربر را منتشر می‌کند.
  • ملاحظات: از صحت اعتبارنامه‌های API تلگرام و پیکربندی URL وب‌هوک اطمینان حاصل کنید. به محدودیت‌های نرخ API تلگرام و مجوزهای ربات توجه داشته باشید.

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

  • گره: AI Agent
  • نوع: @n8n/n8n-nodes-langchain.agent
  • نقش: این گره اصلی هماهنگ‌کننده است. ورودی کاربر را تفسیر می‌کند، تصمیم می‌گیرد که آیا از یک مدل زبان یا یک ابزار خاص (مانند تولید تصویر) استفاده کند و جریان کلی مکالمه را مدیریت می‌کند.
  • پیکربندی:

* input_text: از پیام تلگرام دریافتی نگاشت شده است: ={{ $json.message.text }}.

* system_message: قالبی که شامل یک پیام خوش‌آمدگویی شخصی‌سازی شده با استفاده از نام کوچک کاربر است: "You are a helpful assistant. You are communicating with a user named {{ $json.message.from.first_name }}. Address the user by name every time. If the user asks for an image, always send the link to the image in the final reply."

* promptType: برای امکان تعریف اعلان‌های سفارشی، روی define تنظیم شده است.

  • ورودی: JSON پیام تلگرام را از گره تریگر دریافت می‌کند.
  • خروجی:

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

* خروجی برای فراخوانی ابزار، که به گره‌های مدل زبان، حافظه و ابزار هدایت می‌شود.

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

۳. اجرای مدل زبان

  • گره: OpenAI Chat Model
  • نوع: @n8n/n8n-nodes-langchain.lmChatOpenAi
  • نقش: این گره از مدل GPT-4o OpenAI برای تولید پاسخ‌های متنی مکالمه‌ای آگاه از زمینه استفاده می‌کند.
  • پیکربندی:

* model: gpt-4o

* temperature: 0.7 (تعادل بین خلاقیت و انسجام).

* frequency_penalty: 0.2 (به کاهش خروجی تکراری کمک می‌کند).

* credentials: از اعتبارنامه‌های API OpenAI با نام "Ted's Tech Talks OpenAi" استفاده می‌کند.

  • ورودی: اعلان و زمینه مکالمه را از گره AI Agent دریافت می‌کند.
  • خروجی: متن تولید شده را به گره AI Agent برمی‌گرداند.
  • ملاحظات: استفاده از API، احراز هویت و قطعی‌های احتمالی شبکه را نظارت کنید.

۴. مدیریت حافظه

  • گره: Window Buffer Memory
  • نوع: @n8n/n8n-nodes-langchain.memoryBufferWindow
  • نقش: این گره با ذخیره ۱۰ پیام آخر مکالمه، زمینه مکالمه را حفظ می‌کند و گفتگوهای حالت‌دار را برای هر کاربر امکان‌پذیر می‌سازد.
  • پیکربندی:

* session_key: به طور پویا برای شناسایی منحصر به فرد هر جلسه چت تولید می‌شود: =chat_with_{{ $('Listen for incoming events').first().json.message.chat.id }}.

* memory_key: به طور پیش‌فرض chat_history است.

* k: برای ذخیره ۱۰ تعامل آخر، روی 10 تنظیم شده است.

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

۵. ابزار تولید تصویر

  • گره: Generate image in Dalle
  • نوع: @n8n/n8n-nodes-langchain.toolHttpRequest
  • نقش: این گره به عنوان ابزاری برای فراخوانی API DALL·E-3 OpenAI برای تولید تصویر در صورت درخواست کاربر پیکربندی شده است.
  • پیکربندی:

* url: https://api.openai.com/v1/images/generations

* method: POST

* authentication: از اعتبارنامه‌های API OpenAI از پیش پیکربندی شده ("Ted's Tech Talks OpenAi") استفاده می‌کند.

* body_parameters:

* model: dall-e-3

* prompt: به طور پویا از طریق عامل هوش مصنوعی از ورودی کاربر منتقل می‌شود.

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

  • ورودی: در صورت تصمیم عامل هوش مصنوعی برای استفاده از این ابزار، اعلان تصویر را از گره AI Agent دریافت می‌کند.
  • خروجی: JSON پاسخ تولید تصویر، از جمله URL(های) تصویر(های) تولید شده را برمی‌گرداند. این خروجی معمولاً توسط عامل هوش مصنوعی پردازش می‌شود.
  • ملاحظات: سهمیه‌های API را نظارت کنید، از معتبر بودن اعلان‌ها اطمینان حاصل کنید و خطاهای احتمالی شبکه یا کلیدهای API نامعتبر را مدیریت کنید.

۶. ابزار ارسال تصویر تلگرام

  • گره: Send back an image
  • نوع: n8n-nodes-base.telegramTool
  • نقش: این گره به عنوان ابزاری برای ارسال تصویر تولید شده به کاربر تلگرام پیکربندی شده است. این گره URL تصویر را از حافظه موقت عامل بازیابی می‌کند.
  • پیکربندی:

* file_source: URL تصویر را با استفاده از عبارت استخراج می‌کند: ={{ $fromAI("url", "a valid url of an image", "string", " ") }}. این عبارت فیلد url را از حافظه موقت عامل هوش مصنوعی می‌کشد و انتظار یک مقدار رشته‌ای را دارد.

* chat_id: به طور پویا از شناسه فرستنده پیام دریافتی تنظیم می‌شود.

* operation: sendDocument (روش API تلگرام برای ارسال فایل‌ها).

* credentials: از اعتبارنامه‌های API تلگرام با نام "Chat & Sound" استفاده می‌کند.

  • ورودی: URL تصویر را از خروجی ابزار گره AI Agent دریافت می‌کند.
  • خروجی: کنترل را به گره AI Agent برمی‌گرداند.
  • ملاحظات: اطمینان حاصل کنید که URL استخراج شده معتبر است. خطاهای احتمالی API تلگرام در حین آپلود یا مشکلات مربوط به محدودیت‌های اندازه فایل را مدیریت کنید.

۷. ارسال پاسخ نهایی

  • گره: Send final reply
  • نوع: n8n-nodes-base.telegram
  • نقش: این گره پاسخ متنی نهایی تولید شده توسط عامل هوش مصنوعی را به کاربر تلگرام ارسال می‌کند.
  • پیکربندی:

* text: از خروجی نهایی عامل هوش مصنوعی استفاده می‌کند: ={{ $json.output }}.

* chatId: به طور پویا توسط شناسه فرستنده از گره تریگر تلگرام تعیین می‌شود.

* credentials: از اعتبارنامه‌های API تلگرام با نام "Chat & Sound" استفاده می‌کند.

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

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

جدول خلاصه

نام نود (Node Name)نوع نود (Node Type)نقش عملکردی (Functional Role)نود(های) ورودی (Input Node(s))نود(های) خروجی (Output Node(s))یادداشت چسبان (Sticky Note)
Listen for incoming eventsn8n-nodes-base.telegramTriggerنقطه ورود، گوش دادن به پیام‌های تلگرامAI Agent
AI Agent@n8n/n8n-nodes-langchain.agentهماهنگ‌کننده پردازش هوش مصنوعی و استفاده از ابزارهاListen for incoming eventsSend final reply, Send back an image, OpenAI Chat Model, Window Buffer Memory, Generate image in Dalle
OpenAI Chat Model@n8n/n8n-nodes-langchain.lmChatOpenAiتولید پاسخ‌های مکالمه‌ای GPT-4oAI AgentAI Agent
Window Buffer Memory@n8n/n8n-nodes-langchain.memoryBufferWindowحفظ زمینه مکالمه برای هر جلسه کاربرAI AgentAI Agent
Generate image in Dalle@n8n/n8n-nodes-langchain.toolHttpRequestفراخوانی API DALL·E-3 برای تولید تصاویرAI AgentAI Agent## تولید تصویر با Dall-E-3 و ارسال آن از طریق تلگرام
Send back an imagen8n-nodes-base.telegramToolارسال تصویر تولید شده به عنوان سند تلگرامAI AgentAI Agent## تولید تصویر با Dall-E-3 و ارسال آن از طریق تلگرام
Send final replyn8n-nodes-base.telegramارسال پاسخ متنی نهایی به کاربر تلگرامAI Agent
Sticky Noten8n-nodes-base.stickyNoteیادداشت مستندسازی## تولید تصویر با Dall-E-3 و ارسال آن از طریق تلگرام

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

برای بازسازی این گردش کار از ابتدا:

1. افزودن نود Trigger:

* نوع نود: Telegram Trigger (n8n-nodes-base.telegramTrigger)

* اعتبارنامه‌های API تلگرام و تنظیمات Webhook خود را پیکربندی کنید.

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

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

* آن را به نود Trigger متصل کنید.

* input_text، system_message و promptType را همانطور که در بالا توضیح داده شد، پیکربندی کنید.

3. افزودن نود Language Model:

* نوع نود: LangChain OpenAI Chat Model (@n8n/n8n-nodes-langchain.lmChatOpenAi)

* آن را از نود AI Agent متصل کنید.

* مدل (gpt-4o)، دما (temperature)، جریمه فرکانس (frequency penalty) و اعتبارنامه‌های API OpenAI را پیکربندی کنید.

4. افزودن نود Memory:

* نوع نود: LangChain Memory Buffer Window (@n8n/n8n-nodes-langchain.memoryBufferWindow)

* آن را از نود AI Agent متصل کنید.

* session_key و k (اندازه پنجره حافظه) را پیکربندی کنید.

5. افزودن نود ابزار تولید تصویر:

* نوع نود: LangChain HTTP Request Tool (@n8n/n8n-nodes-langchain.toolHttpRequest)

* آن را از نود AI Agent متصل کنید.

* پارامترهای URL، متد (method)، احراز هویت (authentication) و بدنه (body) را برای API DALL·E-3 پیکربندی کنید. یک tool_description توصیفی اضافه کنید.

6. افزودن نود ابزار ارسال تصویر تلگرام:

* نوع نود: Telegram Tool (n8n-nodes-base.telegramTool)

* آن را از نود AI Agent متصل کنید.

* عبارت file_source، chat_id، عملیات (sendDocument) و اعتبارنامه‌های API تلگرام را پیکربندی کنید.

7. افزودن نود پاسخ نهایی:

* نوع نود: Telegram Send (n8n-nodes-base.telegram)

* آن را از نود AI Agent متصل کنید.

* محتوای text را با استفاده از ={{ $json.output }}، chatId و اعتبارنامه‌های API تلگرام پیکربندی کنید. onError را روی Continue تنظیم کنید.

به یاد داشته باشید که اعتبارنامه‌های API خود را هم برای تلگرام و هم برای OpenAI در n8n تنظیم کنید.

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

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

این گردش کار n8n چه قابلیت‌هایی دارد؟

این گردش کار به شما امکان می‌دهد یک ربات تلگرام عامل بسازید که پیام‌های کاربر را پردازش می‌کند، زمینه مکالمه را حفظ می‌کند، از مدل‌های زبانی مانند GPT-4o استفاده می‌کند و قادر به تولید تصویر با DALL-E 3 است.

چگونه ربات زمینه مکالمه را حفظ می‌کند؟

از گره "Window Buffer Memory" در LangChain استفاده می‌شود تا تاریخچه مکالمات قبلی با هر کاربر ذخیره شود و ربات بتواند پاسخ‌های آگاه از زمینه ارائه دهد.

چگونه ربات تصاویر را تولید می‌کند؟

هنگامی که کاربر درخواست تصویر می‌کند، عامل هوش مصنوعی از یک گره HTTP Request برای فراخوانی API DALL-E 3 استفاده می‌کند و سپس تصویر تولید شده از طریق تلگرام برای کاربر ارسال می‌شود.

چه ابزارهایی برای ساخت این ربات استفاده شده است؟

این گردش کار از گره‌های n8n برای تلگرام (تریگر و ارسال پیام)، گره‌های LangChain برای عامل، مدل زبانی و مدیریت حافظه، و یک گره HTTP Request برای تعامل با API DALL-E 3 استفاده می‌کند.

workflowهای مرتبط

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