استخراج هوشمند داده از فایل‌ها با Airtable و n8n

استخراج هوشمند داده از فایل‌ها با Airtable و n8n

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

دانلود workflow

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

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

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

استخراج داده با توانمندسازی هوش مصنوعی با پرامپت‌های پویا و ادغام Airtable

این گردش کار نحوه استخراج پویای داده از اسناد با استفاده از هوش مصنوعی، با هدایت توضیحات فیلدهای Airtable، و به‌روزرسانی خودکار رکوردهای Airtable را نشان می‌دهد. این روش به ویژه برای تجزیه اطلاعات ساختاریافته یا نیمه‌ساختاریافته از فایل‌هایی مانند رزومه یا فاکتور مفید است.

کاتالوگ n8n Axeto.ai: https://axeto.ai/n8n

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

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

1. دریافت رویدادهای Webhook از Airtable: با تغییر در رکوردهای یا فیلدهای Airtable فعال می‌شود.

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

3. استخراج Schema و Prompts: به صورت پویا شمای (schema) جدول Airtable را دریافت کرده و توضیحات فیلدها را به عنوان پرامپت (prompt) برای هوش مصنوعی استفاده می‌کند.

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

5. استخراج داده از فایل‌ها: فایل‌ها را دانلود کرده و محتوای متنی آن‌ها را استخراج می‌کند.

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

7. به‌روزرسانی رکوردهای Airtable: رکوردهای مربوطه در Airtable را به طور خودکار با داده‌های استخراج شده به‌روزرسانی می‌کند.

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

  • دریافت و تجزیه رویداد: مدیریت webhookهای ورودی از Airtable.
  • مدیریت Schema و Prompt: دریافت پویای شمای Airtable و آماده‌سازی پرامپت‌های هوش مصنوعی.
  • فرآیند استخراج داده: پیمایش داده‌های مرتبط، استخراج متن و استفاده از هوش مصنوعی برای تولید.
  • به‌روزرسانی رکوردهای Airtable: نوشتن داده‌های استخراج شده به Airtable.
  • راه‌اندازی Webhook (گردش کار کمکی): یک گردش کار فرعی برای راه‌اندازی آسان webhookهای Airtable.

تفکیک نودها

۱. دریافت و تجزیه رویداد

این بخش، تریگر اولیه از Airtable را مدیریت کرده و داده‌های رویداد دریافتی را تجزیه می‌کند.

  • نودها:

* Airtable Webhook (Webhook)

* Get Webhook Payload (HTTP Request)

* Parse Event (Code)

* Event Type (Switch)

* Event Ref (NoOp)

* Event Ref1 (NoOp)

  • تحلیل جزئی:

* Airtable Webhook (Webhook):

* هدف: به عنوان نقطه ورود برای وب‌هوک‌های Airtable عمل می‌کند و منتظر درخواست‌های POST است که توسط تغییرات داده فعال می‌شوند.

* پیکربندی: برای دریافت درخواست‌های HTTP POST در یک مسیر مشخص تنظیم شده است.

* ورودی: داده‌ها از اعلان وب‌هوک Airtable.

* خروجی: پیلود (payload) خام وب‌هوک.

* ملاحظات: اطمینان حاصل کنید که URL وب‌هوک در Airtable به درستی پیکربندی شده است.

* Get Webhook Payload (HTTP Request):

* هدف: پیلود دقیق رویداد Airtable را با استفاده از اطلاعات وب‌هوک ارائه شده (base ID، table ID و غیره) واکشی می‌کند.

* پیکربندی: نیاز به یک توکن دسترسی شخصی Airtable دارد. URL به صورت پویا ساخته می‌شود.

* ورودی: داده‌ها از نود Airtable Webhook.

* خروجی: پیلود JSON دقیق رویداد Airtable.

* ملاحظات: محدودیت‌های نرخ API Airtable را رعایت کنید.

* Parse Event (Code):

* هدف: اطلاعات کلیدی را از پیلود وب‌هوک استخراج می‌کند، مانند نوع رویداد (row.updated, field.created, field.updated)، base ID، table ID و شناسه‌های رکورد/فیلد.

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

* ورودی: پیلود وب‌هوک از Get Webhook Payload.

* خروجی: JSON ساختاریافته حاوی فراداده (metadata) رویداد.

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

* Event Type (Switch):

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

* پیکربندی: فیلد event_type را با موارد از پیش تعریف شده (row.updated, field.created, field.updated) مطابقت می‌دهد.

* ورودی: داده‌های تجزیه شده رویداد از Parse Event.

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

* ملاحظات: رویدادهای منطبق نشده از هیچ مسیری عبور نخواهند کرد.

