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

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

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

دانلود workflow

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

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

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

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

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

این رویکرد با اجازه دادن به تعاملات طبیعی‌تر و مکالمه‌ای با چت‌بات هوش مصنوعی شما، تجربه کاربری را بهبود می‌بخشد.

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

---

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

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

1. دریافت پیام: پیام‌های ورودی تلگرام را از طریق یک تریگر Webhook دریافت می‌کند.

2. بافر کردن پیام‌های ورودی: پیام‌ها را به طور موقت ذخیره کرده و منتظر جمع‌آوری پیام‌های اضافی از همان کاربر می‌ماند.

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

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

---

تجزیه و تحلیل گره‌های دقیق

۱. دریافت پیام

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

* Telegram Trigger (نوع گره: n8n-nodes-base.telegramTrigger)

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

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

* ورودی: داده‌های وب‌هوک ورودی از تلگرام.

* خروجی: بار داده JSON پیام تلگرام دریافتی.

* ملاحظات: اطمینان حاصل کنید که URL وب‌هوک شما به درستی در تلگرام پیکربندی شده و قابل دسترسی است.

۲. بافر کردن پیام‌های ورودی

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

* Add to Queued Messages (نوع گره: n8n-nodes-base.supabase)

* نقش: جزئیات پیام ورودی را در یک جدول PostgreSQL Supabase (message_queue) درج می‌کند.

* پیکربندی: chat.id تلگرام را به user_id، text را به message و message_id را به message_id نگاشت می‌کند.

* عبارات:

* user_id: ={{ $json.message.chat.id }}

* message: ={{ $json.message.text }}

* message_id: ={{ $json.message.message_id }}

* ورودی: خروجی از Telegram Trigger.

* خروجی: تأیید درج در پایگاه داده.

* پیش‌نیازها: یک پروژه Supabase با جدول message_queue (ستون‌ها: user_id (integer/bigint)، message (text)، message_id (bigint)، created_at (timestamp with timezone، پیش‌فرض now())).

* Wait 10 Seconds (نوع گره: n8n-nodes-base.wait)

* نقش: اجرای گردش کار را برای مدت زمان مشخصی متوقف می‌کند تا امکان دریافت پیام‌های اضافی از همان کاربر فراهم شود.

* پیکربندی: Wait Amount را روی 10 ثانیه تنظیم کنید. می‌توانید این مقدار را برای تغییر پنجره بافر تنظیم کنید.

* ورودی: خروجی از Add to Queued Messages.

* خروجی: داده‌ها را پس از تأخیر به جلو منتقل می‌کند.

* Get Queued Messages (نوع گره: n8n-nodes-base.supabase)

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

* پیکربندی: از یک کوئری SELECT در جدول message_queue با فیلتر بر اساس user_id استفاده می‌کند.

* عبارت (فیلتر): user_id برابر است با ={{ $('Telegram Trigger').item.json.message.chat.id }}.

* ورودی: خروجی از Wait 10 Seconds.

* خروجی: آرایه‌ای از پیام‌ها برای کاربر.

* Sort by Message ID (نوع گره: n8n-nodes-base.sort)

* نقش: پیام‌های بازیابی شده را به ترتیب زمانی بر اساس message_id مرتب می‌کند تا ترتیب صحیح مکالمه تضمین شود.

* پیکربندی: بر اساس فیلد message_id در ترتیب صعودی مرتب می‌کند.

* ورودی: خروجی از Get Queued Messages.

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

* Check Most Recent Message (نوع گره: n8n-nodes-base.if)

* نقش: بررسی می‌کند که آیا آخرین پیام بازیابی شده از صف، واقعاً جدیدترین پیامی است که در این اجرای گردش کار دریافت شده است. این کار از پردازش زودهنگام در صورت دریافت پیام‌ها با کمی ترتیب نامناسب یا کوتاه بودن دوره انتظار جلوگیری می‌کند.

* پیکربندی:

* مقدار چپ: ={{ $input.last().json.message_id }} ( message_id آخرین مورد در لیست مرتب شده).

* شرط: Equal

* مقدار راست: ={{ $('Telegram Trigger').item.json.message.message_id }} ( message_id پیام ورودی فعلی).

