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

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

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

دانلود workflow

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

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

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

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

این گردش کار، استخراج داده با هوش مصنوعی را برای جداول Baserow خودکار می‌کند. این گردش کار به طور پویا از توضیحات فیلدهای Baserow به عنوان پرامپت برای هدایت یک LLM (مانند OpenAI) در مورد اینکه چه داده‌ای را از فایل‌های ورودی (مانند PDF) استخراج کند، استفاده می‌کند. این گردش کار توسط رویدادهای وب‌هوک Baserow برای به‌روزرسانی ردیف یا تغییرات فیلد فعال می‌شود و امکان استخراج تطبیقی را بدون نیاز به تنظیمات دستی گردش کار فراهم می‌کند.

ویژگی‌های کلیدی:

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

موارد استفاده:

  • خودکارسازی استخراج داده‌های ساختاریافته از اسناد (مانند رزومه، فاکتور) ذخیره شده در Baserow.
  • سناریوهایی که معیارهای استخراج توسط کاربران در توضیحات فیلد Baserow تعریف شده‌اند.
  • ساخت خطوط لوله استخراج داده قابل استفاده مجدد که با طرحواره‌های مختلف جدول سازگار می‌شوند.

ساختار گردش کار:

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

1. دریافت رویداد وب‌هوک: گوش دادن به رویدادهای ورودی از Baserow.

2. مسیریابی رویداد: هدایت رویدادها بر اساس نوع آن‌ها (به‌روزرسانی ردیف، ایجاد/به‌روزرسانی فیلد).

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

4. فیلتر و آماده‌سازی ردیف: انتخاب ردیف‌های مرتبط با فایل‌های ورودی و آماده‌سازی آن‌ها برای پردازش.

5. حلقه استخراج داده (مبتنی بر ردیف): برای به‌روزرسانی‌های ردیف، داده‌ها را برای فیلدهای فاقد مقدار با استفاده از LLM استخراج می‌کند.

6. حلقه استخراج داده (مبتنی بر فیلد): برای تغییرات فیلد، داده‌ها را برای تمام ردیف‌های مرتبط تحت فیلد تغییر یافته استخراج می‌کند.

7. ادغام LLM و پردازش PDF: دانلود فایل‌ها، استخراج متن و تولید مقادیر فیلد با استفاده از LLM.

8. به‌روزرسانی ردیف: جدول Baserow را با داده‌های استخراج شده به‌روزرسانی می‌کند.

---

تجزیه و تحلیل دقیق گردش کار

۱. دریافت رویداد وب‌هوک

  • هدف: به عنوان نقطه ورود عمل می‌کند و رویدادهای فعال شده توسط تغییرات در Baserow را ثبت می‌کند.
  • گره‌ها (Nodes):

* Baserow Event (Webhook): برای دریافت درخواست‌های HTTP POST از وب‌هوک‌های Baserow پیکربندی شده است. جزئیات رویداد مانند event_type و body رویداد را ثبت می‌کند.

۲. مسیریابی رویداد

  • هدف: رویدادهای ورودی را بر اساس نوع رویداد به شاخه‌های پردازش مناسب هدایت می‌کند.
  • گره‌ها (Nodes):

* Get Event Body (Set): شیء body را از محموله وب‌هوک ورودی برای دسترسی آسان‌تر استخراج می‌کند.

* Event Type (Switch): گردش کار را بر اساس فیلد event_type (مانند rows.updated, field.created, field.updated) مسیریابی می‌کند.

* Event Ref / Event Ref1 (NoOp): گره‌های نگهدارنده برای سازماندهی بصری و اتصال شاخه‌های مختلف مسیریابی رویداد.

۳. بازیابی طرحواره و استخراج پرامپت

  • هدف: تعاریف فیلدهای جدول را از Baserow واکشی کرده و فیلدهایی را که دارای توضیحات هستند، فیلتر می‌کند؛ این توضیحات به عنوان پرامپت‌های پویا عمل خواهند کرد.
  • گره‌ها (Nodes):

* Table Fields API (HTTP Request): به API Baserow (/database/fields/table/{table_id}/) برای بازیابی تمام فیلدهای جدول درگیر در رویداد، فراخوانی می‌کند. نیاز به احراز هویت API Baserow دارد.

* Get Prompt Fields (Code): لیست فیلدها را از API پردازش کرده و فقط آن‌هایی را که دارای ویژگی description غیر خالی هستند، فیلتر می‌کند.