* Event Ref / Event Ref1 (NoOp):

* هدف: نودهای جایگزین (placeholder) برای حفظ زمینه و انتقال داده‌های مرجع رویداد در مسیرهای مناسب گردش کار.

* ورودی: از سوئیچ Event Type هدایت می‌شود.

* خروجی: داده‌های ورودی را بدون تغییر عبور می‌دهد.

۲. مدیریت Schema و Prompt

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

  • نودها:

* Get Table Schema (Airtable)

* Get Prompt Fields (Code)

  • تحلیل جزئی:

* Get Table Schema (Airtable):

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

* پیکربندی: نیاز به Base ID Airtable دارد و از توکن دسترسی شخصی Airtable استفاده می‌کند.

* ورودی: Base ID (می‌تواند از داده‌های رویداد یا متغیرهای تنظیم شده باشد).

* خروجی: شیء JSON که شمای جدول Airtable را نشان می‌دهد.

* ملاحظات: اطمینان حاصل کنید که Base ID صحیح استفاده شده است. خطاهای بالقوه API یا مشکلات توکن را مدیریت کنید.

* Get Prompt Fields (Code):

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

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

* ورودی: شمای JSON از Get Table Schema.

* خروجی: آرایه‌ای از اشیاء فیلد، که هر کدام شامل id، name، type و description است.

* ملاحظات: مواردی را که هیچ فیلدی دارای توضیحات نیست، مدیریت می‌کند.

۳. فرآیند استخراج داده

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

  • نودها:

Fetch Records (Airtable) - برای به‌روزرسانی‌های سطر استفاده می‌شود*

Get Row (Airtable) - برای به‌روزرسانی‌های سطر خاص استفاده می‌شود*

* Filter Valid Rows (Filter)

* Loop Over Items (SplitInBatches)

* Row Reference (NoOp)

* Get File Data (HTTP Request)

* Extract from File (ExtractFromFile)

* Generate Field Value (Code/LLM Node)

* Get Result (Set)

Fields to Update (Code) - برای به‌روزرسانی‌های فیلد خاص استفاده می‌شود*

* Add Row ID to Payload (Set)

  • تحلیل جزئی:

* Fetch Records (Airtable):

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

* ورودی: Base ID، Table ID.

* خروجی: آرایه‌ای از رکوردهای Airtable.

* ملاحظات: به صفحه‌بندی (pagination) برای مجموعه داده‌های بزرگ توجه داشته باشید.

* Get Row (Airtable):

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

* ورودی: شناسه سطر (از داده‌های رویداد).

* خروجی: رکورد خاص Airtable.

* ملاحظات: مواردی را که ممکن است سطر حذف شده باشد، مدیریت می‌کند.

* Filter Valid Rows (Filter):

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

* ورودی: سطرها از Fetch Records یا Get Row.

* خروجی: سطرهایی که دارای URL فایل غیر خالی هستند.

* ملاحظات: نام صحیح "Input Field" را تعریف کنید.

* Loop Over Items (SplitInBatches):

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

* ورودی: لیستی از سطرهای معتبر.

* خروجی: یک سطر در هر تکرار.

* ملاحظات: در صورت نیاز اندازه دسته را تنظیم کنید.

* Row Reference (NoOp):

* هدف: یک نود عبور ساده برای نگهداری داده‌های سطر فعلی در حلقه برای دسترسی آسان توسط نودهای بعدی.

* ورودی: داده‌های سطر فعلی از Loop Over Items.

* خروجی: داده‌های سطر را عبور می‌دهد.

* Get File Data (HTTP Request):

* هدف: محتوای فایل (به عنوان مثال، PDF) را از URL ذخیره شده در سطر Airtable دانلود می‌کند.

* پیکربندی: از URL فایل از داده‌های سطر استفاده می‌کند.

* ورودی: URL فایل.

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

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

* Extract from File (ExtractFromFile):

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

* ورودی: داده‌های باینری فایل از Get File Data.

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

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

* Generate Field Value (Code/LLM Node):

* هدف: اینجاست که جادوی هوش مصنوعی اتفاق می‌افتد. متن استخراج شده و پرامپت پویا (توضیحات فیلد) را گرفته و آن‌ها را به یک LLM (مانند OpenAI) ارسال می‌کند تا داده‌های مورد نظر را تولید کند.

* پیکربندی:

* یک پرامپت شامل متن فایل استخراج شده (اغلب در تگ‌هایی مانند <file>...</file> قرار می‌گیرد) می‌سازد.

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

* قالب خروجی مورد نظر را بر اساس نوع فیلد Airtable مشخص می‌کند.

