ساخت رشته‌های Bluesky از مقالات با هوش مصنوعی و n8n

ساخت رشته‌های Bluesky از مقالات با هوش مصنوعی و n8n

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

دانلود workflow

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

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

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

خودکارسازی مقالات به پست‌های رشته‌ای در Bluesky با JinaAI و Gemini/GPT

این گردش کار فرآیند تبدیل مقالات به پست‌های جذاب و رشته‌ای در Bluesky را خودکار می‌کند. این گردش کار از JinaAI برای استخراج محتوا و Gemini (یا GPT) برای خلاصه‌سازی و تولید رشته با قدرت هوش مصنوعی بهره می‌برد. گردش کار را می‌توان به صورت دستی از طریق Telegram یا به طور خودکار از طریق نظارت بر فید RSS راه‌اندازی کرد.

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

---

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

این گردش کار برای خودکارسازی فرآیند تبدیل مقالات از منابع مختلف به پست‌های رشته‌ای (threaded posts) در پلتفرم رسانه اجتماعی Bluesky طراحی شده است. این گردش کار، استخراج محتوا، تبدیل محتوا مبتنی بر هوش مصنوعی و انتشار در رسانه‌های اجتماعی را با پشتیبانی از ورودی‌های راه‌اندازی شده توسط Telegram و دریافت زمان‌بندی شده فید RSS ادغام می‌کند.

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

  • ۱.۱ دریافت ورودی: جمع‌آوری URL مقالات از طریق پیام‌های Telegram یا به‌روزرسانی‌های زمان‌بندی شده فید RSS.
  • ۱.۲ استخراج محتوا: استفاده از JinaAI برای استخراج و تجزیه محتوای مقالات وب.
  • ۱.۳ پردازش هوش مصنوعی (تولید رشته): استفاده از مدل زبانی بزرگ Google Gemini (با مدل جایگزین OpenAI GPT در دسترس) برای تبدیل محتوای استخراج شده به یک پست رشته‌ای قالب‌بندی شده و جذاب مناسب برای Bluesky.
  • ۱.۴ پردازش رشته: پاکسازی و تقسیم رشته تولید شده توسط هوش مصنوعی به پست‌های مجزا برای انتشار متوالی.
  • ۱.۵ منطق و کنترل انتشار: مدیریت انتشار رشته در Bluesky، رسیدگی به پست اولیه و پاسخ‌های بعدی با تأخیرهای کنترل شده.
  • ۱.۶ راهنمای خطا و اعتبارنامه‌ها: شامل نکات مفید برای راه‌اندازی اعتبارنامه‌ها و عیب‌یابی مشکلات رایج.

---

۲. جزئیات گردش کار

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

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

نودها:

  • Telegram Trigger: پیام‌های ورودی تلگرام حاوی URL مقالات را دریافت می‌کند.

* نوع: telegramTrigger

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

* خروجی: JSON حاوی متن پیام (که انتظار می‌رود یک URL باشد).

  • RSS Feed Read Trigger (Multiple): به طور دوره‌ای فیدهای RSS را برای مقالات جدید بررسی می‌کند.

* نوع: rssFeedReadTrigger

* پیکربندی: با URLهای فید RSS خاص (مانند Technology Review، Machine Learning Mastery، AI Trends) و زمان‌بندی بررسی تنظیم شده است.

* خروجی: آیتم‌های فید RSS، شامل لینک مقالات.

  • Set (Prepare Input URL): URL ورودی را از تلگرام یا RSS به یک فیلد واحد inputUrl نرمال می‌کند.

* نوع: set

* پیکربندی: از عبارت ={{ $json.link || $json.message.text }} برای انتخاب پویا URL استفاده می‌کند.

* خروجی: شیء JSON با فیلد inputUrl.

۲.۲ استخراج محتوا

هدف: با استفاده از JinaAI، محتوای کامل مقاله وب را از URL داده شده استخراج می‌کند.

نودها:

  • JinaAI (Extract Web Content): محتوای ساختاریافته را از URL ارائه شده دریافت و تجزیه می‌کند.

* نوع: jinaAi

