ساخت رشته X (توییتر) با GPT و تلگرام: اتوماسیون و تأیید

ساخت رشته X (توییتر) با GPT و تلگرام: اتوماسیون و تأیید

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

دانلود workflow

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

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

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

اتوماسیون ایجاد و انتشار رشته‌های X (توییتر) با GPT از طریق تلگرام و حلقه تأیید

این گردش کار، ایجاد و انتشار رشته‌های X (توییتر سابق) را با استفاده از مدل‌های GPT OpenAI خودکار می‌کند. این گردش کار با تلگرام برای ورودی کاربر، از جمله تبدیل صدا به متن، ادغام می‌شود و قبل از انتشار در X از طریق Blotato، یک حلقه تأیید را پیاده‌سازی می‌کند. این روش برای تولیدکنندگان محتوا که به دنبال ساده‌سازی فرآیند ارسال پست در X هستند، ایده‌آل است.

دسته‌بندی‌ها: رسانه‌های اجتماعی، چت‌بات هوش مصنوعی

پلتفرم: اتوماسیون X (توییتر) Axeto.ai

---

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

این گردش کار، ایجاد و انتشار رشته‌های X (توییتر سابق) را با استفاده از مدل‌های GPT OpenAI از طریق تعامل با تلگرام خودکار می‌کند. این گردش کار از ورودی صدا به متن پشتیبانی می‌کند و شامل یک حلقه تأیید ضروری قبل از انتشار است.

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

1. دریافت و تبدیل ورودی: ورودی کاربر را از تلگرام دریافت می‌کند و با تبدیل پیام‌های صوتی به متن، هم پیام‌های متنی و هم پیام‌های صوتی را مدیریت می‌کند.

2. ایجاد محتوا با هوش مصنوعی و پالایش تکراری: از مدل‌های GPT OpenAI با حافظه مکالمه‌ای برای پیش‌نویس یک رشته X ساختاریافته (تا ۵ بخش) بر اساس ورودی کاربر استفاده می‌کند. این امکان پالایش تعاملی را از طریق سوالات بعدی فراهم می‌کند.

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

4. انتشار در X از طریق Blotato: رشته تأیید شده را با استفاده از API Blotato در X منتشر می‌کند.

5. نظارت بر وضعیت انتشار و تأیید: وضعیت پست را از Blotato بررسی می‌کند و پیام‌های تأیید یا خطا را به کاربر در تلگرام بازمی‌گرداند.

---

۲. تحلیل گره به گره (Node Analysis)

۲.۱ دریافت و تبدیل ورودی

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

گره‌ها (Nodes):

  • شروع: پیام تلگرام (Start: Telegram Message)

* نوع: telegramTrigger

* نقش: نقطه ورود گردش کار (Workflow)، گوش دادن به پیام‌های دریافتی تلگرام (متنی یا صوتی).

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

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

* خروجی: بار داده JSON حاوی جزئیات پیام (داده‌های متنی یا صوتی).

* موارد مرزی (Edge Cases): پیام‌های ناقص یا نامعتبر، انواع رسانه‌های پشتیبانی نشده.

  • آماده‌سازی ورودی (Prepare Input)

* نوع: set

* نقش: استخراج محتوای متنی از JSON پیام تلگرام. اگر متنی وجود نداشته باشد (مثلاً پیام صوتی)، یک رشته خالی تنظیم می‌کند.

* عبارت (Expression): ={{ $json?.message?.text || "" }}

* ورودی: JSON پیام تلگرام از گره ماشه (Trigger Node).

* خروجی: یک شیء حاوی فیلد text برای پردازش‌های بعدی.

  • بررسی: آیا صوتی است؟ (Check: Is it a Voice?)

* نوع: if

* نقش: تشخیص اینکه آیا پیام دریافتی یک پیام صوتی است یا خیر، با بررسی خالی بودن فیلد text.

* شرط (Condition): $json.message.text خالی است.

* شاخه‌ها (Branches):

