گردش کار n8n: پایش خودکار اطلاعات با هوش مصنوعی و Slack

گردش کار n8n: پایش خودکار اطلاعات با هوش مصنوعی و Slack

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

دانلود workflow

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

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

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

پایش اطلاعات با هوش مصنوعی با استفاده از OpenAI، Google Sheets، Jina AI و Slack

این گردش کار، پایش موضوعات مرتبط با هوش مصنوعی، علم داده و حوزه‌های مرتبط را خودکار می‌کند. این گردش کار مقالات را از فیدهای RSS دریافت کرده، ارتباط آن‌ها را با استفاده از هوش مصنوعی طبقه‌بندی می‌کند، محتوا را استخراج و خلاصه کرده و خلاصه‌های قالب‌بندی شده را به یک کانال Slack ارسال می‌کند. یک پایگاه داده Google Sheets برای پیگیری مقالات پردازش شده و جلوگیری از موارد تکراری نگهداری می‌شود.

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

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

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

1. راه‌اندازی و مقداردهی اولیه: گردش کار را به صورت دوره‌ای راه‌اندازی کرده و URL مقالات تحت نظارت و URL فیدهای RSS را از Google Sheets دریافت می‌کند.

2. خواندن و فیلتر کردن فید RSS: مقالات را از فیدهای RSS دریافت کرده و مواردی را که قبلاً پردازش شده‌اند، فیلتر می‌کند.

3. طبقه‌بندی ارتباط مقاله: از OpenAI GPT-4o-mini برای طبقه‌بندی مقالات به عنوان مرتبط یا نامرتبط استفاده می‌کند.

4. استخراج محتوا برای مقالات مرتبط: محتوای کامل مقالات را با استفاده از Jina AI برای مقالاتی که مرتبط تشخیص داده شده‌اند، استخراج می‌کند.

5. خلاصه‌سازی و قالب‌بندی مقاله: محتوای مقاله را با استفاده از OpenAI GPT-4o-mini خلاصه و به قالب Slack Markdown تبدیل می‌کند.

6. اعلان به Slack و ذخیره‌سازی داده‌ها: خلاصه‌ها را در Slack منتشر کرده و پایگاه داده Google Sheets را با فراداده برای تمام مقالات پردازش شده به‌روز می‌کند.

---

تشریح گره‌ها (Nodes)

۱. راه‌اندازی و مقداردهی اولیه

این بخش گردش کار را در یک بازه زمانی مشخص راه‌اندازی کرده و داده‌های ضروری را از Google Sheets بازیابی می‌کند: لیست مقالات از قبل رصد شده و URLهای فید RSS برای پیگیری.

  • راه‌انداز زمان‌بندی (Schedule Trigger)

* نوع: scheduleTrigger

* نقش: گردش کار را در یک بازه زمانی تعریف شده (پیش‌فرض: هر ۱۵ دقیقه) راه‌اندازی می‌کند.

* پیکربندی: بازه زمانی روی ۱۵ دقیقه تنظیم شده است.

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

* خروجی: اجرای گردش کار را آغاز می‌کند.

* یادداشت چسبان: فرکانس اجرای گردش کار را تعریف می‌کند.

  • Google Sheets - دریافت پایگاه داده مقالات رصد شده (Get article monitored database)

* نوع: googleSheets.read

* نقش: ردیف‌ها را از شیت "article\_database" که حاوی URL مقالات پردازش شده است، بازیابی می‌کند.

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

* ورودی: خروجی scheduleTrigger.

* خروجی: لیست مقالات رصد شده.

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

  • تنظیم فیلد - URL موجود (Set field - existing\_url)

* نوع: set

* نقش: فیلد "existing\_url" را از ستون "article\_url" در داده‌های Google Sheets برای فیلتر کردن کارآمد استخراج و تنظیم می‌کند.

* پیکربندی: از یک عبارت (expression) برای استخراج URL استفاده می‌کند.

* ورودی: داده‌ها از googleSheets.read (پایگاه داده مقالات رصد شده).