* پیکربندی: پارامتر URL به صورت پویا از فیلد inputUrl تنظیم می‌شود. به اعتبارنامه‌های API JinaAI نیاز دارد.

* خروجی: JSON حاوی فیلدهای استخراج شده مانند title، description و content.

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

هدف: محتوای مقاله استخراج شده را با استفاده از یک مدل زبان بزرگ به یک رشته (thread) ساختاریافته و جذاب مناسب برای Bluesky تبدیل می‌کند.

نودها:

  • Langchain Chain LLM (Transform Content to Thread): پرامپت را برای مدل هوش مصنوعی می‌سازد و به آن دستور می‌دهد تا یک رشته برای Bluesky ایجاد کند.

* نوع: @n8n/n8n-nodes-langchain.chainLlm

* پیکربندی: از یک پرامپت الگو استفاده می‌کند که فیلدهای استخراج شده مقاله (title، description، content) را در بر می‌گیرد. شامل دستورالعمل‌های خاصی برای ایجاد یک رشته جذاب با یک قلاب (hook)، جریان (flow) و رعایت محدودیت‌های کاراکتری Bluesky (مانند حداکثر ۳۰۰ کاراکتر در هر پست) است.

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

  • Langchain Google Gemini Chat LLM (Gemini): پرامپت را پردازش کرده و متن رشته را تولید می‌کند.

* نوع: @n8n/n8n-nodes-langchain.chainLlm (یا نود مشابه Gemini)

* پیکربندی: از تنظیمات پیش‌فرض استفاده می‌کند و به اعتبارنامه‌های API Google AI (Gemini) نیاز دارد.

* خروجی: متن رشته تولید شده توسط هوش مصنوعی، معمولاً در نشانگرهای [THREADSTART]...[THREADEND] محصور شده و با -cutthread- جدا شده است.

  • (جایگزین) Langchain OpenAI Chat LLM: یک نود جایگزین برای استفاده از مدل‌های GPT OpenAI (به طور فعال در جریان اصلی استفاده نمی‌شود اما برای پیکربندی در دسترس است).

* نوع: @n8n/n8n-nodes-langchain.chainLlm (یا نود مشابه OpenAI)

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

۲.۴ پردازش رشته

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

نودها:

  • Set (Prepare Thread Data): متن خام رشته تولید شده توسط هوش مصنوعی را به یک فیلد data اختصاص می‌دهد تا پردازش آسان‌تر شود.

* نوع: set

* خروجی: شیء JSON با فیلد data حاوی متن کامل رشته.

  • Code (Clean Thread Text): متن خام رشته را پردازش می‌کند.

* نوع: code

* عملکرد:

* محتوای رشته را بین نشانگرهای [THREADSTART] و [THREADEND] استخراج می‌کند.

* محتوا را با استفاده از جداکننده -cutthread- به پست‌های جداگانه تقسیم می‌کند.

* فضاهای خالی را حذف کرده و پست‌های خالی را فیلتر می‌کند.

* خروجی: آرایه JSON که در آن هر عنصر یک پست جداگانه است و تحت فیلد data ذخیره می‌شود.

  • Split Out (Split Thread into Posts): آرایه پست‌ها را توزیع کرده و هر پست را به عنوان یک آیتم جداگانه به پایین‌دست برای پردازش فردی ارسال می‌کند.

* نوع: splitOut

۲.۵ منطق و کنترل انتشار

هدف: انتشار متوالی محتوای رشته در Bluesky را مدیریت می‌کند، بین پست اولیه و پاسخ‌های بعدی تمایز قائل شده و تأخیرها را پیاده‌سازی می‌کند.

نودها:

  • Split In Batches (Loop Through Thread Posts): بر روی هر پست جداگانه تولید شده در مرحله قبل تکرار شده و آن‌ها را یکی یکی پردازش می‌کند.

* نوع: splitInBatches

  • If (Check First Post Condition): بر اساس $runIndex تعیین می‌کند که آیا پست فعلی اولین پست در رشته است یا خیر.

* نوع: if