* درست (True): به پردازش ورودی صوتی می‌رود.

* نادرست (False): مستقیماً به پردازش ورودی متنی می‌رود.

* موارد مرزی: پیام‌هایی که نه متنی و نه صوتی هستند، پیام‌های خالی.

  • دریافت فایل صوتی (Get Voice File)

* نوع: telegram (منبع فایل - File Resource)

* نقش: دانلود فایل صوتی پیام صوتی از تلگرام با استفاده از شناسه فایل آن.

* ورودی: شناسه فایل صوتی استخراج شده از پیام تلگرام.

* خروجی: داده باینری فایل صوتی.

* موارد مرزی: فایل یافت نشد، خطاهای API تلگرام.

  • گفتار به متن (Speech to Text)

* نوع: openAiAudioTranscription

* نقش: رونویسی فایل صوتی دانلود شده به متن با استفاده از OpenAI Whisper.

* ورودی: داده باینری فایل صوتی.

* اعتبارنامه‌ها (Credentials): کلید API OpenAI.

* خروجی: متن رونویسی شده.

* موارد مرزی: کیفیت پایین صدا، خطاهای رونویسی، مهلت زمانی API (API timeouts).

  • یادداشت چسبان ۱ (Sticky Note1)

* نوع: stickyNote

* محتوا: "دریافت ورودی: دریافت پیام‌های تلگرام و تبدیل پیام‌های صوتی به متن با استفاده از OpenAI Whisper."

۲.۲ تولید محتوا با هوش مصنوعی و پالایش تکراری

این بلوک از مدل‌های GPT OpenAI برای تجزیه و تحلیل ورودی کاربر، ساختاردهی محتوا، و پیش‌نویس یک رشته X ۵ قسمتی استفاده می‌کند. این بخش با حفظ زمینه مکالمه، از پالایش تعاملی پشتیبانی می‌کند.

گره‌ها (Nodes):

  • مدل چت OpenAI (OpenAI Chat Model)

* نوع: langchainOpenAiChatModel

* نقش: فراهم کردن رابط برای مدل زبان GPT OpenAI جهت تولید و پالایش محتوا.

* پیکربندی: مدل روی "gpt-5" (یا جایگزین مناسبی مانند "gpt-4o") تنظیم شده است.

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

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

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

* موارد مرزی: خطاهای API، محدودیت نرخ (rate limiting)، عدم دسترسی به مدل.

  • حافظه بافر پنجره‌ای (Window Buffer Memory)

* نوع: langchainMemoryBufferWindow

* نقش: مدیریت زمینه مکالمه برای هر جلسه کاربر، امکان پالایش تکراری را فراهم می‌کند.

* پیکربندی: کلید جلسه معمولاً بر اساس شناسه کاربری تلگرام است؛ طول پنجره زمینه قابل تنظیم است (مثلاً ۱۰ پیام).

* ورودی/خروجی: تاریخچه مکالمه را به گره چت هوش مصنوعی (AI Chat Node) تغذیه می‌کند و آن را با پاسخ‌های جدید به‌روز می‌کند.

* موارد مرزی: سرریز حافظه، مدیریت نادرست شناسه جلسه.

  • پیش‌نویس و بازبینی پست با هوش مصنوعی (AI: Draft & Revise Post)

* نوع: langchainAgent

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

* پیکربندی:

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

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

* پیش‌نویس رشته (Thread Drafting): یک پیش‌نویس رشته ۵ قسمتی شامل قلاب‌ها (hooks)، روایت (narrative) و فراخوان به اقدام (calls-to-action) تولید می‌کند.

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

* ورودی: ورودی متنی (از تلگرام یا رونویسی) همراه با حافظه مکالمه.

* خروجی: خروجی JSON ساختاریافته یا متنی حاوی پیش‌نویس رشته یا سوالات شفاف‌سازی.

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

  • یادداشت چسبان ۲ (Sticky Note2)

* نوع: stickyNote