۴. فیلتر و آماده‌سازی ردیف

  • هدف: ردیف‌های خاصی را که نیاز به استخراج داده دارند، شناسایی و آماده می‌کند و اطمینان حاصل می‌کند که حاوی فایلی برای پردازش هستند.
  • گره‌ها (Nodes):

* Filter Valid Fields (Filter): اطمینان حاصل می‌کند که فقط فیلدهای دارای توضیحات (پرامپت) به جلو ارسال می‌شوند.

* List Table API (HTTP Request): ردیف‌ها را از جدول هدف Baserow واکشی می‌کند. برای فیلتر کردن ردیف‌هایی که یک فیلد "File" خاص خالی نیست، پیکربندی شده است.

* Get Valid Rows (Code): نتایج صفحه‌بندی شده از List Table API را به یک لیست واحد از ردیف‌ها تبدیل می‌کند.

* Filter Valid Rows (Filter): لیست را بیشتر اصلاح می‌کند و اطمینان حاصل می‌کند که فیلد "File" حاوی یک URL معتبر است.

* Rows to List (Split Out): آرایه ردیف‌ها را به موارد جداگانه برای پردازش دسته‌ای تقسیم می‌کند.

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

۵. حلقه استخراج داده (مبتنی بر ردیف)

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

* Fields to Update (Code): داده‌های ردیف فعلی را با فیلدهای موجود که دارای توضیحات (پرامپت) هستند مقایسه می‌کند تا فیلدهای فاقد مقدار را تعیین کند.

* Row Ref (NoOp): یک گره مرجع برای ردیف فعلی که در حال پردازش است.

* Get File Data (HTTP Request): فایل مشخص شده در فیلد "File" ردیف را دانلود می‌کند.

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

* Generate Field Value (Chain LLM / @n8n/n8n-nodes-langchain.chainLlm): با استفاده از متن فایل استخراج شده و توضیحات فیلد، یک پرامپت می‌سازد. سپس این پرامپت را به LLM پیکربندی شده (مانند OpenAI) ارسال می‌کند تا داده‌های مورد نیاز را تولید کند.

* Get Result (Set): خروجی LLM را به فرمتی مناسب برای به‌روزرسانی ردیف Baserow تبدیل می‌کند.

* Update Row (HTTP Request): یک درخواست PATCH به API Baserow برای به‌روزرسانی ردیف خاص با مقادیر فیلد استخراج شده جدید ارسال می‌کند.

* OpenAI Chat Model (LLM Chat): گره زیربنایی که با API OpenAI برای انجام استنتاج مدل زبان تعامل دارد.

۶. حلقه استخراج داده (مبتنی بر فیلد)

  • هدف: رویدادهایی را که یک فیلد (ستون) در Baserow ایجاد یا به‌روزرسانی شده است، مدیریت می‌کند. این حلقه در تمام ردیف‌های مرتبط پیمایش کرده و داده‌ها را برای فیلد تغییر یافته با استفاده از LLM استخراج می‌کند.
  • گره‌ها (Nodes):

* این حلقه اغلب گره‌ها را از حلقه "مبتنی بر ردیف" مجدداً استفاده می‌کند اما توسط رویدادهای field.created یا field.updated فعال می‌شود.

* معمولاً پس از واکشی ردیف‌ها (List Table API, Get Valid Rows) شروع می‌شود.

* Loop Over Items (Split Out): در هر ردیف پیمایش می‌کند.

* درون حلقه: Row Reference (NoOp), Get File Data (HTTP Request), Extract from File (Extract From File), Generate Field Value (Chain LLM / @n8n/n8n-nodes-langchain.chainLlm), Get Result (Set), Update Row (HTTP Request), و OpenAI Chat Model (LLM Chat).

۷. ادغام LLM و پردازش PDF

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

* Get File Data / Get File Data1 (HTTP Request): فایل را از URL ارائه شده در ردیف Baserow دانلود می‌کند.

* Extract from File / Extract from File1 (Extract From File): فایل دانلود شده (مانند PDF) را تجزیه کرده تا محتوای متنی آن را استخراج کند.

* Generate Field Value / Generate Field Value1 (Chain LLM / @n8n/n8n-nodes-langchain.chainLlm): ایجاد پرامپت و فراخوانی LLM را هماهنگ می‌کند. متن استخراج شده را با توضیحات فیلد (پرامپت) ترکیب کرده و به LLM ارسال می‌کند. دستورالعمل‌ها برای مختصر نگه داشتن پاسخ‌ها و بازگرداندن "n/a" در صورت شکست استخراج، گنجانده شده‌اند.