* منطق: اگر $runIndex برابر با ۰ (اولین پست) باشد، جریان را به "Create a post" هدایت می‌کند. در غیر این صورت (برای پست‌های بعدی)، به "Reply with Next Post" هدایت می‌کند.

  • Bluesky Enhanced (Create a post): اولین پست رشته را به عنوان یک پست مستقل و جدید در Bluesky منتشر می‌کند.

* نوع: blueskyEnhanced

* پیکربندی: از postText داده‌های پست فعلی استفاده می‌کند. به اعتبارنامه‌های API Bluesky (شامل رمز عبور برنامه) نیاز دارد.

* خروجی: شناسه‌های پست Bluesky (uri و cid).

  • Bluesky Enhanced (Reply with Next Post): پست‌های بعدی رشته را به عنوان پاسخ به پست قبلی در رشته منتشر می‌کند.

* نوع: blueskyEnhanced

* پیکربندی: از cid و uri ذخیره شده پست والد برای ایجاد پاسخ استفاده می‌کند. به اعتبارنامه‌های API Bluesky نیاز دارد.

* خروجی: شناسه‌های پاسخ Bluesky (uri و cid).

  • Wait (Wait Before Next Post / Wait Before Next Reply): یک تأخیر بین انتشار هر آیتم برای جلوگیری از محدودیت‌های نرخ (rate limits) و اطمینان از یک روند انتشار طبیعی معرفی می‌کند.

* نوع: wait

* پیکربندی: روی یک مدت زمان مشخص (مانند ۱۰ ثانیه) تنظیم شده است.

  • Set (Store Post URI and CID): uri و cid پست یا پاسخ ایجاد شده را ذخیره می‌کند. این داده‌ها برای ایجاد صحیح پاسخ‌های بعدی حیاتی هستند.

* نوع: set

* خروجی: شیء JSON حاوی uri و cid ذخیره شده.

۲.۶ راهنمای اعتبارنامه‌ها و مدیریت خطا

هدف: اطلاعات ضروری برای راه‌اندازی اعتبارنامه‌های لازم و عیب‌یابی مشکلات احتمالی را ارائه می‌دهد.

نودها:

  • Sticky Note (Credentials): حاوی دستورالعمل‌ها و لینک‌هایی برای دریافت کلیدهای API و اعتبارنامه‌ها برای موارد زیر است:

* Telegram Bot (@BotFather)

* JinaAI

* Google AI Studio (برای Gemini)

* Bluesky (شامل تولید رمز عبور برنامه)

  • Sticky Note (Error Handling): نکاتی را برای مشکلات رایج ارائه می‌دهد:

* JinaAI: دسترسی‌پذیری URL را تأیید کنید.

* Gemini/GPT: در صورت بروز خطا، پیچیدگی یا طول پرامپت را تنظیم کنید.

* Bluesky: رمز عبور برنامه صحیح را بررسی کرده و محدودیت‌های نرخ را چک کنید.

* عمومی: توصیه می‌شود ابتدا با نمونه‌های محتوای کوچک‌تر آزمایش کنید.

---

۳. جدول خلاصه

