گردش کار n8n: جمع‌آوری و ترجمه خودکار داده‌های Product Hunt

گردش کار n8n: جمع‌آوری و ترجمه خودکار داده‌های Product Hunt

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

دانلود workflow

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

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

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

جمع‌آوری و ترجمه داده‌های Product Hunt با هوش مصنوعی با استفاده از GPT-4 و Google Sheets

این گردش کار، جمع‌آوری، غنی‌سازی و ذخیره‌سازی روزانه داده‌های ابزارهای Product Hunt را خودکار می‌کند. این گردش کار برای کاربرانی طراحی شده است که به یک کاتالوگ به‌روز و دو زبانه (انگلیسی/فرانسوی) از راه‌اندازی‌های Product Hunt نیاز دارند. داده‌ها با ترجمه‌های تولید شده توسط هوش مصنوعی، نگاشت دسته‌بندی‌ها، استخراج فناوری‌ها و مستندات غنی می‌شوند. این فرآیند شامل مدیریت صفحه‌بندی برای بازیابی افزایشی تمام پست‌های جدید است.

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

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

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

1. مقداردهی اولیه: گردش کار را بر اساس یک برنامه زمان‌بندی روزانه آغاز می‌کند و نشانگر صفحه‌بندی اولیه را راه‌اندازی می‌کند.

2. دریافت داده‌ها: API GraphQL Product Hunt را برای آخرین ابزارها کوئری می‌کند، صفحه‌بندی را مدیریت کرده و پاسخ‌های API را بازسازی می‌کند.

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

4. غنی‌سازی با هوش مصنوعی: از یک عامل هوش مصنوعی (GPT-4) برای ترجمه محتوا، به‌روزرسانی نگاشت دسته‌بندی‌ها با استفاده از یک دیکشنری Google Sheets، استخراج فناوری‌ها و تولید مستندات به زبان‌های انگلیسی و فرانسوی استفاده می‌کند.

5. ماندگاری و کنترل: داده‌های ابزار غنی‌شده را به Google Sheets بازمی‌گرداند، نشانگرهای صفحه‌بندی را مدیریت می‌کند و محدودیت نرخ و بررسی‌های ایمنی را برای پردازش تکراری پیاده‌سازی می‌کند.

---

تحلیل دقیق گره‌ها (Node)

۱. راه‌اندازی

این بخش گردش کار را به صورت روزانه فعال کرده و وضعیت اولیه را برای دریافت داده آماده می‌کند.

  • گره‌ها (Nodes):

* Schedule Trigger: گردش کار را روزانه ساعت ۹ صبح آغاز می‌کند.

* Set: نشانگر صفحه‌بندی (pagination cursor) را روی null مقداردهی اولیه می‌کند.

* Sticky Note: مروری بر گردش کار ارائه می‌دهد.

  • جزئیات گره‌ها:

* Schedule Trigger:

* نوع: scheduleTrigger

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

* پیکربندی: برای فعال شدن روزانه در ساعت ۹ تنظیم شده است.

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

* خروجی: گره Set را فعال می‌کند.

* خرابی: اطمینان حاصل کنید که سرور n8n در حال اجرا است.

* Set (مقداردهی اولیه نشانگر شروع):

* نوع: set

* نقش: نشانگر صفحه‌بندی اولیه را با رشته "null" مقداردهی می‌کند.

* پیکربندی: متغیر cursor را با مقدار "null" اختصاص می‌دهد.

* ورودی: نشانگر را از Schedule Trigger دریافت می‌کند.

* خروجی: متغیر cursor را به گره بعدی ارسال می‌کند.

* خرابی: انتظار نمی‌رود.

* Sticky Note (مرور کلی گردش کار):

* نوع: stickyNote

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

* محتوا: متن ثابت.

۲. دریافت داده

این بخش داده‌ها را از API محصول شکار (Product Hunt) دریافت کرده و برای پردازش بیشتر آماده می‌کند.

  • گره‌ها (Nodes):

* HTTP Request: داده‌ها را از API GraphQL محصول شکار دریافت می‌کند.

* Code: پاسخ خام API را به فرمت JSON قابل استفاده بازسازی می‌کند.

* Sticky Note: سربرگ بخش.

  • جزئیات گره‌ها:

* HTTP Request (دریافت محصولات از API محصول شکار):

* نوع: httpRequest

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