* ورودی: خروجی از Sort by Message ID.

* خروجی:

* شاخه True: به حذف پیام‌های در صف و ارسال به هوش مصنوعی ادامه می‌دهد.

* شاخه False: گره No Operation را فعال می‌کند.

* No Operation, do nothing (نوع گره: n8n-nodes-base.noOp)

* نقش: یک گره جایگزین که به صراحت کاری انجام نمی‌دهد. در اینجا برای شاخه false گره If استفاده می‌شود و نشان می‌دهد که در صورت عدم برآورده شدن شرط، هیچ اقدام بیشتری نباید انجام شود.

* ورودی: شاخه False از Check Most Recent Message.

* خروجی: ندارد.

۳. پردازش پیام‌های تجمیع‌شده با دستیار هوش مصنوعی

  • هدف: این بخش پیام‌های جمع‌آوری شده را برای هوش مصنوعی آماده می‌کند، پاسخی تولید می‌کند و تاریخچه مکالمه را مدیریت می‌کند.
  • گره‌ها:

* Delete Queued Messages (نوع گره: n8n-nodes-base.supabase)

* نقش: پیام‌های پردازش شده را از جدول message_queue پاک می‌کند تا از پردازش مجدد جلوگیری شود.

* پیکربندی: از یک کوئری DELETE در جدول message_queue با فیلتر بر اساس user_id استفاده می‌کند.

* عبارت (فیلتر): user_id برابر است با ={{ $json.user_id }} (با فرض اینکه user_id از شاخه True گره Check Most Recent Message عبور کرده است).

* ورودی: شاخه True از Check Most Recent Message.

* خروجی: تأیید حذف از پایگاه داده.

* Aggregate (نوع گره: n8n-nodes-base.aggregate)

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

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

* ورودی: خروجی از Delete Queued Messages.

* خروجی: آرایه‌ای که هر عنصر آن یک رشته پیام است.

* AI Agent (نوع گره: @n8n/n8n-nodes-langchain.agent)

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

* پیکربندی:

* Input Text: ={{ $json.message.join(String.fromCharCode(10)) }} - پیام‌های تجمیع شده را به یک رشته واحد، جدا شده با کاراکترهای خط جدید، پیوند می‌دهد.

* Prompt Type: define (برای اعلان‌های سفارشی).

* LLM: به گره OpenAI Chat Model متصل می‌شود.

* Memory: به گره Postgres Chat Memory متصل می‌شود.

* ورودی: خروجی از Aggregate.

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

* پیش‌نیازها: گره‌های Langchain نصب شده (npm install @n8n/n8n-nodes-langchain).

* OpenAI Chat Model (نوع گره: @n8n/n8n-nodes-langchain.lmChatOpenAi)

* نقش: قابلیت‌های مدل زبان (مانند GPT-4o-mini) را برای AI Agent فراهم می‌کند.

* پیکربندی: مدل OpenAI مورد نظر خود را انتخاب کنید (به عنوان مثال، gpt-4o-mini).

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

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

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

* Postgres Chat Memory (نوع گره: @n8n/n8n-nodes-langchain.memoryPostgresChat)

* نقش: با ذخیره و بازیابی نوبت‌های چت از یک پایگاه داده PostgreSQL، تاریخچه مکالمه را مدیریت می‌کند. این تضمین می‌کند که هوش مصنوعی از تعاملات قبلی در همان جلسه چت، زمینه لازم را دارد.

* پیکربندی:

* Session Key: ={{ $('Telegram Trigger').item.json.message.chat.id }} - از شناسه چت تلگرام برای شناسایی منحصر به فرد جلسه مکالمه استفاده می‌کند.

* Session ID Type: Custom key.

* اعتبارنامه‌ها: جزئیات اتصال PostgreSQL شما را الزامی می‌کند (سازگار با Supabase).

* ورودی: به عنوان ورودی حافظه برای گره AI Agent استفاده می‌شود.

* خروجی: زمینه تاریخچه چت را به AI Agent ارائه می‌دهد.

۴. ارسال پاسخ

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