* محتوا: "تولید و پالایش محتوا با هوش مصنوعی: پیش‌نویس رشته‌های X با استفاده از GPT و امکان بازبینی تعاملی از طریق حافظه مکالمه."

۲.۳ تشخیص تأیید و نهایی‌سازی

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

گره‌ها (Nodes):

  • بررسی تأیید شده است؟ (Check if Approved)

* نوع: if

* نقش: تشخیص اینکه آیا خروجی هوش مصنوعی نشان‌دهنده تأیید کاربر است. این معمولاً با جستجوی کلمات کلیدی خاص یا ساختار JSON بررسی می‌شود.

* شرط: بررسی می‌کند که آیا خروجی هوش مصنوعی حاوی کلمات کلیدی تأیید (مانند "approved"، "publish") است یا با { شروع می‌شود (نشان‌دهنده ساختار JSON آماده برای استخراج).

* شاخه‌ها:

* درست (True): به استخراج متن نهایی پست می‌رود.

* نادرست (False): پیش‌نویس هوش مصنوعی را برای بررسی و تأیید کاربر به تلگرام بازمی‌گرداند.

* موارد مرزی: مثبت کاذب/منفی کاذب در تشخیص کلمات کلیدی، خروجی نامعتبر هوش مصنوعی.

  • تأیید: استخراج متن نهایی پست (Approval: Extract Final Post Text)

* نوع: code (JavaScript)

* نقش: تجزیه خروجی ساختاریافته هوش مصنوعی (که انتظار می‌رود JSON باشد) برای استخراج ۵ توییت نهایی شده.

* عملکرد: هرگونه کد یا متن اضافی را پاک می‌کند، JSON را به طور ایمن تجزیه می‌کند و tweet1 تا tweet5 را در فیلدهای جداگانه استخراج می‌کند.

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

* خروجی: فیلدهایی برای tweet1 تا tweet5.

* موارد مرزی: JSON گم شده یا نامعتبر، خطاهای تجزیه.

  • پیشنهاد پست یا درخواست تأیید (Post Suggestion Or Ask For Approval)

* نوع: telegram (ارسال پیام - Send Message)

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

* ورودی: متن خروجی هوش مصنوعی.

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

* موارد مرزی: خطاهای API تلگرام، عدم موفقیت در ارسال پیام.

  • یادداشت چسبان ۳ (Sticky Note3)

* نوع: stickyNote

* محتوا: "تأیید و نهایی‌سازی: تشخیص تأیید کاربر و استخراج محتوای نهایی توییت برای انتشار."

۲.۴ انتشار در X از طریق Blotato

این بلوک با استفاده از API Blotato، ارسال واقعی رشته تأیید شده به X را مدیریت می‌کند.

گره‌ها (Nodes):

  • ایجاد پست با Blotato (Create post with Blotato)

* نوع: blotato

* نقش: ارسال رشته ۵ قسمتی به X از طریق API Blotato.

* پیکربندی:

* پلتفرم روی "Twitter (X)" تنظیم شده است.

* حساب Blotato مناسب را انتخاب کنید.

* فیلدهای استخراج شده tweet1 تا tweet5 را به محتوا نگاشت کنید.

* اعتبارنامه‌ها: اعتبارنامه‌های API Blotato.

* ورودی: توییت‌های نهایی شده (tweet1 تا tweet5) از گره کد قبلی.

* خروجی: شناسه ارسال پست برای ردیابی وضعیت.

* موارد مرزی: خطاهای API، اعتبارنامه‌های نامعتبر، محدودیت‌های ارسال پست X.

  • ۵ ثانیه به Blotato بده :) (Give Blotat 5s :)

* نوع: wait

* نقش: معرفی یک تأخیر کوتاه (۵ ثانیه) برای پردازش ارسال توسط Blotato قبل از شروع نظرسنجی وضعیت.

* موارد مرزی: تأخیر ناکافی ممکن است منجر به نظرسنجی زودهنگام شود.