* OpenAI Chat Model / OpenAI Chat Model1 (LLM Chat): گره‌ای که فراخوانی واقعی API را به سرویس LLM (مانند OpenAI) اجرا می‌کند. نیاز به پیکربندی کلید API دارد.

۸. به‌روزرسانی ردیف

  • هدف: داده‌های استخراج شده را به جدول Baserow بازمی‌گرداند.
  • گره‌ها (Nodes):

* Update Row / Update Row1 (HTTP Request): یک درخواست PATCH به API Baserow (/database/rows/table/{table_id}/{row_id}/) برای به‌روزرسانی ردیف خاص با مقادیر فیلد تولید شده انجام می‌دهد. شامل مدیریت خطا و مکانیزم‌های تلاش مجدد است.

---

جدول خلاصه گره‌های کلیدی

نام گره (Node Name)نوع گره (Node Type)نقش عملکردی (Functional Role)گره(های) ورودی (Input Node(s))گره(های) خروجی (Output Node(s))
Baserow EventWebhookنقطه ورود برای رویدادهای وب‌هوک Baserow.خارجی (Baserow)محموله رویداد
Event TypeSwitchرویدادها را بر اساس event_type مسیریابی می‌کند.Get Event Bodyrows.updated, field.created, field.updated
Table Fields APIHTTP Requestطرحواره جدول (فیلدها) را از Baserow واکشی می‌کند.داده رویداد (table_id)تعاریف فیلد
Get Prompt FieldsCodeفیلدها را برای شناسایی آن‌هایی که دارای توضیحات (پرامپت) هستند، فیلتر می‌کند.Table Fields APIفیلدهای دارای توضیحات
List Table APIHTTP Requestردیف‌ها را از Baserow بازیابی می‌کند، فیلتر شده برای فیلدهای فایل غیر خالی.داده رویداد (table_id)داده‌های ردیف صفحه‌بندی شده
Get Valid RowsCodeداده‌های ردیف صفحه‌بندی شده را تبدیل می‌کند.List Table APIلیست ردیف‌ها
Rows to ListSplit Outداده‌های ردیف را به موارد جداگانه برای پردازش تقسیم می‌کند.Get Valid Rowsردیف‌های جداگانه
Split In BatchesSplit In Batchesردیف‌ها را برای پردازش به دسته‌هایی گروه‌بندی می‌کند.Rows to Listدسته‌هایی از ردیف‌ها
Get File Data / Get File Data1HTTP Requestفایل را از URL موجود در ردیف دانلود می‌کند.داده ردیف (فیلد "File")محتوای فایل
Extract from File / Extract from File1Extract From Fileمحتوای متنی را از فایل دانلود شده استخراج می‌کند.محتوای فایلمتن استخراج شده
Generate Field Value / Generate Field Value1Chain LLM / @n8n/n8n-nodes-langchain.chainLlmپرامپت را ایجاد می‌کند، LLM را فراخوانی کرده و مقدار فیلد را تولید می‌کند.متن استخراج شده، توضیحات فیلدمقدار تولید شده
Update Row / Update Row1HTTP Requestردیف Baserow را با مقادیر فیلد استخراج شده از طریق فراخوانی API PATCH به‌روزرسانی می‌کند.شناسه ردیف، شناسه جدول، مقدار تولید شدهپاسخ API
OpenAI Chat Model / OpenAI Chat Model1LLM Chatفراخوانی API LLM به OpenAI را اجرا می‌کند.داده‌های پرامپتپاسخ LLM

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

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

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

این گردش کار از توضیحات فیلدهای Baserow به عنوان پرامپت‌های پویا برای هدایت یک مدل زبان بزرگ (LLM) استفاده می‌کند تا داده‌های مورد نیاز را از فایل‌های ورودی استخراج کند.

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

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

چگونه این گردش کار با تغییرات طرحواره Baserow سازگار می‌شود؟

با استفاده از توضیحات فیلد به عنوان پرامپت، گردش کار به طور خودکار با تغییرات طرحواره سازگار می‌شود، زیرا پرامپت‌ها مستقیماً از توضیحات فیلد فعلی گرفته می‌شوند و نیازی به تنظیم دستی گردش کار نیست.

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

این گردش کار توسط رویدادهای وب‌هوک Baserow فعال می‌شود، به ویژه رویدادهای مربوط به به‌روزرسانی ردیف‌ها یا ایجاد/به‌روزرسانی فیلدها.

workflowهای مرتبط

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