* Reply (نوع گره: n8n-nodes-base.telegram)

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

* پیکربندی:

* Text: ={{ $json.output }} (پاسخ از گره AI Agent).

* Chat ID: ={{ $('Telegram Trigger').item.json.message.chat.id }} (شناسه چتی که پیام از آنجا نشأت گرفته است).

* اعتبارنامه‌ها: توکن ربات تلگرام شما را الزامی می‌کند.

* ورودی: خروجی از AI Agent.

* خروجی: تأیید ارسال پیام.

---

جدول خلاصه

نام نود (Node Name)نوع نود (Node Type)نقش عملکردی (Functional Role)نود(های) ورودی (Input Node(s))نود(های) خروجی (Output Node(s))یادداشت چسبان (Sticky Note)
Telegram Triggern8n-nodes-base.telegramTriggerدریافت پیام‌های تلگرام ورودی(Webhook)Add to Queued Messages## ۱. دریافت پیام
Add to Queued Messagesn8n-nodes-base.supabaseذخیره پیام‌های ورودی در SupabaseTelegram TriggerWait 10 Seconds## ۲. بافر کردن پیام‌های ورودی
Wait 10 Secondsn8n-nodes-base.waitانتظار برای بافر کردن پیام‌های اضافیAdd to Queued MessagesGet Queued Messagesتغییر: برای تغییر پنجره بافر، Wait Amount را تنظیم کنید.
Get Queued Messagesn8n-nodes-base.supabaseبازیابی تمام پیام‌های صف برای کاربرWait 10 SecondsSort by Message ID## ۲. بافر کردن پیام‌های ورودی
Sort by Message IDn8n-nodes-base.sortمرتب‌سازی پیام‌ها به ترتیب زمانی بر اساس message_idGet Queued MessagesCheck Most Recent Message## ۲. بافر کردن پیام‌های ورودی
Check Most Recent Messagen8n-nodes-base.ifبررسی اینکه آیا آخرین پیام، پیام فعلی استSort by Message IDDelete Queued Messages (True), No Operation (False)## ۲. بافر کردن پیام‌های ورودی
No Operation, do nothingn8n-nodes-base.noOpجایگزین برای شرط 'false'Check Most Recent Message (False)-## ۲. بافر کردن پیام‌های ورودی
Delete Queued Messagesn8n-nodes-base.supabaseپاک کردن پیام‌های پردازش شده از صفCheck Most Recent Message (True)Aggregate## ۳. دستیار هوش مصنوعی
Aggregaten8n-nodes-base.aggregateترکیب متن پیام‌ها در یک رشته واحدDelete Queued MessagesAI Agent## ۳. دستیار هوش مصنوعی
AI Agent@n8n/n8n-nodes-langchain.agentپردازش پیام‌های تجمیع شده با هوش مصنوعی و حافظهAggregateReply## ۳. دستیار هوش مصنوعی
OpenAI Chat Model@n8n/n8n-nodes-langchain.lmChatOpenAiارائه مدل زبان برای AI Agent(متصل به AI Agent)(متصل به AI Agent)## ۳. دستیار هوش مصنوعی
Postgres Chat Memory@n8n/n8n-nodes-langchain.memoryPostgresChatمدیریت تاریخچه مکالمه در PostgreSQL(متصل به AI Agent)(متصل به AI Agent)## ۳. دستیار هوش مصنوعی
Replyn8n-nodes-base.telegramارسال پاسخ هوش مصنوعی به کاربر تلگرامAI Agent(پایان Workflow)## ۴. ارسال پاسخ

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

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

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

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

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

شما به یک پروژه Supabase با یک جدول `message_queue` نیاز دارید و ربات تلگرام شما باید با توکن صحیح پیکربندی شده و URL وب‌هوک آن فعال باشد.

چگونه می‌توان پنجره بافر پیام را تنظیم کرد؟

پنجره بافر پیام را می‌توان با تنظیم مقدار گره `Wait 10 Seconds` (مثلاً تغییر آن به 15 ثانیه) تنظیم کرد تا زمان بیشتری برای جمع‌آوری پیام‌های اضافی در نظر گرفته شود.

workflowهای مرتبط

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