۲.۵ نظارت بر وضعیت انتشار و تأیید

این بخش نهایی، API Blotato را برای تأیید وضعیت پست نظرسنجی می‌کند و کاربر را در تلگرام از نتیجه مطلع می‌سازد.

گره‌ها (Nodes):

  • بررسی وضعیت پست (Check post status)

* نوع: blotato (عملیات دریافت - Get Operation)

* نقش: بازیابی وضعیت فعلی پست ارسال شده با استفاده از شناسه آن.

* ورودی: شناسه ارسال پست از گره "Create post with Blotato".

* خروجی: وضعیت پست (مانند "published"، "in-progress"، "error").

* موارد مرزی: خطاهای API، شناسه ارسال نامعتبر.

  • منتشر شده است؟ (Published?)

* نوع: if

* نقش: بررسی می‌کند که آیا وضعیت پست "published" است.

* شرط: {{ $json.status === "published" }}

* شاخه‌ها:

* درست (True): به ارسال پیام تأیید می‌رود.

* نادرست (False): به بررسی اینکه آیا وضعیت "in-progress" است می‌رود.

  • در حال انجام است؟ (In Progress?)

* نوع: if

* نقش: بررسی می‌کند که آیا وضعیت پست "in-progress" است.

* شرط: {{ $json.status === "in-progress" }}

* شاخه‌ها:

* درست (True): منتظر تأخیر دیگری می‌ماند و وضعیت را دوباره بررسی می‌کند.

* نادرست (False): فرض می‌کند وضعیت خطا است و به ارسال پیام خطا می‌رود.

* موارد مرزی: حلقه‌های بی‌نهایت اگر وضعیت هرگز تغییر نکند.

  • ۵ ثانیه دیگر به Blotato بده :) (Give Blotat other 5s :)

* نوع: wait

* نقش: اضافه کردن یک تأخیر دیگر قبل از بررسی مجدد وضعیت پست در صورتی که هنوز "in-progress" باشد.

* موارد مرزی: مشابه گره wait قبلی.

  • ارسال پیام تأیید (Send a confirmation message)

* نوع: telegram (ارسال پیام - Send Message)

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

* ورودی: شناسه چت تلگرام؛ URL عمومی پست منتشر شده (در صورت موجود بودن از پاسخ Blotato).

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

* موارد مرزی: خرابی API تلگرام.

  • ارسال پیام خطا (Send an error message)

* نوع: telegram (ارسال پیام - Send Message)

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

* ورودی: شناسه چت تلگرام.

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

* موارد مرزی: خرابی API تلگرام.

  • یادداشت چسبان ۴ (Sticky Note4)

* نوع: stickyNote

* محتوا: "نظارت بر وضعیت و تأیید: نظرسنجی Blotato برای وضعیت پست و اطلاع‌رسانی به کاربر در تلگرام."

---

۳. جدول خلاصه