* پیکربندی: یک کوئری GraphQL ارسال می‌کند که تعداد مشخصی از پست‌ها را با ترتیب رتبه‌بندی درخواست کرده و از صفحه‌بندی مبتنی بر نشانگر با متغیر cursor استفاده می‌کند.

* ورودی: متغیر cursor را از مقداردهی اولیه یا مرحله صفحه‌بندی قبلی دریافت می‌کند.

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

* خرابی: خطاهای OAuth، مهلت زمانی شبکه، محدودیت‌های نرخ API.

* Code (بازسازی پاسخ API به JSON):

* نوع: code

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

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

* ورودی: پاسخ خام JSON از گره HTTP Request.

* خروجی: آرایه‌ای از اشیاء JSON ساختاریافته که هر کدام نمایانگر یک ابزار است.

* خرابی: فرمت پاسخ API غیرمنتظره یا فیلدهای گمشده.

۳. بررسی تکراری بودن

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

  • گره‌ها (Nodes):

* Google Sheets: داده‌های ابزار موجود را از شیت "Tools" می‌خواند.

* If: تعیین می‌کند که آیا ابزار دریافت شده جدید است یا خیر.

* Sticky Note: سربرگ بخش.

  • جزئیات گره‌ها:

* Google Sheets (جستجوی ابزار موجود بر اساس عنوان):

* نوع: googleSheets

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

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

* ورودی: JSON ساختاریافته ابزار از گره Code.

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

* خرابی: خطاهای API Google Sheets، مشکلات احراز هویت.

* If (آیا ابزار جدید است؟):

* نوع: if

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

* پیکربندی: شرط isEmpty() روی true تنظیم شده است تا ابزارهای جدید شناسایی شوند.

* ورودی: خروجی از گره Google Sheets.

* خروجی:

* مسیر True: برای غنی‌سازی با هوش مصنوعی برای ابزارهای جدید ادامه می‌یابد.

* مسیر False: از غنی‌سازی صرف نظر کرده و به استخراج صفحه‌بندی برای ابزارهای موجود می‌رود.

* خرابی: خطاهای ارزیابی عبارت در صورتی که ورودی بدشکل باشد.

۴. غنی‌سازی با هوش مصنوعی

این بخش از یک عامل هوش مصنوعی با قدرت GPT-4 برای غنی‌سازی داده‌های ابزار استفاده می‌کند.

  • گره‌ها (Nodes):

* LangChain Agent: وظایف هوش مصنوعی را هماهنگ می‌کند.

* Language Model (Chat): تکمیل‌های هوش مصنوعی (GPT-4.1-mini) را فراهم می‌کند.

* Google Sheets: دیکشنری دسته‌بندی را می‌خواند.

* Google Sheets AppendOrUpdate: دیکشنری دسته‌بندی را به‌روزرسانی می‌کند.

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

* Sticky Note: سربرگ بخش.

  • جزئیات گره‌ها:

* LangChain Agent (عامل هوش مصنوعی: ترجمه و غنی‌سازی داده‌های محصول):

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

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

* پیکربندی:

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

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

* گره‌های Google Sheets را به عنوان ابزار برای جستجو و به‌روزرسانی دسته‌بندی ادغام می‌کند.

* یک حد تکرار حداکثر (مثلاً ۸) را برای جلوگیری از حلقه‌های بی‌نهایت شامل می‌شود.

* ورودی: JSON ابزار جدید از گره If (مسیر True).

* خروجی: رشته خام JSON هوش مصنوعی حاوی فیلدهای غنی‌شده.

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

* Language Model (Chat) (OpenAI GPT-4.1 Mini):

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

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

* پیکربندی: مدل روی gpt-4.1-mini تنظیم شده است.

* ورودی: درخواست‌ها از LangChain Agent.

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

* خرابی: مشکلات کلید API، مهلت زمانی، فراتر رفتن از سهمیه.

* Google Sheets (جستجوی دیکشنری دسته‌بندی):

* نوع: googleSheetsTool

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

* پیکربندی: کل شیت را می‌خواند و انتظار ستون‌های Category Name English و Category Name French را دارد.

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

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

* خرابی: خطاهای دسترسی به Google Sheets.

* Google Sheets AppendOrUpdate (به‌روزرسانی دیکشنری دسته‌بندی):

* نوع: googleSheets

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

* پیکربندی: برای جلوگیری از ورودی‌های تکراری بر اساس Category Name English مطابقت داده و در صورت نیاز ردیف‌های جدید را اضافه می‌کند.

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

* خروجی: Google Sheet به‌روز شده.

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