* خروجی: فیلد "existing\_url" را برای فیلتر کردن در مراحل بعدی اضافه می‌کند.

* یادداشت چسبان: URLهای موجود را برای فیلتر کردن آماده می‌کند.

  • Google Sheets - دریافت URL فید RSS دنبال شده (Get RSS Feed url followed)

* نوع: googleSheets.read

* نقش: URLهای فید RSS را از شیت "rss\_feed" که نیاز به رصد دارند، بازیابی می‌کند.

* پیکربندی: احراز هویت حساب سرویس؛ از شیت "rss\_feed" می‌خواند.

* ورودی: خروجی set (existing\_url).

* خروجی: لیست URLهای فید RSS با فراداده (metadata).

* یادداشت چسبان: URLهای فید RSS را برای رصد دریافت می‌کند.

---

۲. خواندن و فیلتر کردن فید RSS

این بخش مقالات را از هر URL فید RSS دریافت کرده و مقالاتی را که قبلاً پردازش شده‌اند فیلتر می‌کند و اطمینان می‌دهد که فقط مقالات جدید به مراحل بعدی می‌روند.

  • خواندن RSS (RSS Read)

* نوع: rssFeedRead

* نقش: مقالات را از فیدهای RSS با استفاده از URLهای به دست آمده از Google Sheets می‌خواند.

* پیکربندی: URL به صورت پویا از فیلد JSON ورودی rss_feed_url تنظیم می‌شود؛ اعتبارسنجی SSL فعال است.

* ورودی: URLهای فید RSS از googleSheets.read (RSS Feed url followed).

* خروجی: لیست مقالات با فراداده (عنوان، لینک، خلاصه محتوا، تاریخ انتشار).

* یادداشت چسبان: مقالات را از فیدهای RSS مشخص شده می‌خواند.

  • کد (فیلتر URLهای موجود) (Code (Filter Existing URLs))

* نوع: code

* نقش: مقالاتی را که URL آن‌ها در لیست مقالات رصد شده بازیابی شده از Google Sheets وجود دارد، فیلتر می‌کند.

* پیکربندی: لینک مقالات RSS را با داده‌های "existing\_url" مقایسه می‌کند؛ فقط مقالات جدید یا پیامی در صورت عدم یافتن مقالات جدید را خروجی می‌دهد.

* ورودی: مقالات RSS از rssFeedRead و URLهای موجود از set (existing\_url).

* خروجی: مقالات جدید یا پیام "هیچ مقاله جدیدی یافت نشد." (No new articles found.).

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

  • اگر (If)

* نوع: if

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

* پیکربندی: شرط بررسی می‌کند که آیا فیلد message برابر با "هیچ مقاله جدیدی یافت نشد." نیست.

* ورودی: خروجی از code (فیلتر URLهای موجود).

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

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

  • بدون عملیات، هیچ کاری انجام نده (No Operation, do nothing)

* نوع: noOp

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

* ورودی: شاخه نادرست گره if.

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

* یادداشت چسبان: جایگزین برای مسیرهایی که اقدام بیشتری ندارند.

---

۳. طبقه‌بندی ارتباط محتوا

این بخش از OpenAI GPT-4o-mini برای طبقه‌بندی هر مقاله جدید به عنوان مرتبط یا نامرتبط با موضوعات رصد شده تعریف شده استفاده می‌کند.

  • مدل چت OpenAI1 (OpenAI Chat Model1)

* نوع: openAiChatModel (از @n8n/n8n-nodes-langchain)

* نقش: نمونه مدل هوش مصنوعی (GPT-4o-mini) را برای طبقه‌بندی فراهم می‌کند.

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

* ورودی: مقالات جدید از شاخه درست گره if.

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

* یادداشت چسبان: رابط کاربری مدل OpenAI GPT-4o-mini.

  • طبقه‌بندی ارتباط برای رصد موضوع (Relevance Classification for Topic Monitoring)

* نوع: textClassifier (از @n8n/n8n-nodes-langchain)