نام نود (Node Name)نوع نود (Node Type)نقش عملکردی (Functional Role)نود(های) ورودی (Input Node(s))نود(های) خروجی (Output Node(s))
Telegram TriggertelegramTriggerدریافت URL از پیام‌های تلگرام-Set (Prepare Input URL)
RSS Feed - Technology ReviewrssFeedReadTriggerتریگر زمان‌بندی شده فید RSS برای Tech Review-Set (Prepare Input URL)
RSS Feed - Machine Learning MasteryrssFeedReadTriggerتریگر زمان‌بندی شده فید RSS برای ML Mastery-Set (Prepare Input URL)
RSS Feed - AI TrendsrssFeedReadTriggerتریگر زمان‌بندی شده فید RSS برای AI Trends-Set (Prepare Input URL)
Set (Prepare Input URL)setنرمال‌سازی URL ورودیTelegram Trigger, RSS Feed Read TriggerJinaAI (Extract Web Content)
JinaAI (Extract Web Content)jinaAiاستخراج محتوای مقاله از URLSet (Prepare Input URL)Langchain Chain LLM (Transform Content to Thread)
Langchain Chain LLM (Transform Content to Thread)@n8n/n8n-nodes-langchain.chainLlmساخت پرامپت هوش مصنوعی برای تولید رشته توییت (thread)JinaAI (Extract Web Content)Langchain Google Gemini Chat LLM (Gemini)
Langchain Google Gemini Chat LLM (Gemini)@n8n/n8n-nodes-langchain.chainLlmتولید متن رشته توییت با استفاده از GeminiLangchain Chain LLM (Transform Content to Thread)Set (Prepare Thread Data)
Set (Prepare Thread Data)setاختصاص متن خام رشته توییت به فیلد 'data'Langchain Google Gemini Chat LLM (Gemini)Code (Clean Thread Text)
Code (Clean Thread Text)codeپاکسازی و تقسیم متن رشته توییت به پست‌های مجزاSet (Prepare Thread Data)Split Out (Split Thread into Posts)
Split Out (Split Thread into Posts)splitOutتوزیع پست‌های مجزا برای پردازشCode (Clean Thread Text)Split In Batches (Loop Through Thread Posts)
Split In Batches (Loop Through Thread Posts)splitInBatchesپیمایش هر پست در رشته توییتSplit Out (Split Thread into Posts)If (Check First Post Condition)
If (Check First Post Condition)ifتعیین اینکه آیا اولین پست است یا پاسخ (reply)Split In Batches (Loop Through Thread Posts)Bluesky Enhanced (Create a post) / Bluesky Enhanced (Reply with Next Post)
Bluesky Enhanced (Create a post)blueskyEnhancedارسال اولین مورد از رشته توییتIf (Check First Post Condition)Set (Store Post URI and CID)
Bluesky Enhanced (Reply with Next Post)blueskyEnhancedارسال موارد بعدی رشته توییت به عنوان پاسخ (reply)If (Check First Post Condition), Set (Store Post URI and CID)Set (Store Post URI and CID)
Wait (Wait Before Next Post / Reply)waitمکث بین پست‌هاBluesky Enhanced (Create a post) / Bluesky Enhanced (Reply with Next Post)Split In Batches (Loop Through Thread Posts)
Set (Store Post URI and CID)setذخیره شناسه‌های پست Bluesky برای پاسخ‌ها (replies)Bluesky Enhanced (Create a post) / Bluesky Enhanced (Reply with Next Post)Wait (Wait Before Next Post / Reply)
Sticky Note (Credentials)stickyNoteراهنمایی در مورد نحوه دریافت اعتبارنامه‌های API--
Sticky Note (Error Handling)stickyNoteنکات عیب‌یابی و مدیریت خطاهای رایج--

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

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

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

این گردش کار ابتدا با استفاده از JinaAI محتوای مقاله را استخراج می‌کند. سپس، از مدل‌های هوش مصنوعی مانند Gemini یا GPT برای خلاصه‌سازی محتوا و تولید یک رشته جذاب و قالب‌بندی شده برای Bluesky استفاده می‌کند.

چه روش‌هایی برای راه‌اندازی این گردش کار وجود دارد؟

این گردش کار را می‌توان به دو روش راه‌اندازی کرد: به صورت دستی از طریق ارسال URL مقاله به یک ربات تلگرام مشخص، یا به صورت خودکار با نظارت بر فیدهای RSS برای مقالات جدید.

کدام ابزارهای هوش مصنوعی در این گردش کار استفاده می‌شوند؟

این گردش کار از JinaAI برای استخراج محتوای وب و از مدل‌های زبانی بزرگ مانند Google Gemini (یا به عنوان جایگزین، OpenAI GPT) برای پردازش و تولید متن رشته استفاده می‌کند.

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

شما نیاز به تنظیم اعتبارنامه‌های API برای سرویس‌های JinaAI، Gemini/GPT و Bluesky دارید. گردش کار شامل نودهایی برای پردازش محتوا، تولید رشته و انتشار آن در Bluesky با مدیریت پست‌های اولیه و پاسخ‌ها است.

workflowهای مرتبط

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