* Code (پاکسازی و تجزیه خروجی JSON هوش مصنوعی):

* نوع: code

* نقش: هرگونه قالب‌بندی markdown را از خروجی خام هوش مصنوعی حذف کرده و رشته JSON را به اشیاء JSON n8n تجزیه می‌کند.

* پیکربندی: شامل مدیریت خطا برای خروجی JSON خالی یا نامعتبر است.

* ورودی: رشته خام JSON هوش مصنوعی از LangChain Agent.

* خروجی: یک شیء JSON تجزیه شده یا یک شیء خطا برای اشکال‌زدایی.

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

۵. ماندگاری و کنترل

این بخش مسئولیت ذخیره داده‌های غنی‌شده، مدیریت حلقه صفحه‌بندی و اعمال تأخیرها و محدودیت‌های ایمنی لازم را بر عهده دارد.

  • گره‌ها (Nodes):

* Google Sheets AppendOrUpdate: داده‌های غنی‌شده را در شیت "Tools" ذخیره می‌کند.

* Set: اطلاعات صفحه‌بندی را استخراج می‌کند.

* If: بررسی می‌کند که آیا صفحات بیشتری برای پردازش وجود دارد یا خیر.

* NoOp: به عنوان یک نگهدارنده در حلقه عمل می‌کند.

* Wait: تأخیری را برای محدودیت نرخ اعمال می‌کند.

* If: محدودیت‌های ایمنی را برای تعداد تکرارها بررسی می‌کند.

* Sticky Note: سربرگ بخش.

  • جزئیات گره‌ها:

* Google Sheets AppendOrUpdate (ذخیره ابزار غنی‌شده در شیت):

* نوع: googleSheets

* نقش: داده‌های ابزار غنی‌شده را در شیت "Tools" به‌روزرسانی یا اضافه می‌کند و از عنوان به عنوان کلید استفاده می‌کند.

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

* ورودی: داده‌های JSON تجزیه شده و غنی‌شده از گره Code.

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

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

* Set (استخراج اطلاعات صفحه‌بندی):

* نوع: set

* نقش: endCursor و hasNextPage را از آخرین پاسخ API برای کنترل حلقه صفحه‌بندی استخراج می‌کند.

* ورودی: آخرین پاسخ API از گره HTTP Request.

* خروجی: متغیرهای صفحه‌بندی را برای گره‌های تصمیم‌گیری تنظیم می‌کند.

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

* If (آیا صفحه بعدی وجود دارد؟):

* نوع: if

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

* خروجی:

* True: حلقه را برای دریافت صفحه بعدی ادامه می‌دهد.

* False: گردش کار را پایان می‌دهد.

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

* NoOp (ادامه حلقه):

* نوع: noOp

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

* خروجی: گره Wait را فعال می‌کند.

* خرابی: انتظار نمی‌رود.

* Wait (محدودیت نرخ: ۱۵ ثانیه صبر کنید):

* نوع: wait

* نقش: برای رعایت محدودیت‌های نرخ، گردش کار را به مدت ۱۵ ثانیه بین فراخوانی‌های API متوقف می‌کند.

* خروجی: بررسی محدودیت ایمنی را فعال می‌کند.

* خرابی: انتظار نمی‌رود.

* If (بررسی محدودیت ایمنی >۵۰ تکرار):

* نوع: if

* نقش: با محدود کردن تعداد چرخه‌های صفحه‌بندی به حداکثر ۵۰ بار در هر اجرا، از حلقه‌های بی‌نهایت جلوگیری می‌کند.

* خروجی:

* True: فرآیند صفحه‌بندی را متوقف می‌کند.

* False: اجازه می‌دهد حلقه به دریافت API بعدی ادامه یابد.

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

---

جدول خلاصه