نام نود (Node Name)نوع نود (Node Type)نقش کاربردی (Functional Role)نود(های) ورودی (Input Node(s))نود(های) خروجی (Output Node(s))محتوای یادداشت چسبان (Sticky Note Content)
Start: Telegram MessagetelegramTriggerنقطه ورود برای پیام‌های تلگرام-Prepare Input۱. دریافت ورودی: پیام‌های تلگرام را دریافت کرده و یادداشت‌های صوتی را با استفاده از OpenAI Whisper به متن تبدیل می‌کند.
Prepare Inputsetمتن را استخراج می‌کند یا رشته خالی تنظیم می‌کندStart: Telegram MessageCheck: Is it a Voice?
Check: Is it a Voice?ifتعیین می‌کند که ورودی صدا است یا متنPrepare InputGet Voice File, AI: Draft & Revise Post
Get Voice Filetelegramفایل صوتی صدا را دانلود می‌کندCheck: Is it a Voice? (true)Speech to Text
Speech to TextopenAiAudioTranscriptionصدای گفتار را به متن رونویسی می‌کندGet Voice FileAI: Draft & Revise Post
OpenAI Chat ModellangchainOpenAiChatModelرابط GPT برای تولید/اصلاحPrepare Input, Speech to TextAI: Draft & Revise Post۲. ایجاد محتوای هوش مصنوعی: با استفاده از GPT، رشته‌های X را پیش‌نویس کرده و امکان بازبینی تعاملی را از طریق حافظه مکالمه فراهم می‌کند.
Window Buffer MemorylangchainMemoryBufferWindowزمینه مکالمه را مدیریت می‌کندOpenAI Chat ModelOpenAI Chat Model
AI: Draft & Revise PostlangchainAgentحلقه پیش‌نویس و بازبینی هوش مصنوعی را هماهنگ می‌کندOpenAI Chat Model, Window Buffer MemoryCheck if Approved
Check if Approvedifکلمات کلیدی تأیید کاربر/ساختار JSON را تشخیص می‌دهدAI: Draft & Revise PostApproval: Extract Final Post Text, Post Suggestion Or Ask For Approval۳. تأیید و نهایی‌سازی: تأیید کاربر را تشخیص داده و محتوای نهایی توییت را برای انتشار استخراج می‌کند.
Approval: Extract Final Post TextcodeJSON خروجی هوش مصنوعی را برای استخراج توییت‌ها تجزیه می‌کندCheck if Approved (true)Create post with Blotato
Post Suggestion Or Ask For Approvaltelegramپیش‌نویس/سوالات را برای بررسی به کاربر ارسال می‌کندCheck if Approved (false)Start: Telegram Message (loop)
Create post with Blotatoblotatoرشته را از طریق API Blotato به X ارسال می‌کندApproval: Extract Final Post TextGive Blotat 5s :)۴. انتشار در X: رشته تأیید شده را با استفاده از API Blotato در X پست می‌کند.
Give Blotat 5s :)waitتأخیر کوتاه قبل از بررسی وضعیتCreate post with BlotatoCheck post status
Check post statusblotatoوضعیت فعلی پست را بازیابی می‌کندGive Blotat 5s :)Published?, In Progress?۵. نظارت بر وضعیت: وضعیت پست را از Blotato دریافت کرده و کاربر را در تلگرام مطلع می‌کند.
Published?ifبررسی می‌کند که آیا وضعیت "published" استCheck post statusSend a confirmation message
In Progress?ifبررسی می‌کند که آیا وضعیت "in-progress" استPublished? (false)Give Blotat other 5s :)
Give Blotat other 5s :)waitتأخیر قبل از بررسی مجدد وضعیتIn Progress? (true)Check post status
Send a confirmation messagetelegramکاربر را از انتشار موفقیت‌آمیز مطلع می‌کندPublished? (true)-
Send an error messagetelegramکاربر را از خطای ارسال مطلع می‌کندIn Progress? (false)-

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

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

این گردش کار چگونه به اتوماسیون انتشار در X (توییتر) کمک می‌کند؟

این گردش کار با دریافت ورودی از طریق تلگرام (حتی پیام‌های صوتی)، تولید پیش‌نویس رشته‌های X با استفاده از GPT و سپس انتشار خودکار آن‌ها پس از تأیید، فرآیند انتشار در X را خودکار می‌کند.

آیا این گردش کار از ورودی صوتی پشتیبانی می‌کند؟

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

نقش حلقه تأیید در این گردش کار چیست؟

حلقه تأیید به شما امکان می‌دهد قبل از انتشار نهایی رشته در X، محتوای تولید شده توسط GPT را بررسی و تأیید کنید. این امر کنترل بیشتری بر محتوای منتشر شده فراهم می‌کند.

چه ابزارهایی در این گردش کار استفاده شده‌اند؟

این گردش کار از n8n، GPT (OpenAI)، تلگرام و Blotato برای اتوماسیون، تولید محتوا، دریافت ورودی و انتشار استفاده می‌کند.

workflowهای مرتبط

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