
گردش کار n8n: پایش خودکار اطلاعات با هوش مصنوعی و Slack
13 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۶
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- 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 | راهاندازی گردش کار به صورت دورهای | None | googleSheets.read (Get article monitored database) | ## زمانبند: فرکانس اجرای گردش کار را تعریف میکند (پیشفرض هر ۱۵ دقیقه). |
| Google Sheets - دریافت پایگاه داده مقالات رصد شده | googleSheets.read | بازیابی URL مقالات تحت نظارت | scheduleTrigger | set (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 | خواندن مقالات از فیدهای RSS | googleSheets.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: نود پایانی برای مسیرهایی که اقدام بیشتری ندارند. |
| مدل چت OpenAI1 | openAiChatModel | رابط با مدل 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 - خواندن URL | httpRequest | دریافت محتوای کامل مقاله از طریق Jina AI | textClassifier (relevant output) | chainLlm | ## Jina AI - Read URL: محتوای کامل مقاله را از طریق Jina AI دریافت میکند. |
| زنجیره پایه LLM | chainLlm | خلاصهسازی و قالببندی محتوا برای Slack | httpRequest (Jina AI - Read URL) | slack (Slack1) | ## Basic LLM Chain: محتوا را برای Slack خلاصه و قالببندی میکند. |
| مدل چت OpenAI | openAiChatModel | رابط با مدل OpenAI GPT-4o-mini برای خلاصهسازی | chainLlm (Basic LLM Chain) | chainLlm | ## OpenAI Chat Model: رابط با مدل OpenAI GPT-4o-mini برای خلاصهسازی. |
| اسلک1 (Slack1) | slack | ارسال خلاصه به کانال Slack | chainLlm (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های مرتبط
- پاسخ خودکار به سوالات GitHub PR با GPT-4o، Notion و SlackEngineering
- اتوماسیون جستجوی لینکدین با GPT-4 و جستجوی بولی گوگلHR
- اتوماسیون خلاصهسازی جلسات با Google Drive و OpenAIAI
- تغییر نام خودکار گرههای n8n با هوش مصنوعیEngineering
- تحلیل صوتی با DeepGram و GPT-4o در n8nAI
- اتوماسیون API Clarify با n8n و عوامل هوش مصنوعیEngineering