نام نود (Node Name)نوع نود (Node Type)نقش عملکردی (Functional Role)نود(های) ورودی (Input Node(s))نود(های) خروجی (Output Node(s))
مقداردهی اولیه (Initialization)
Schedule TriggerscheduleTriggerراه‌اندازی گردش کار روزانه ساعت ۹ صبحندارد (None)Set (Initialize Starting Cursor)
Set (Initialize Starting Cursor)setتنظیم نشانگر اولیه صفحه‌بندی ("null")Schedule TriggerHTTP Request (Fetch Products...)
Sticky Note (Workflow Overview)stickyNoteتوضیح هدف و راه‌اندازی گردش کارندارد (None)ندارد (None)
دریافت داده (Data Fetching)
HTTP Request (Fetch Products...)httpRequestفراخوانی API Product Hunt برای پست‌های جدیدSet (Initialize Starting Cursor)Code (Restructure API Response...)
Code (Restructure API Response...)codeپاک‌سازی و ساختاردهی داده‌های APIHTTP RequestGoogle Sheets (Lookup Existing...)
Sticky Note (Section: Data Fetching)stickyNoteسربرگ بخشندارد (None)ندارد (None)
بررسی تکراری بودن (Duplicate Check)
Google Sheets (Lookup Existing...)googleSheetsبررسی ابزارهای موجود در Google SheetsCode (Restructure API Response...)If (Is Tool New?)
If (Is Tool New?)ifتعیین جدید بودن ابزارGoogle SheetsLangChain Agent (AI Agent...) / Set (Extract Pagination Info)
Sticky Note (Section: Duplicate Check)stickyNoteسربرگ بخشندارد (None)ندارد (None)
غنی‌سازی با هوش مصنوعی (AI Enrichment)
LangChain Agent (AI Agent...)@n8n/n8n-nodes-langchain.agentهماهنگ‌سازی وظایف هوش مصنوعی (ترجمه، غنی‌سازی)If (Is Tool New?)Code (Clean & Parse AI Output)
Language Model (Chat) (OpenAI GPT-4...)@n8n/n8n-nodes-langchain.lmChatOpenAiارائه تکمیل‌سازی‌های هوش مصنوعیLangChain AgentLangChain Agent
Google Sheets (Lookup Category...)googleSheetsToolخواندن دیکشنری ترجمه دسته‌بندی‌هاLangChain AgentLangChain Agent
Google Sheets AppendOrUpdate (Update...)googleSheetsافزودن ترجمه‌های جدید به دیکشنری دسته‌بندی‌هاLangChain AgentLangChain Agent
Code (Clean & Parse AI Output)codeپاک‌سازی و تجزیه خروجی JSON هوش مصنوعیLangChain AgentGoogle Sheets AppendOrUpdate (Save...)
Sticky Note (Section: AI Enrichment)stickyNoteسربرگ بخشندارد (None)ندارد (None)
ماندگاری و کنترل (Persistence & Control)
Google Sheets AppendOrUpdate (Save...)googleSheetsذخیره داده‌های غنی‌شده در Google SheetsCode (Clean & Parse AI Output)Set (Extract Pagination Info)
Set (Extract Pagination Info)setاستخراج اطلاعات نشانگر و صفحه بعدیHTTP RequestIf (Has Next Page?)
If (Has Next Page?)ifبررسی وجود صفحات بیشترSet (Extract Pagination Info)NoOp (Continue Loop) / End Workflow
NoOp (Continue Loop)noOpنگهدارنده ادامه حلقهIf (Has Next Page?)Wait (Rate Limit...)
Wait (Rate Limit: Wait 15 Seconds)waitتوقف برای محدودیت نرخ (rate limiting)NoOp (Continue Loop)If (Safety Limit Check...)
If (Safety Limit Check >50 iterations)ifجلوگیری از حلقه‌های بی‌نهایتWait (Rate Limit...)HTTP Request (Fetch Products...) / End Workflow
Sticky Note (Section: Persistence...)stickyNoteسربرگ بخشندارد (None)ندارد (None)

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

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

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

این گردش کار به صورت خودکار داده‌های ابزارهای جدید در Product Hunt را جمع‌آوری کرده، آن‌ها را با استفاده از GPT-4 به زبان انگلیسی و فرانسوی ترجمه و دسته‌بندی می‌کند و نتایج را در Google Sheets ذخیره می‌نماید.

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

شما به یک حساب n8n، دسترسی به API Product Hunt (احتمالاً از طریق OAuth2) و دسترسی به GPT-4 (از طریق OpenAI) نیاز دارید. همچنین برای ذخیره داده‌ها، یک حساب Google Sheets مورد نیاز است.

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

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

آیا این گردش کار فقط برای زبان انگلیسی و فرانسوی است؟

این گردش کار به طور خاص برای ترجمه به انگلیسی و فرانسوی طراحی شده است، اما با تغییر پیکربندی گره‌های مربوط به GPT-4 و دیکشنری دسته‌بندی‌ها، می‌توان آن را برای زبان‌های دیگر نیز سفارشی‌سازی کرد.

workflowهای مرتبط

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