مقدمه
استخراج متن از PDF با n8n
N8Nابزاری است که به کمک آن می توانید در مدتزمان کوتاهی، فرایندهای خود را با هوش مصنوعی خودکار کنید و از مزایای اتوماسیون هوشمند بهره مند شوید.
N8N برای چه کسب و کارهایی مناسب است:
اگر سازمان شما کوچک می باشد و هم اکنون بسیاری از کار های خود را با نرم افزار هایی همچون اکسل انجام می دهید، N8N برای کسب و کار شما ایده آل است و در صورتی که کسب و کاری متوسط یا بزرگ دارید می توانید بخش های بسیاری از فرایند های غیر کلیدی خود را با این ابزار هوشمند کنید.
اگر به پیادهسازی اختصاصی، اتصال n8n به نرمافزارهای سازمانی یا سفارشیسازی Workflowها متناسب با کسبوکارتان نیاز دارید، Danix با بررسی نیازهای کسبوکار شما، میتواند این فرایند را از طراحی تا استقرار برای شما انجام دهیم.
برای کسب و کارهای کوچک به این لینک مراجعه کنید و برای کسب و کارهای بزرگ و متوسط میتوانید از این لینک استفاده نمایید.
همچنین اگر ترجیح میدهید شخصاً نصب و راهاندازی را انجام دهید، میتوانید از اطلاعات موجود در مقالات، دسته N8N استفاده کنید .همچنین می توانید template موجود در این workflow را به صورت رایگان از این قسمت دانلود کنید.
پسوورد فایل فشرده: danixai.com
استخراج متن از PDF با n8n
قبل از شروع در استخراج متن از PDF با n8n
اگر هنوز n8n را نصب نکردهاید، پیشنهاد میکنیم ابتدا مقاله «آموزش n8n» را مطالعه کنید. در آن مقاله، مراحل نصب با Node.js و Docker، راهاندازی اولیه و ساخت اولین Workflow بهصورت کامل آموزش داده شده است. پس از نصب و راهاندازی، به این مقاله بازگردید و مراحل پیادهسازی این Workflow را دنبال کنید.
این Workflow چه کاری انجام میدهد؟
این Workflow وظیفه دارد فایلهای PDF و تصویر جدید را از یک پوشه مشخص در Google Drive دریافت و اطلاعات داخل آنها را به داده CSV تبدیل کند.
شروع Workflow با Node Get PDF or Images انجام میشود. این Node به Google Drive متصل است و ایجاد فایل جدید در یک Folder مشخص را بررسی میکند. بررسی فایلها هر یک دقیقه انجام میشود.
بعد از شناسایی فایل، Node Route based on PDF or Image نوع فایل را بررسی میکند. اگر MIME Type فایل application/pdf باشد، فایل به مسیر PDF فرستاده میشود. اگر MIME Type شامل image/ باشد، مسیر تصویر فعال میشود.
در مسیر PDF، فایل دانلود شده و متن آن استخراج میشود. سپس متن به OpenRouter ارسال میشود تا تراکنشها را استخراج و دستهبندی کند.
مسیر تصویر، فایل دانلود شده و مستقیماً برای مدل Gemini ارسال میشود. Gemini باید تراکنشهای موجود در تصویر را تشخیص داده و خروجی CSV تولید کند.
در نهایت هر مسیر فایل CSV مخصوص خود را تولید کرده و آن را در پوشه CSV Exports در Google Drive ذخیره میکند.
کاربردهای این Workflow در استخراج متن از PDF با n8n
این Template برای سناریوهای مختلف اتوماسیون اسناد کاربرد دارد. مهمترین کاربردهای آن عبارتاند از:
- تبدیل صورتحسابهای بانکی PDF به CSV.
- استخراج تراکنشهای مالی از تصاویر.
- دستهبندی خودکار تراکنشهای بانکی.
- تبدیل رسیدهای پرداخت به داده ساختاریافته.
- کاهش ورود دستی اطلاعات مالی.
- آمادهسازی اطلاعات برای Excel و Spreadsheet.
- انتقال اطلاعات اسناد به سیستمهای مالی.
- پردازش خودکار فایلهای ورودی در Google Drive.
- ساخت Pipeline برای پردازش اسناد حسابداری.
- ایجاد نمونه اولیه سیستم Document Processing با n8n.
- استخراج اطلاعات از تصاویر اسناد بدون ورود دستی.
- آمادهسازی داده برای تحلیلهای مالی و گزارشگیری.
البته Workflow فعلی بهطور خاص برای استخراج تراکنشها طراحی شده است. با تغییر Promptها میتوان آن را برای انواع دیگری از اسناد نیز توسعه داد.
پیشنیازها در استخراج متن از PDF با n8n
برای اجرای کامل Template به چند سرویس و Credential نیاز دارید.
n8n
ابتدا باید n8n نصب و قابل اجرا باشد. Workflow میتواند روی نسخه مناسب n8n بهصورت Cloud یا Self-hosted اجرا شود.
Google Drive
این Workflow برای دریافت فایل ورودی و ذخیره فایل CSV خروجی از Google Drive استفاده میکند.
Google Service Account
در Template از Credential مربوط به Google Service Account برای دسترسی به Google Drive استفاده شده است. Service Account باید مجوز دسترسی مناسب به Folderهای موردنظر داشته باشد.
OpenRouter
مسیر PDF از OpenRouter برای تحلیل متن استخراجشده استفاده میکند. بنابراین باید یک حساب OpenRouter و API Token معتبر داشته باشید.
Google Gemini
مسیر تصویر از Node مربوط به Google Gemini استفاده میکند. بنابراین باید Credential مربوط به Google Gemini یا دسترسی Google Cloud موردنیاز را تنظیم کنید.
پوشه ورودی و خروجی
یک پوشه در Google Drive برای فایلهای PDF و تصاویر ورودی نیاز دارید. همچنین Workflow یک پوشه با عنوان CSV Exports را برای فایلهای خروجی در نظر گرفته است.
دانلود Template در استخراج متن از PDF با n8n
فایل JSON این Workflow را از این قسمت دانلود کنید
پسوورد فایل فشرده: danixai.com
آموزش Import کردن Workflow در استخراج متن از PDF با n8n
- وارد داشبورد n8n شوید.
- روی Import from File کلیک کنید.
- فایل JSON را انتخاب کنید.
- Workflow ایجاد خواهد شد.
- Credentialهای موردنیاز را تنظیم کنید.
ساختار Workflow در استخراج متن از PDF با n8n
ساختار کلی Workflow شامل یک Trigger و دو مسیر پردازشی است:
Google Drive Trigger
↓
Route based on PDF or Image
↙︎ ↘︎
Download PDF Download Image
↓
Extract data from PDF Vertex A.I. extract text
↓
Send data to A.I. Convert to CSV2
↓
Convert to CSV
↓
Upload to Google Drive Upload to Google Drive1
مسیر PDF و تصویر در بخش میانی از هم جدا میشوند، زیرا نحوه پردازش این دو نوع فایل متفاوت است.
برای PDF ابتدا متن از فایل استخراج میشود و سپس مدل زبانی متن را تحلیل میکند. برای تصویر، فایل به مدل Gemini داده میشود تا مدل مستقیماً محتوای تصویری را تحلیل کند.
آموزش کامل تمام Nodeها در استخراج متن از PDF با n8n
Get PDF or Images
این Node از نوع Google Drive Trigger است و نقطه شروع Workflow محسوب میشود.
وظیفه آن این است که Google Drive را برای ایجاد فایل جدید در یک Folder مشخص بررسی کند. در تنظیمات Template، رویداد fileCreated انتخاب شده است.
Trigger فقط روی یک Folder خاص کار میکند و بررسی آن هر یک دقیقه انجام میشود. بنابراین اگر فایل PDF یا تصویر جدیدی در Folder قرار بگیرد، Workflow میتواند آن را دریافت و پردازش کند.
Credential این Node از نوع Google Service Account است. این Service Account باید دسترسی لازم به Folder داشته باشد.
ورودی مستقیمی از Node دیگری ندارد، زیرا خودش Trigger است. خروجی آن شامل اطلاعات فایل جدید مانند ID و MIME Type است.
Route based on PDF or Image
این Node از نوع Switch است و وظیفه آن تشخیص نوع فایل و انتخاب مسیر مناسب است.
مقدار mimeType فایل ورودی بررسی میشود. اگر مقدار آن دقیقاً application/pdf باشد، خروجی PDF انتخاب میشود.
برای تصاویر نیز شرط image/ با عملیات Contains استفاده شده است. بنابراین MIME Typeهایی مانند image/jpeg یا image/png میتوانند وارد مسیر تصویر شوند.
این Node بخش مهمی از Workflow است، زیرا باعث میشود PDF و تصویر با روش پردازشی متفاوتی بررسی شوند.
اگر نوع فایل دیگری وارد Folder شود، ممکن است هیچکدام از مسیرهای تعریفشده اجرا نشوند. در پروژههای واقعی میتوان خروجی دیگری برای فایلهای پشتیبانینشده اضافه کرد.
Download PDF
این Node از نوع Google Drive است و فایل PDF شناساییشده را دانلود میکند.
File ID مستقیماً از خروجی Node Get PDF or Images دریافت میشود. بنابراین لازم نیست فایل PDF را بهصورت دستی در این Node انتخاب کنید.
Credential Google Service Account برای دانلود فایل استفاده میشود.
گزینه executeOnce نیز فعال است. این تنظیم در سناریوی حاضر باعث میشود Node در هر اجرای مربوط به ورودی، یک بار عملیات خود را انجام دهد.
خروجی این Node داده Binary فایل PDF است که در مرحله بعد توسط Extract data from PDF پردازش میشود.
Download Image
این Node مشابه Download PDF است، اما برای فایلهای تصویری استفاده میشود.
پس از اینکه Switch تشخیص داد فایل از نوع تصویر است، ID فایل از Trigger دریافت شده و تصویر از Google Drive دانلود میشود.
داده خروجی بهصورت Binary در اختیار Node Vertex A.I. extract text قرار میگیرد.
در این Node گزینه retryOnFail غیرفعال شده است و alwaysOutputData فعال است. بنابراین رفتار آن در شرایط خطا با Download PDF کاملاً یکسان نیست.
اگر تصاویر حساس یا مهم پردازش میشوند، بهتر است در نسخه Production برای Retry و مدیریت خطا سیاست مشخصی تعریف شود.
Extract data from PDF
این Node از نوع Extract from File است و برای استخراج متن از PDF استفاده میشود.
عملیات روی pdf تنظیم شده است. بنابراین فایل Binary دریافتشده از Download PDF به متن قابل پردازش تبدیل میشود.
این مرحله در مسیر PDF اهمیت زیادی دارد. OpenRouter در مرحله بعد، متن استخراجشده را دریافت میکند؛ بنابراین مدل هوش مصنوعی در این مسیر مستقیماً فایل PDF را نمیبیند.
خروجی این Node شامل Property مربوط به متن است که در Node Send data to A.I. مورد استفاده قرار میگیرد.
اگر PDF اسکنشده باشد و متن قابل استخراج نداشته باشد، کیفیت این مرحله میتواند محدود شود. در چنین شرایطی ممکن است نیاز به OCR یا مسیر پردازش تصویری جداگانه وجود داشته باشد.
Send data to A.I.
این Node یک HTTP Request است و متن استخراجشده از PDF را به OpenRouter ارسال میکند.
Endpoint مورد استفاده، API مربوط به Chat Completions در OpenRouter است. درخواست با متد POST ارسال میشود.
مدل تعریفشده در این درخواست meta-llama/llama-3.1-70b-instruct:free است. بنابراین مسیر PDF از مدل Llama برای تحلیل متن استفاده میکند.
Prompt به مدل میگوید که یک صورتحساب بانکی در اختیار دارد و باید تمام تراکنشها را به CSV تبدیل کند. علاوه بر آن، مدل باید یک ستون به نام category اضافه کرده و بر اساس اطلاعات تراکنش، دستهبندی مناسبی اختصاص دهد.
یکی از مهمترین بخشهای Prompt عبارت مربوط به خروجی است که مدل را ملزم میکند فقط داده CSV را از ردیف Header آغاز کند.
Credential این Node از نوع Header Auth است و برای ارسال Authorization به OpenRouter استفاده میشود. مقدار Authorization باید شامل Bearer Token معتبر باشد.
Convert to CSV
این Node وظیفه تبدیل خروجی مسیر PDF به فایل CSV را دارد.
پس از دریافت پاسخ مدل، داده باید به فرمتی تبدیل شود که بتوان آن را بهعنوان فایل ذخیره کرد.
این Node از نوع Convert to File است. خروجی آن فایل قابل ذخیرهسازی است که در مرحله بعد به Google Drive ارسال میشود.
اگر مدل بهجای CSV واقعی، متن توضیحی تولید کند، کیفیت فایل نهایی نیز تحت تأثیر قرار میگیرد. به همین دلیل Prompt مربوط به Send data to A.I. اهمیت زیادی دارد.
Upload to Google Drive
این Node فایل CSV تولیدشده را در Google Drive ذخیره میکند.
Folder مقصد با نام CSV Exports در تنظیمات Workflow مشخص شده است. همچنین نام فایل با مقدار $today تولید میشود.
در نتیجه فایل خروجی در فضای Google Drive قرار میگیرد و میتوان از آن برای پردازشهای بعدی استفاده کرد.
در پروژههای واقعی بهتر است نام فایل اطلاعات بیشتری داشته باشد؛ برای مثال نام فایل ورودی، تاریخ و ساعت پردازش یا شناسه سند. این کار از برخورد نام فایلها جلوگیری میکند.
Convert to CSV2
این Node نسخه دوم Convert to File است و در مسیر تصویر قرار دارد.
پس از اینکه Gemini اطلاعات تراکنشهای موجود در تصویر را استخراج کرد، خروجی آن به این Node منتقل میشود.
وظیفه Node تبدیل نتیجه مدل به فایل خروجی قابل ذخیره است.
ساختار این مسیر تقریباً مشابه مسیر PDF است، اما منبع داده بهجای OpenRouter، خروجی Vertex A.I. extract text است.
Upload to Google Drive1
این Node مشابه Upload to Google Drive است، اما برای مسیر تصویر استفاده میشود.
فایل CSV تولیدشده از Convert to CSV2 در Folder CSV Exports ذخیره میشود.
استفاده از دو Node جداگانه برای Upload، مسیرهای PDF و تصویر را مستقل نگه میدارد.
در صورت توسعه Workflow میتوان این دو مسیر را بعداً با منطق مشترک ترکیب کرد، اما ساختار فعلی برای درک و نگهداری ساده است.
Google Gemini Chat Model
این Node مدل زبانی Google Gemini را برای مسیر تصویر فراهم میکند.
مدل تعریفشده در Template برابر با models/gemini-1.5-pro-latest است.
این Node مستقیماً به مسیر اصلی Workflow متصل نیست، بلکه از طریق اتصال ai_languageModel به Node Vertex A.I. extract text متصل شده است.
در نتیجه Vertex A.I. extract text از این Node بهعنوان مدل زبانی استفاده میکند.
Credential مربوط به Google Gemini در این Node قرار دارد. برای استفاده واقعی باید Credential معتبر محیط خودتان را تنظیم کنید.
نکته مهم این است که نام Node به Vertex AI اشاره دارد، اما نوع Credential و مدل در JSON بر مبنای اتصال Google Gemini تنظیم شدهاند. بنابراین هنگام راهاندازی Template باید تنظیمات فعلی n8n و حساب Google خود را با این Node تطبیق دهید.
Vertex A.I. extract text
این Node قلب مسیر تصویر است و از نوع Basic LLM Chain محسوب میشود.
وظیفه آن تحلیل تصویر و استخراج تراکنشهای موجود در تصویر است.
در Prompt از مدل خواسته شده تصویر مربوط به تراکنشهای پرداخت را بخواند و تمام تراکنشها را به CSV تبدیل کند. همچنین مانند مسیر PDF، ستونی به نام category باید ایجاد شود.
این Node دارای یک پیام تصویری از نوع imageBinary است. بنابراین تصویر Binary دریافتشده از Download Image به مدل ارسال میشود.
همچنین گزینه hasOutputParser فعال است. با این حال در JSON ارائهشده Output Parser جداگانهای به آن متصل نشده است. بنابراین اگر کنترل دقیق ساختار خروجی لازم باشد، بهتر است در نسخه توسعهیافته یک Output Parser مناسب اضافه شود.
خروجی این Node به Convert to CSV2 منتقل میشود.
Sticky Noteها و نقش آنها در استخراج متن از PDF با n8n
Workflow چند Sticky Note دارد که بخشی از مستندات داخلی Template هستند.
Sticky Note اصلی توضیح میدهد که هدف Workflow استخراج اطلاعات PDF و تصویر و تبدیل آن به CSV است.
Sticky Note مربوط به Google Drive توضیح میدهد که باید Folder ورودی ساخته شود و Service Account به آن دسترسی داشته باشد.
درSticky Note مربوط به OpenRouter نیز نحوه تنظیم Header Authorization را توضیح میدهد. در این بخش باید API Token بهصورت امن در Credential قرار گیرد.
تو Sticky Note مربوط به Vertex AI نیز به فعالسازی سرویس و تنظیم دسترسی Google Cloud اشاره دارد.
این Sticky Noteها در اجرای Workflow نقشی ندارند و صرفاً برای راهنمایی توسعهدهنده در محیط n8n هستند.
مسیر PDF چگونه کار میکند؟
وقتی فایل جدیدی در Google Drive قرار میگیرد، Trigger اطلاعات آن را دریافت میکند.
Switch بر اساس MIME Type تصمیم میگیرد که فایل PDF است یا تصویر. برای PDF، Download PDF فایل را دریافت میکند.
Extract data from PDF محتوای متنی فایل را استخراج میکند. سپس Send data to A.I. متن را به OpenRouter ارسال میکند.
مدل Llama تراکنشها را شناسایی کرده و خروجی CSV تولید میکند. Convert to CSV خروجی را به فایل تبدیل کرده و Upload to Google Drive آن را در Folder خروجی ذخیره میکند.
بنابراین مسیر PDF به شکل زیر است:
Google Drive → Download PDF → Extract PDF → OpenRouter → Convert to CSV → Google Drive
مسیر تصویر چگونه کار میکند؟
برای تصویر، پس از تشخیص MIME Type، فایل به Download Image منتقل میشود.
سپس تصویر به Vertex A.I. extract text ارسال میشود. این Node از Google Gemini Chat Model بهعنوان مدل زبانی استفاده میکند.
Gemini تصویر را تحلیل کرده و تراکنشهای موجود را به CSV تبدیل میکند.
Convert to CSV2 نتیجه را به فایل تبدیل کرده و Upload to Google Drive1 آن را در Folder خروجی ذخیره میکند.
مسیر تصویر به شکل زیر است:
Google Drive → Download Image → Gemini → Convert to CSV → Google Drive
نحوه شخصیسازی Workflow در استخراج متن از PDF با n8n
تغییر Prompt مسیر PDF
Prompt در Node Send data to A.I. قرار دارد.
میتوانید از مدل بخواهید علاوه بر تراکنشها، اطلاعات دیگری مانند تاریخ، مبلغ، نوع تراکنش، نام فروشنده یا توضیحات را نیز استخراج کند.
برای دادههای مالی بهتر است نام ستونها را دقیقاً مشخص کنید تا خروجی در فایل CSV ساختار یکسانی داشته باشد.
تغییر Prompt مسیر تصویر
Prompt در Node Vertex A.I. extract text قرار دارد.
اگر تصویر شما بهجای تراکنش بانکی شامل فاکتور، رسید، جدول یا فرم باشد، میتوانید Prompt را متناسب با آن تغییر دهید.
مهم است که مدل بداند چه اطلاعاتی را استخراج کند و چه ساختاری برای خروجی ارائه دهد.
تغییر مدل AI
در مسیر PDF، مدل در HTTP Request مشخص شده است.
در مسیر تصویر، مدل در Google Gemini Chat Model تعریف شده است.
میتوانید هر دو مدل را متناسب با نیاز پروژه تغییر دهید. با این حال باید قابلیت مدل، هزینه، محدودیت ورودی و کیفیت پردازش سند را بررسی کنید.
تغییر Google Drive
Folder ورودی در Get PDF or Images و Folder خروجی در Nodeهای Upload مشخص شدهاند.
برای استفاده در پروژه خودتان باید این Folderها را با پوشههای Google Drive خودتان جایگزین کنید.
همچنین Service Account باید به پوشههای مربوطه دسترسی داشته باشد.
تغییر زمانبندی
Trigger فعلی هر یک دقیقه Google Drive را بررسی میکند.
اگر حجم فایلها زیاد باشد، میتوانید زمانبندی را با توجه به نیاز پروژه تغییر دهید.
برای پروژههایی که پردازش تقریباً لحظهای لازم دارند، باید محدودیتهای Trigger و زیرساخت n8n را نیز در نظر بگیرید.
تغییر مسیر پردازش فایلها
Switch در حال حاضر فقط PDF و Image را تشخیص میدهد.
میتوانید مسیرهای جدیدی برای فرمتهایی مانند CSV، XLSX یا فایلهای متنی ایجاد کنید.
برای هر فرمت نیز میتوان منطق استخراج و تبدیل مخصوص همان نوع داده را اضافه کرد.
مزایای استفاده از این Workflow در استخراج متن از PDF با n8n
- حذف بخش قابل توجهی از ورود دستی اطلاعات.
- پردازش خودکار فایلهای جدید Google Drive.
- پشتیبانی همزمان از PDF و تصویر.
- استفاده از مدل هوش مصنوعی برای استخراج داده.
- تبدیل مستقیم اطلاعات استخراجشده به CSV.
- دستهبندی خودکار تراکنشها.
- ذخیره خودکار خروجی در Google Drive.
- امکان تغییر Prompt بدون بازطراحی کل Workflow.
- قابلیت جایگزینی مدلهای هوش مصنوعی.
- مناسب برای ساخت سیستمهای Document Processing.
- قابل توسعه برای سیستمهای مالی و حسابداری.
- کاهش زمان پردازش اسناد تکراری.
نکات مهم در استخراج متن از PDF با n8n
- Service Account باید به Folder ورودی Google Drive دسترسی داشته باشد.
- Folder خروجی نیز باید برای Service Account قابل دسترسی باشد.
- API Token مربوط به OpenRouter را داخل متن Workflow یا Sticky Note قرار ندهید.
- مدل انتخابی OpenRouter باید توانایی پردازش متن استخراجشده را داشته باشد.
- کیفیت PDF روی کیفیت استخراج متن تأثیر دارد.
- PDFهای اسکنشده ممکن است با Extract from File نتیجه مطلوبی نداشته باشند.
- برای تصاویر بیکیفیت، خروجی Gemini ممکن است اشتباه باشد.
- Prompt را برای قالب CSV دقیق طراحی کنید.
- خروجی مدل را قبل از ذخیره اطلاعات مالی اعتبارسنجی کنید.
- استفاده از
$todayبرای نام فایل میتواند باعث نام تکراری در یک روز شود. - برای حجم زیاد فایلها بهتر است Retry و Error Handling اضافه شود.
- مصرف API مدلهای هوش مصنوعی را کنترل کنید.
- اطلاعات مالی حساس را با توجه به سیاستهای حریم خصوصی سرویس انتخابی پردازش کنید.
- مدلها ممکن است در تشخیص یا دستهبندی تراکنشها دچار خطا شوند.
- اگر خروجی برای سیستم مالی استفاده میشود، Validation انسانی یا منطقی را در نظر بگیرید.
خطاهای رایج (Troubleshooting) در استخراج متن از PDF با n8n
Workflow فایل جدید Google Drive را تشخیص نمیدهد
علت: Trigger به Folder اشتباه متصل است یا Service Account دسترسی لازم را ندارد.
راهحل: Folder انتخابشده در Get PDF or Images را بررسی کنید و مطمئن شوید Service Account با دسترسی مناسب به آن Folder اضافه شده است.
فایل PDF دانلود نمیشود
علت: File ID معتبر نیست یا Credential Google Drive اجازه دسترسی به فایل را ندارد.
راهحل: خروجی Trigger را بررسی کنید و مطمئن شوید ID فایل به Download PDF منتقل میشود. سپس دسترسی Service Account را بررسی کنید.
فایل تصویر پردازش نمیشود
علت: MIME Type تصویر با شرط image/ مطابقت ندارد یا فایل بهدرستی دانلود نشده است.
راهحل: مقدار mimeType خروجی Trigger را بررسی کنید و مطمئن شوید فایل Binary در Download Image ایجاد شده است.
OpenRouter خطای احراز هویت میدهد
علت: Header Authorization تنظیم نشده یا API Token معتبر نیست.
راهحل: Credential مربوط به Header Auth را بررسی کنید. مقدار Authorization باید بر اساس API Token معتبر OpenRouter تنظیم شود.
خروجی CSV نامرتب یا ناقص است
علت: مدل هوش مصنوعی خروجی را دقیقاً مطابق Prompt تولید نکرده است.
راهحل: Prompt را دقیقتر کنید و نام ستونها، ترتیب ستونها و فرمت خروجی را مشخص کنید. همچنین میتوانید یک مرحله Validation یا Code Node بعد از مدل اضافه کنید.
PDF اسکنشده اطلاعاتی تولید نمیکند
علت: Extract data from PDF برای استخراج مستقیم متن مناسب است، اما یک PDF اسکنشده ممکن است متن واقعی قابل استخراج نداشته باشد.
راهحل: برای PDFهای اسکنشده میتوان فایل را به مسیر تصویری منتقل کرد یا یک مرحله OCR/پردازش Vision به Workflow اضافه کرد.
Gemini نمیتواند تراکنشها را تشخیص دهد
علت: کیفیت تصویر پایین است یا اطلاعات تراکنشها بهوضوح قابل مشاهده نیست.
راهحل: تصویر با وضوح بالاتر استفاده کنید و Prompt را دقیقتر کنید. همچنین مدل دیگری را برای مقایسه آزمایش کنید.
فایل CSV در Google Drive ذخیره نمیشود
علت: Folder خروجی برای Service Account قابل دسترسی نیست یا تنظیمات Google Drive نادرست است.
راهحل: Folder مربوط به CSV Exports را بررسی کنید و دسترسی Service Account را روی آن تنظیم کنید.
بهبود Workflow برای استفاده حرفهای در استخراج متن از PDF با n8n
Template فعلی برای یک فرایند خودکار پایه بسیار مناسب است، اما برای محیط Production میتوان امکانات بیشتری به آن اضافه کرد.
یکی از مهمترین بهبودها، اضافه کردن مدیریت خطا است. اگر API هوش مصنوعی در دسترس نباشد یا Google Drive خطا بدهد، بهتر است Workflow بتواند خطا را ثبت کرده و در صورت نیاز عملیات را دوباره انجام دهد.
همچنین میتوان قبل از ذخیره CSV یک مرحله Validation اضافه کرد. این مرحله میتواند بررسی کند که Headerهای مورد انتظار وجود دارند و هر تراکنش دارای اطلاعات ضروری است.
برای اطلاعات مالی، میتوان خروجی مدل را با الگوی مورد انتظار مقایسه کرد. بهعنوان مثال، مقدار مبلغ باید یک مقدار عددی معتبر باشد و تاریخ باید ساختار قابل قبول داشته باشد.
در پروژههای بزرگتر نیز میتوان اطلاعات استخراجشده را علاوه بر CSV در PostgreSQL یا MySQL ذخیره کرد تا امکان گزارشگیری و تحلیل داده فراهم شود.
استفاده از Google Drive در این Workflow
Google Drive در این Template هم نقش منبع داده و هم مقصد داده را دارد.
فایل ورودی در یک Folder مشخص قرار میگیرد و Trigger ایجاد فایل جدید را شناسایی میکند. پس از پردازش، CSV در Folder دیگری ذخیره میشود.
استفاده از Service Account باعث میشود Workflow بتواند بدون ورود دستی کاربر به فایلها دسترسی داشته باشد. برای این کار باید Folderها با حساب سرویس به اشتراک گذاشته شوند.
این معماری برای اتوماسیون مناسب است، زیرا کاربر فقط کافی است فایل را در پوشه ورودی قرار دهد. مراحل دانلود، تحلیل، تبدیل و ذخیره خروجی بهصورت خودکار انجام میشوند.
نقش OpenRouter در مسیر PDF
OpenRouter در مسیر PDF وظیفه تحلیل متن استخراجشده را دارد.
نکته مهم این است که OpenRouter در این مسیر مستقیماً PDF را دریافت نمیکند. ابتدا Extract data from PDF محتوای متنی را استخراج میکند و سپس Send data to A.I. این متن را در درخواست API قرار میدهد.
مدل فعلی meta-llama/llama-3.1-70b-instruct:free است. این مدل بر اساس Prompt باید اطلاعات تراکنشها را استخراج و دستهبندی کند.
اگر مدل یا Endpoint را تغییر دهید، باید ساختار درخواست API را نیز متناسب با سرویس جدید بررسی کنید.
نقش Gemini در مسیر تصویر
Gemini در مسیر تصویر نقش Vision و تحلیل محتوای تصویری را دارد.
برخلاف مسیر PDF، تصویر ابتدا به متن تبدیل نمیشود. Download Image فایل را بهصورت Binary تحویل Vertex A.I. extract text میدهد و این Node تصویر را همراه Prompt به مدل ارسال میکند.
مدل تعریفشده در Template، Gemini 1.5 Pro است.
این ساختار زمانی مفید است که سند شما به شکل تصویر، اسکرینشات یا عکس از یک رسید وجود داشته باشد و بخواهید اطلاعات قابل مشاهده در آن را استخراج کنید.
نکته مهم درباره عنوان Vertex AI
نام Workflow و Sticky Note به Vertex AI اشاره میکنند و Node نیز با نام Vertex A.I. extract text مشخص شده است.
با این حال، در JSON ارائهشده Credential مربوط به Node مدل با نام Google Gemini(PaLM) Api account تعریف شده و Node مدل نیز از نوع Google Gemini Chat Model است.
بنابراین هنگام Import کردن Template نباید صرفاً بر اساس نام Node تصور کنید که تمام تنظیمات Vertex AI بهصورت خودکار آماده هستند.
باید Credentialهای Google را در محیط n8n خود بررسی کنید و مطمئن شوید روش احراز هویت، API فعال و مدل انتخابشده با زیرساخت فعلی شما سازگار است.
چرا خروجی CSV برای این Workflow مناسب است؟
CSV یک فرمت ساده و قابل استفاده در بسیاری از نرمافزارها و سیستمهای دادهای است.
وقتی اطلاعات تراکنشها به CSV تبدیل شوند، میتوان آنها را به Excel، Google Sheets، Database یا ابزارهای تحلیل داده منتقل کرد.
همچنین ساختار CSV برای پردازشهای بعدی در n8n مناسب است. میتوان بعد از تولید فایل، اطلاعات را دوباره خواند و روی هر تراکنش عملیات جداگانه انجام داد.
این موضوع باعث میشود Workflow حاضر تنها یک ابزار استخراج اطلاعات نباشد و بتواند بخشی از یک Pipeline بزرگتر پردازش داده باشد.
جمعبندی
Workflow استخراج اطلاعات PDF و تصویر با n8n یک نمونه کاربردی از ترکیب اتوماسیون، Google Drive و مدلهای هوش مصنوعی برای تبدیل اسناد غیرساختاریافته به داده قابل استفاده است.
در ابتدای فرایند، Google Drive Trigger فایلهای جدید را شناسایی میکند. سپس Switch بر اساس MIME Type تصمیم میگیرد فایل PDF است یا تصویر.
در مسیر PDF، فایل دانلود و متن آن استخراج میشود. سپس متن به OpenRouter ارسال میشود تا تراکنشها را تشخیص داده و در قالب CSV دستهبندی کند. در مسیر تصویر، فایل به Gemini ارسال میشود تا اطلاعات تراکنشهای موجود در تصویر مستقیماً استخراج شود.
هر دو مسیر در نهایت نتیجه را به فایل CSV تبدیل کرده و در Google Drive ذخیره میکنند. بنابراین کاربر میتواند فقط فایل را در پوشه ورودی قرار دهد و منتظر خروجی ساختاریافته باشد.
این Template میتواند نقطه شروع مناسبی برای سیستمهای پردازش صورتحساب، رسید، گزارش مالی و اسناد مشابه باشد. با اضافه کردن Validation، مدیریت خطا، Database و مدلهای تخصصیتر میتوان آن را برای محیطهای حرفهای توسعه داد.