* دستورالعمل‌هایی برای پاسخ‌های مختصر و مدیریت مواردی که داده یافت نمی‌شود (به عنوان مثال، بازگرداندن "n/a") را شامل می‌شود.

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

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

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

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

* Get Result (Set):

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

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

* خروجی: شیء JSON آماده برای به‌روزرسانی Airtable (به عنوان مثال، { "fieldName": "extractedValue", "id": "recordId" }).

* Fields to Update (Code):

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

* ورودی: داده‌های سطر فعلی، لیست فیلدهای پرامپت.

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

* Add Row ID to Payload (Set):

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

* ورودی: خروجی‌های متعدد Get Result.

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

* ملاحظات: تداخل‌های احتمالی را در صورتی که چندین فیلد با نام یکسان به‌روزرسانی شوند، مدیریت می‌کند (اگرچه در این زمینه بعید است).

۴. به‌روزرسانی رکوردهای Airtable

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

  • نودها:

* Update Row (Airtable)

* Update Record (Airtable)

  • تحلیل جزئی:

* Update Row (Airtable):

* هدف: یک رکورد Airtable خاص را با داده‌های استخراج شده جدید به‌روزرسانی می‌کند. این نود معمولاً هنگام پردازش رویداد row.updated و به‌روزرسانی چندین فیلد به طور همزمان استفاده می‌شود.

* پیکربندی: از Base ID، Table ID و Record ID استفاده می‌کند. داده‌های ورودی به طور خودکار به فیلدهای صحیح نگاشت می‌شوند.

* ورودی: پیلود JSON حاوی Record ID و فیلدهای مورد نیاز برای به‌روزرسانی (از Add Row ID to Payload).

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

* ملاحظات: اطمینان حاصل کنید که ساختار داده ورودی با الزامات Airtable مطابقت دارد.

* Update Record (Airtable):

* هدف: مشابه Update Row، اما اغلب در زمینه پردازش رویدادهای field.updated برای به‌روزرسانی فیلدهای خاصی که تغییر کرده‌اند، استفاده می‌شود.

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

* ملاحظات: مشابه Update Row.

۵. راه‌اندازی Webhook (گردش کار کمکی)

این یک گردش کار جداگانه و کوچک است که برای کمک به کاربران در راه‌اندازی آسان webhookهای لازم Airtable برای این ادغام طراحی شده است.

  • نودها:

* When clicking ‘Test workflow’ (Manual Trigger)

* Set Airtable Vars (Set)

* Get Table Schema1 (Airtable)

* Get "Input" Field (Set)

* RecordsChanged Webhook (HTTP Request)

* FieldsChanged Webhook (HTTP Request)

  • تحلیل جزئی:

* When clicking ‘Test workflow’ (Manual Trigger):

* هدف: فرآیند راه‌اندازی وب‌هوک را به صورت دستی هنگام کلیک کاربر بر روی دکمه "Test workflow" آغاز می‌کند.

* Set Airtable Vars (Set):

* هدف: به کاربر اجازه می‌دهد تا متغیرهای پیکربندی ضروری مانند Airtable Base ID، Table ID، URL که گردش کار اصلی در آن میزبانی می‌شود (برای بازگشت تماس وب‌هوک) و نام فیلدی که فایل را نگه می‌دارد (به عنوان مثال، "File") را وارد کند.

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

* خروجی: متغیرهای پیکربندی شده برای نودهای بعدی.

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

* Get Table Schema1 (Airtable):

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

* ورودی: Base ID از Set Airtable Vars.

* خروجی: شمای Airtable JSON.

* Get "Input" Field (Set):

* هدف: فراداده (به طور خاص شناسه) فیلد ورودی (به عنوان مثال، "File") را از شمای بر اساس نام ارائه شده در Set Airtable Vars استخراج می‌کند.

* ورودی: شمای JSON از Get Table Schema1، نام فیلد ورودی.

* خروجی: شناسه فیلد ورودی.

* ملاحظات: مواردی را که فیلد ورودی مشخص شده در شمای یافت نمی‌شود، مدیریت می‌کند.

* RecordsChanged Webhook (HTTP Request):

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

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

* ورودی: Base ID، Table ID، URL وب‌هوک، شناسه فیلد ورودی.

* FieldsChanged Webhook (HTTP Request):

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

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

* ورودی: Base ID، Table ID، URL وب‌هوک.

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

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

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

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

چه نوع فایل‌هایی را می‌توان با این گردش کار پردازش کرد؟

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

چگونه می‌توانم پرامپت‌های هوش مصنوعی را سفارشی کنم؟

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

workflowهای مرتبط

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