* نقش: مقالات را بر اساس عنوان و خلاصه محتوای آن‌ها به عنوان "مرتبط" (relevant) یا "نامرتبط" (not\_relevant) طبقه‌بندی می‌کند.

* پیکربندی: دسته‌بندی‌ها با توضیحات متمرکز بر هوش مصنوعی، علم داده، یادگیری ماشین، کلان داده (big data) و نوآوری‌ها تعریف شده‌اند. یک حالت بازگشتی (fallback) برای حذف در صورت عدم قطعیت طبقه‌بندی تنظیم شده است.

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

* خروجی: برچسب طبقه‌بندی ("مرتبط" یا "نامرتبط") برای هر مقاله.

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

  • تنظیم فیلدها - مقالات نامرتبط (Set fields - Not relevant articles)

* نوع: set

* نقش: داده‌ها را برای مقالات طبقه‌بندی شده به عنوان "نامرتبط" برای ذخیره در Google Sheets آماده می‌کند.

* پیکربندی: فیلدهای زیر را تنظیم می‌کند: article_url، summarized به "NO (not relevant)"، website، fetched_at (زمان فعلی)، و publish_date (قالب‌بندی شده).

* ورودی: مقالات طبقه‌بندی شده به عنوان "نامرتبط" توسط textClassifier.

* خروجی: ساختار داده آماده برای درج در Google Sheets.

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

  • Google Sheets - افزودن مقالات نامرتبط (Add relevant articles)

* نوع: googleSheets.append

* نقش: داده‌های مقالات نامرتبط را به شیت "article\_database" در Google Sheets اضافه می‌کند.

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

* ورودی: داده‌های آماده شده از set (مقالات نامرتبط).

* خروجی: تأییدیه افزودن داده به Google Sheets.

* یادداشت چسبان: فراداده مقالات نامرتبط را ذخیره می‌کند.

---

۴. استخراج محتوا برای مقالات مرتبط

برای مقالاتی که به عنوان مرتبط طبقه‌بندی شده‌اند، این بخش از Jina AI برای استخراج کامل محتوای مقاله استفاده می‌کند و آن را برای مرحله خلاصه‌سازی آماده می‌سازد.

  • Jina AI - خواندن URL (Jina AI - Read URL)

* نوع: httpRequest

* نقش: محتوای کامل مقاله را از URL با استفاده از API Jina AI استخراج (scrape) می‌کند.

* پیکربندی: URL به صورت پویا به عنوان https://r.jina.ai/{{ $json.link }} ساخته می‌شود؛ برای تلاش مجدد در صورت شکست با تأخیر ۵ ثانیه‌ای پیکربندی شده است.

* ورودی: مقالات طبقه‌بندی شده به عنوان "مرتبط" توسط textClassifier.

* خروجی: محتوای مقاله در قالب Markdown.

* یادداشت چسبان: محتوای کامل مقاله را از طریق Jina AI دریافت می‌کند.

  • زنجیره پایه LLM (Basic LLM Chain)

* نوع: chainLlm (از @n8n/n8n-nodes-langchain)

* نقش: محتوای مقاله استخراج شده را با استفاده از OpenAI GPT-4o-mini خلاصه و به قالب Markdown اسلک (Slack Markdown) تبدیل می‌کند.

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

* ورودی: محتوای Markdown از httpRequest (Jina AI - خواندن URL).

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

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

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

* نوع: openAiChatModel (از @n8n/n8n-nodes-langchain)

* نقش: نمونه مدل هوش مصنوعی (GPT-4o-mini) را برای وظیفه خلاصه‌سازی فراهم می‌کند.

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

* ورودی: گره chainLlm.

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

* یادداشت چسبان: رابط کاربری مدل OpenAI GPT-4o-mini برای خلاصه‌سازی.

---

۵. اعلان اسلک و ذخیره‌سازی داده‌ها

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

  • اسلک1 (Slack1)

* نوع: slack

* نقش: پیام خلاصه قالب‌بندی شده را در یک کانال اسلک مشخص (مانند "topic-monitoring") منتشر می‌کند.

* پیکربندی: از احراز هویت OAuth2 استفاده می‌کند؛ شناسه کانال روی "topic-monitoring" تنظیم شده است؛ متن پیام از خروجی گره chainLlm گرفته می‌شود.

* ورودی: متن خلاصه قالب‌بندی شده برای اسلک از chainLlm (زنجیره پایه LLM).

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

* یادداشت چسبان: خلاصه را به کانال اسلک ارسال می‌کند.

  • تنظیم فیلدها - مقالات مرتبط (Set Fields - Relevant Articles)

* نوع: set

* نقش: فراداده مقالات مرتبط را برای ذخیره در Google Sheets آماده می‌کند.

* پیکربندی: فیلدهای زیر را تنظیم می‌کند: article_url، summarized به "YES"، summary (حاوی متن پیام اسلک)، website، fetched_at (زمان فعلی)، و publish_date (قالب‌بندی شده).

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

* خروجی: ساختار داده آماده برای درج در Google Sheets.

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

  • Google Sheets - افزودن مقاله مرتبط (Add relevant article)

* نوع: googleSheets.append

* نقش: فراداده و خلاصه مقالات مرتبط را به شیت "article\_database" در Google Sheets اضافه می‌کند.

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

* ورودی: داده‌های آماده شده از set (مقالات مرتبط).

* خروجی: تأییدیه افزودن داده به Google Sheets.

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

---

جدول خلاصه

نام نود (Node Name)نوع نود (Node Type)نقش عملکردی (Functional Role)نود(های) ورودی (Input Node(s))نود(های) خروجی (Output Node(s))یادداشت چسبان (Sticky Note)
راه‌انداز زمان‌بندی (Schedule Trigger)scheduleTriggerراه‌اندازی گردش کار به صورت دوره‌ایNonegoogleSheets.read (Get article monitored database)## زمان‌بند: فرکانس اجرای گردش کار را تعریف می‌کند (پیش‌فرض هر ۱۵ دقیقه).
Google Sheets - دریافت پایگاه داده مقالات رصد شدهgoogleSheets.readبازیابی URL مقالات تحت نظارتscheduleTriggerset (existing\_url)## Google Sheets - Get Article Monitored Database: مقالات پردازش شده را برای جلوگیری از تکرار بازیابی می‌کند.
تنظیم فیلد - URL موجودsetاستخراج URLهای موجود برای فیلتر کردنgoogleSheets.read (Get article monitored database)googleSheets.read (Get RSS Feed url followed)## Set field - existing\_url: URLهای موجود را برای فیلتر کردن آماده می‌کند.
Google Sheets - دریافت URL فید RSS دنبال شدهgoogleSheets.readبازیابی URLهای فید RSS برای نظارتset (existing\_url)rssFeedRead## Google Sheets - Get RSS Feed url followed: URLهای فید RSS را برای نظارت دریافت می‌کند.
خواندن RSS (RSS Read)rssFeedReadخواندن مقالات از فیدهای RSSgoogleSheets.read (Get RSS Feed url followed)code (Filter Existing URLs)## RSS Read: مقالات را از فیدهای RSS مشخص شده می‌خواند.
کد (فیلتر URLهای موجود)codeفیلتر کردن مقالات پردازش شده قبلیrssFeedRead, set (existing\_url)if## Code (Filter Existing URLs): مقالات پردازش شده قبلی را فیلتر می‌کند.
اگر (If)ifهدایت گردش کار بر اساس مقالات جدیدcode (Filter Existing URLs)openAiChatModel (OpenAI Chat Model1) یا noOp## If: گردش کار را بر اساس وجود مقالات جدید هدایت می‌کند.
بدون عملیات، هیچ کاری انجام ندهnoOpجایگزین برای مسیرهایی که اقدام بیشتری ندارندif (false branch)None## No Operation, do nothing: نود پایانی برای مسیرهایی که اقدام بیشتری ندارند.
مدل چت OpenAI1openAiChatModelرابط با مدل OpenAI GPT-4o-mini برای طبقه‌بندیif (true branch)textClassifier## OpenAI Chat Model1: رابط با مدل OpenAI GPT-4o-mini برای طبقه‌بندی.
طبقه‌بندی ارتباط برای رصد موضوعtextClassifierطبقه‌بندی محتوای مقالات بر اساس ارتباط موضوعی با هوش مصنوعیopenAiChatModel (OpenAI Chat Model1)set (Not relevant articles) یا httpRequest## Relevance Classification for Topic Monitoring: طبقه‌بندی محتوای مقالات بر اساس ارتباط موضوعی با هوش مصنوعی.
تنظیم فیلدها - مقالات نامرتبطsetقالب‌بندی داده‌ها برای مقالات نامربوطtextClassifier (not\_relevant output)googleSheets.append (Add relevant articles)## Set fields - Not relevant articles: داده‌ها را برای مقالات نامربوط قالب‌بندی می‌کند.
Google Sheets - افزودن مقالات نامرتبطgoogleSheets.appendذخیره فراداده مقالات نامرتبطset (Not relevant articles)slack (Slack1)## Google Sheets - Add relevant articles: فراداده مقالات نامرتبط را ذخیره می‌کند.
Jina AI - خواندن URLhttpRequestدریافت محتوای کامل مقاله از طریق Jina AItextClassifier (relevant output)chainLlm## Jina AI - Read URL: محتوای کامل مقاله را از طریق Jina AI دریافت می‌کند.
زنجیره پایه LLMchainLlmخلاصه‌سازی و قالب‌بندی محتوا برای SlackhttpRequest (Jina AI - Read URL)slack (Slack1)## Basic LLM Chain: محتوا را برای Slack خلاصه و قالب‌بندی می‌کند.
مدل چت OpenAIopenAiChatModelرابط با مدل OpenAI GPT-4o-mini برای خلاصه‌سازیchainLlm (Basic LLM Chain)chainLlm## OpenAI Chat Model: رابط با مدل OpenAI GPT-4o-mini برای خلاصه‌سازی.
اسلک1 (Slack1)slackارسال خلاصه به کانال SlackchainLlm (Basic LLM Chain)set (Relevant Articles)## Slack1: خلاصه را به کانال Slack ارسال می‌کند.
تنظیم فیلدها - مقالات مرتبطsetقالب‌بندی داده‌ها برای مقالات مرتبطslack (Slack1)googleSheets.append (Add relevant article)## Set Fields - Relevant Articles: داده‌ها را برای مقالات مرتبط قالب‌بندی می‌کند.
Google Sheets - افزودن مقاله مرتبطgoogleSheets.appendذخیره فراداده و خلاصه مقالات مرتبطset (Relevant Articles)None## Google Sheets - Add relevant article: فراداده و خلاصه مقالات مرتبط را ذخیره می‌کند.

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

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

این گردش کار n8n چه کاری انجام می‌دهد؟

این گردش کار، پایش موضوعات مرتبط با هوش مصنوعی را خودکار می‌کند. مقالات را از فیدهای RSS دریافت کرده، با استفاده از OpenAI ارتباط آن‌ها را طبقه‌بندی می‌کند، محتوا را با Jina AI استخراج و خلاصه کرده و خلاصه‌ها را به Slack ارسال می‌کند. همچنین مقالات پردازش شده را در Google Sheets پیگیری می‌کند.

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

این گردش کار از ابزارهایی مانند n8n، OpenAI (GPT-4o-mini)، Jina AI، Google Sheets و Slack استفاده می‌کند.

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

یک پایگاه داده Google Sheets برای پیگیری مقالات پردازش شده نگهداری می‌شود. قبل از پردازش هر مقاله جدید، URL آن با مقالات موجود در این پایگاه داده مقایسه شده و از پردازش مجدد موارد تکراری جلوگیری می‌شود.

خروجی این گردش کار به کجا ارسال می‌شود؟

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

workflowهای مرتبط

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