استخراج خودکار متن از PDF
مقدمه
مدیریت صورتحسابهای مالی، فاکتورها و رسیدها همواره یکی از زمانبرترین بخشهای کارهای اداری و حسابداری است. ورود دستی اطلاعات از روی فایلهای متنی یا تصاویر به جدولهای اکسل، علاوه بر احتمال بالای خطای انسانی، بخش زیادی از توان عملیاتی تیمها را هدر میدهد. اتوماسیون این فرایند میتواند دقت پردازش دادهها را به نزدیک ۱۰۰ درصد برساند و فرایند فاکتورنویسی یا تحلیل حساب را بهشدت سریعتر کند به همین دلیل میخوایم در مورد استخراج خودکار متن از PDF بیشتر صحبت کنیم.
در این مقاله آموزشی، نحوه پیادهسازی یک سناریوی جامع برای استخراج خودکار متن از PDF و تصویر را با استفاده از پلتفرم هوش مصنوعی n8n بررسی خواهیم کرد. این سناریو به شما اجازه میدهد فایلهای متنی یا تصویری شامل رسید و صورتحساب را مستقیماً از گوگلدریو دریافت کرده، اطلاعات آنها را به کمک مدلهای قدرتمندی نظیر Gemini و Llama تحلیل و دستهبندی کنید و در نهایت خروجی مرتبسازیشده را در قالب فایل CSV ذخیره نمایید.
پلتفرم n8n به عنوان یک ابزار اپنسورس و پیشرفته اتوماسیون، به شما این امکان را میدهد که هوش مصنوعی را در کنار سرویسهای ابری نظیر Google Drive و OpenRouter بدون نیاز به کدنویسی پیچیده به کار بگیرید. در ادامه گامبهگام یاد میگیرید چطور این ورکفلو را در محیط n8n خود پیادهسازی و شخصیسازی کنید.
N8N برای چه کسب و کارهایی مناسب است:
اگر سازمان شما کوچک می باشد و هم اکنون بسیاری از کار های خود را با نرم افزار هایی همچون اکسل انجام می دهید، N8N برای کسب و کار شما ایده آل است و در صورتی که کسب و کاری متوسط یا بزرگ دارید می توانید بخش های بسیاری از فرایند های غیر کلیدی خود را با این ابزار هوشمند کنید.
و اگر به پیادهسازی اختصاصی، اتصال n8n به نرمافزارهای سازمانی یا سفارشیسازی Workflowها متناسب با کسبوکارتان نیاز دارید، Danix با بررسی نیازهای کسبوکار تان، میتواند این فرایند را از طراحی تا استقرار برای شما انجام دهیم.
برای کسب و کارهای کوچک به این لینک مراجعه کنید.
همچنین اگر ترجیح میدهید شخصاً نصب و راهاندازی را انجام دهید، میتوانید از اطلاعات موجود در مقالات، دسته N8N استفاده کنید .همچنین می توانید template موجود در این workflow را به صورت رایگان از این قسمت دانلود کنید.
رمز فایل: danixai.com
قبل از شروع
اگر هنوز n8n را نصب نکردهاید، پیشنهاد میکنیم ابتدا مقاله «آموزش n8n» را مطالعه کنید. در آن مقاله، مراحل نصب با Node.js و Docker، راهاندازی اولیه و ساخت اولین Workflow بهصورت کامل آموزش داده شده است. پس از نصب و راهاندازی، به این مقاله بازگردید و مراحل پیادهسازی این Workflow را دنبال کنید.
این Workflow چرا برای استخراج خودکار متن از PDF اهمیت دارد؟
این سناریو یک ابزار هوشمند برای پردازش اسناد متنی و تصویری است. به محض اینکه یک فایل جدید (PDF یا تصویر) در پوشه مشخصی در Google Drive آپلود شود، این ورکفلو فعال میشود.
ابتدا فرمت فایل پردازش شده و بر اساس پسوند، وارد یکی از دو مسیر اختصاصی میشود:
-
مسیر فایلهای PDF: متن موجود در PDF استخراج شده و به مدل زبانی Llama 3.1 در پلتفرم OpenRouter ارسال میشود تا تراکنشها استخراج، دستهبندی و به فرمت CSV تبدیل شوند.
-
مسیر فایلهای تصویری: تصویر به مدل تصویری هوش مصنوعی Google Gemini (Vertex AI) متصل میشود تا متن و تراکنشهای درون تصویر خوانده شده، دستهبندی لازم انجام گیرد و ساختار CSV تولید شود.
در انتهای هر دو مسیر، فایل CSV استاندارد ساخته شده و در یک پوشه مقصد مشخص در گوگلدریو ذخیره میگردد.
کاربردهای این Workflow برای استخراج خودکار متن از PDF
-
اتوماسیون حسابداری و فاکتورها: استخراج خودکار لیست خرید، قیمتها و تاریخها از صورتحسابهای بانکی و رسیدهای پرداختی.
-
دیجیتالیسازی اسناد کاغذی: تبدیل عکس اسناد و برگههای فیزیکی به دادههای ساختاریافته قابل تحلیل در اکسل.
-
دستهبندی خودکار هزینهها: تحلیل متنی خریدهای انجامشده و تخصیص دستهبندیهای مالی مانند خوراک، حملونقل و تجهیزات اداری.
-
صرفهجویی در زمان تیمهای مالی: حذف فرایند ورود دستی اطلاعات (Data Entry) و کاهش چشمگیر خطای انسانی.
-
یکپارچهسازی سیستمهای مالی ابری: اتصال مستقیم دریافت اسناد از ورودیهای مختلف به پوشههای آرشیو حسابداری در Google Drive.
-
آمادهسازی دادهها برای گزارشگیری: ساخت سریع فایلهای CSV مرجع جهت ورود به نرمافزارهای BI یا داشبوردهای مدیریتی.
پیشنیازها
برای اجرای کامل این سناریو به موارد زیر نیاز خواهید داشت:
-
نصب و راهاندازی n8n: دسترسی به داشبورد فعال n8n.
-
حساب Google Cloud (Service Account): جهت اتصال n8n به Google Drive برای مانیتورینگ پوشه ورودی و ذخیره فایلهای CSV.
-
کلید API سرویس OpenRouter: برای دسترسی به مدل زبانی Llama 3.1 (یا سایر مدلهای رایگان و پولی).
-
دسترسی به Google Gemini API / Vertex AI: جهت پردازش تصویر و استخراج متن با مدلهای چندرسانهای Google.
-
پوشههای Google Drive: ساخت یک پوشه ورودی جهت آپلود اسناد و یک پوشه خروجی برای ذخیره CSVها.
دانلود Template
فایل JSON این Workflow را از این قسمت دانلود کنید.
آموزش Import کردن Workflow جهت استفاده از استخراج خودکار متن از PDF
وارد داشبورد n8n شوید. روی Import from File کلیک کنید. فایل JSON را انتخاب کنید. Workflow ایجاد خواهد شد. Credentialهای موردنیاز را تنظیم کنید.
ساختار Workflow برای استفاده از استخراج خودکار متن از PDF
ساختار کلی منطق اجرایی این سناریو بر اساس نوع فایل ورودی تقسیم میشود:
Get PDF or Images (Google Drive Trigger)
│
▼
Route based on PDF or Image (Switch)
├── [مسیر PDF] ──► Download PDF ──► Extract data from PDF ──► Send data to A.I. ──► Convert to CSV ──► Upload to Google Drive
└── [مسیر Image] ─► Download Image ──► Vertex A.I. extract text (با Gemini) ──► Convert to CSV2 ──► Upload to Google Drive1
آموزش کامل تمام Nodeها
۱. Node نام: Get PDF or Images (Google Drive Trigger)
-
وظیفه: نظارت بر یک پوشه مشخص در Google Drive و فعالسازی ورکفلو به محض افزودن فایل جدید.
-
ورودی: رویداد ساخت فایل جدید (fileCreated) در Google Drive.
-
خروجی: متادیتا و مشخصات فایل آپلود شده (مانند ID، Name، mimeType و…).
-
تنظیمات مهم:
-
Event: رویfileCreatedقرار دارد. -
Trigger On: رویspecificFolderتنظیم شده است. -
Folder to Watch: آیدی پوشه مبدا در گوگلدریو.
-
-
نکات قابل تغییر: بازه زمانی بررسی (Polling) یا پوشه مورد نظر جهت پایش.
-
دلیل استفاده: شروع خودکار فرایند استخراج داده بدون نیاز به مداخله دستی کاربر.
۲. Node نام: Route based on PDF or Image (Switch)
-
وظیفه: تفکیک مسیر پردازش فایلها بر اساس نوع آنها (PDF یا تصویر).
-
ورودی: متادیتای فایل متصلشده از Node قبلی (ویژگی
mimeType). -
خروجی: هدایت داده به خروجی ۱ (در صورت PDF بودن) یا خروجی ۲ (در صورت تصویر بودن).
-
تنظیمات مهم:
-
شرط اول: چک کردن برابر بودن
mimeTypeباapplication/pdf. -
شرط دوم: چک کردن حاوی بودن
mimeTypeبا عبارتimage/.
-
-
نکات قابل تغییر: افزودن شرطهای جدید برای فرمتهای دیگر مانند TXT یا DOCX.
-
دلیل استفاده: منطق پردازش متن صریح (PDF) با پردازش تصویر (OCR / Vision AI) متفاوت است؛ لذا این نود تفکیک مسیر را انجام میدهد.
۳. Node نام: Download PDF
-
وظیفه: دانلود محتوای باینری فایل PDF از Google Drive بر اساس شناسه دریافت شده.
-
ورودی: شناسه فایل (
$json.id) از نود Trigger. -
خروجی: دادههای باینری (Binary Data) فایل PDF.
-
تنظیمات مهم:
-
Operation: رویdownloadقرار گرفته است. -
File ID: به صورت دینامیک از نود اولیه خوانده میشود.
-
-
نکات قابل تغییر: فعالسازی گزینههای مدیریت خطا در صورت لزوم.
-
دلیل استفاده: برای خواندن متن PDF، ابتدا باید فایل خام باینری آن دانلود شود.
۴. Node نام: Extract data from PDF
-
وظیفه: خواندن محتوای فایل PDF باینری و تبدیل آن به متون متنی خام (Text).
-
ورودی: داده باینری فایل PDF دانلود شده.
-
خروجی: یک شیء JSON حاوی کل متن موجود در فایل (
$json.text). -
تنظیمات مهم:
Operationرویpdfتنظیم شده است. -
نکات قابل تغییر: تنظیم گزینههای استخراج صفحات خاص در صورت نیاز.
-
دلیل استفاده: تبدیل فایل باینری غیرقابل درک برای LLM به متون قابل تحلیل برای هوش مصنوعی.
۵. Node نام: Send data to A.I. (HTTP Request)
-
وظیفه: ارسال متن استخراج شده از PDF به API سرویس OpenRouter جهت تحلیل و ساخت ساختار CSV.
-
ورودی: متن استخراج شده از نود قبلی.
-
خروجی: پاسخ مدل هوش مصنوعی در قالب رشته متنی CSV شامل تمام تراکنشها و دستهبندی آنها.
-
تنظیمات مهم:
-
URL:[https://openrouter.ai/api/v1/chat/completions](https://openrouter.ai/api/v1/chat/completions) -
Method:POST -
Model:meta-llama/llama-3.1-70b-instruct:free -
Authentication: از نوعHeader Authبا کلیدAuthorization: Bearer {TOKEN}.
-
-
نکات قابل تغییر: تغییر دادن پرامپت جهت اضافه یا کم کردن ستونهای فایل خروجی یا تعویض مدل AI.
-
دلیل استفاده: تحلیل هوشمند متن، تشخیص دادههای مالی و تبدیل متن نامنظم به فرمت استاندارد CSV.
۶. Node نام: Download Image
-
وظیفه: دانلود فایل باینری تصویر از Google Drive در شاخه دوم ورکفلو.
-
ورودی: شناسه تصویر از نود Trigger.
-
خروجی: داده باینری فایل تصویر.
-
تنظیمات مهم:
Operationبرابر باdownloadاست. -
نکات قابل تغییر: تنظیم مدیریت خطای اجرای مجدد (Retry on Fail).
-
دلیل استفاده: دریافت فایل تصویر جهت ارسال به مدل Gemini Vision.
۷. Node نام: Google Gemini Chat Model
-
وظیفه: تعریف پیکربندی و احراز هویت مدل زبانی Gemini جهت استفاده در نودهای AI LangChain.
-
ورودی: اتصال از طریق پورت اختصاصی
ai_languageModel. -
خروجی: فراهم کردن موتور پردازش هوش مصنوعی برای Chain.
-
تنظیمات مهم:
modelNameرویmodels/gemini-1.5-pro-latestقرار گرفته است. -
نکات قابل تغییر: انتخاب مدلهای دیگر نظیر
gemini-1.5-flash. -
دلیل استفاده: مدل Gemini پرو قدرت بالایی در درک تصویر و استخراج متون از فاکتورها دارد.
۸. Node نام: Vertex A.I. extract text (Chain LLM)
-
وظیفه: ارسال تصویر دانلود شده به مدل Gemini، خواندن متن و تراکنشهای درون تصویر و تبدیل مستقیم آن به CSV.
-
ورودی: فایل باینری تصویر و مدل هوش مصنوعی Gemini.
-
خروجی: متن خروجی شامل دادههای CSV.
-
تنظیمات مهم:
-
Prompt Type:define -
استفاده از
HumanMessagePromptTemplateبا نوعimageBinary.
-
-
نکات قابل تغییر: پرامپت مربوط به استخراج ستونهای جدول.
-
دلیل استفاده: تحلیل دیداری تصاویر رسیدها و فاکتورها (OCR هوشمند) و ساخت خروجی CSV.
۹. Node نام: Convert to CSV / Convert to CSV2 (Convert to File)
-
وظیفه: تبدیل متن خروجی مدلهای هوش مصنوعی به فایل باینری استاندارد با فرمت
.csv. -
ورودی: دادههای متنی CSV تولیدشده توسط هوش مصنوعی.
-
خروجی: فایل باینری آماده آپلود با پسوند CSV.
-
تنظیمات مهم: تنظیمات پیشفرض تبدیل متن به فایل باینری.
-
نکات قابل تغییر: تغییر کدگذاری فایل (Encoding) یا نام فایل باینری در حافظه n8n.
-
دلیل استفاده: امکان ذخیرهسازی خروجی متنی در قالب یک فایل فیزیکی قابل دانلود.
۱۰. Node نام: Upload to Google Drive / Upload to Google Drive1
-
وظیفه: آپلود فایل CSV نهایی در پوشه خروجی مشخصشده در Google Drive.
-
ورودی: فایل باینری CSV.
-
خروجی: لینک و متادیتای فایل ذخیرهشده در گوگلدریو.
-
تنظیمات مهم:
-
Folder ID: شناسه پوشه مقصد برای فایلهای CSV. -
Name: استفاده از متغیر={{$today}}برای نامگذاری فایل با تاریخ روز.
-
-
نکات قابل تغییر: تغییر نحوه نامگذاری فایل خروجی جهت جلوگیری از اوررایت شدن.
-
دلیل استفاده: بایگانی منظم و خودکار خروجیها در فضای ابری.
سرویسهای جانبی استفادهشده در این سناریو
-
Google Drive: پلتفرم ذخیرهسازی ابری گوگل که در این سناریو هم به عنوان ورودی فایلها (Trigger) و هم به عنوان مقصد ذخیره خروجیها عمل میکند.
-
OpenRouter: یک پلتفرم رابط (Aggregator) برای APIهای مختلف هوش مصنوعی که امکان دسترسی آسان و اقتصادی به مدلهای مختلف از جمله Llama 3.1 را فراهم میکند.
-
Google Gemini (Vertex AI): مدل هوش مصنوعی چندرسانهای گوگل که توانایی بالایی در خواندن تصویر، انجام پردازش OCR و درک دادههای بصری دارد.
نحوه شخصیسازی Workflow
این قالب بسیار انعطافپذیر است و میتوانید بخشهای مختلف آن را متناسب با نیاز خود تغییر دهید:
-
تغییر Promptها: اگر قصد دارید اطلاعات بیشتری مثل شماره فاکتور، نام فروشنده یا مالیات را استخراج کنید، کافیست متن پرامپت در نودهای
Send data to A.I.یاVertex A.I. extract textرا ویرایش کرده و ستونهای درخواستی خود را به دستور دستور العمل افزودن CSV اضافه کنید. -
تغییر مدل AI: در نود
Send data to A.I.میتوانید از مدلهای پولی یا قویتر OpenRouter نظیر OpenAI GPT-4o یا Anthropic Claude استفاده کنید. همچنین در نود Gemini میتوانید مدل را بهgemini-1.5-flashجهت افزایش سرعت و کاهش هزینه تغییر دهید. -
تغییر Trigger: بهجای Google Drive میتوانید از نودهای دریافت ایمیل (Gmail)، تلگرام یا Webhook استفاده کنید تا اسناد از کانالهای مختلف وارد سیستم شوند.
-
تغییر مقصد ذخیرهسازی: به جای ذخیره فایل CSV در گوگلدریو، میتوانید دادهها را مستقیماً وارد یک جدول Google Sheets کنید یا به پایگاهداده ارسال نمایید.
مزایای استفاده از این Workflow در استخراج خودکار متن از PDF
-
پشتیبانی دوگانه از متن و تصویر: پردازش یکپارچه هم فایلهای PDF متنی و هم تصاویر و عکس رسیدها.
-
دستهبندی هوشمند دادهها: هوش مصنوعی علاوه بر استخراج داده، میتواند طبق متن، هر هزینه را در دسته مربوط به خود قرار دهد.
-
صرفهجویی عالی در زمان: پردازش لحظهای اسناد به محض آپلود بدون نیاز به دخالت کاربر.
-
کاهش هزینههای عملیاتی: استفاده از مدلهای رایگان یا بسیار ارزانقیمت مانند Llama 3.1 در OpenRouter.
-
انعطاف در انتخاب هوش مصنوعی: قابلیت تعویض سریع مدلهای زبانی بدون تغییر در ساختار کلی سناریو.
-
ساختار خروجی تمیز: تولید مستقیم فایلهای CSV آماده بارگذاری در نرمافزارهای حسابداری و اکسل.
نکات مهم
-
دسترسیهای Google Service Account: مطمئن شوید که ایمیل سرویس اکانت گوگل به پوشههای مبدا و مقصد در Google Drive اضافه شده و دسترسی Edit به آن داده شده است.
-
فرمت خروجی پرامپت: در پرامپتها تاکید شده است که هوش مصنوعی فقط و فقط دادههای CSV را بدون هیچ متن اضافی یا توضیح دیگری برگرداند.
-
رمزگذاری متون (URL Encode): هنگام ارسال متن PDF به OpenRouter در نود HTTP Request، حتماً از تابع
encodeURIComponentاستفاده شده است تا کاراکترهای خاص و خطوط جدید باعث برهمخوردن ساختار JSON نشوند. -
محدودیت حجم فایلها: پردازش فایلهای بسیار سنگین PDF ممکن است باعث افزایش زمان پاسخگویی API یا اتمام مهلت زمانی (Timeout) شود.
-
اعتبارسنجی خروجی AI: مدلهای هوش مصنوعی ممکن است در موارد نادر ساختار CSV را دچار خطا کنند؛ تنظیم دقیق پرامپت به ثبات خروجی کمک میکند.
-
تنظیم دقیق بازه پایش (Polling): نود Trigger به صورت پیشفرض هر یک دقیقه یکبار پوشه را بررسی میکند؛ میتوانید این زمان را بر اساس نیاز خود تغییر دهید.
-
نامگذاری فایلهای خروجی: استفاده از تاریخ روز (
$today) ممکن است در صورت وجود چند فایل در یک روز باعث جایگزینی فایلها شود؛ بهتر است نام اولیه فایل را نیز به فرمول اضافه کنید. -
فعالسازی Vertex AI: برای استفاده از Gemini حتماً باید API مربوط به Gemini / Vertex AI را در کنسول گوگل کلود خود فعال کرده باشید.
خطاهای رایج (Troubleshooting)
۱. خطای 404 یا Folder Not Found در Google Drive
-
علت: دسترسی نداشتن Service Account به پوشه مورد نظر یا اشتباه بودن Folder ID.
-
راهحل: ایمیل Service Account را کپی کرده و در Google Drive، پوشههای ورودی و خروجی را با این ایمیل به اشتراک بگذارید (Share).
۲. خطای Unauthorized یا 401 در نود HTTP Request
-
علت: نامعتبر بودن یا عدم تنظیم صحیح API Key سرویس OpenRouter.
-
راهحل: کلید API جدیدی در سایت OpenRouter ایجاد کرده و در بخش Credential مربوط به Header Auth به شکل
Bearer YOUR_API_KEYوارد کنید.
۳. خراب شدن ساختار CSV در خروجی
-
علت: مدل هوش مصنوعی پاسخ خود را همراه با توضیحات اضافی متنی یا علامتهای کدهای مارکداون (“`csv) برگردانده است.
-
راهحل: پرامپت خود را اصلاح کنید و عباراتی مانند “Return ONLY raw CSV starting with header, no markdown formatting” را به آن اضافه کنید.
۴. خطای عدم استخراج متن از PDF (خروجی خالی)
-
علت: اسکن بودن فایل PDF (تصویری بودن صفحات PDF).
-
راهحل: نود
Extract data from PDFمتون واقعی را استخراج میکند. اگر PDF به صورت اسکن یا عکس باشد، باید ابتدا صفحات آن به تصویر تبدیل شده و به نود Gemini ارسال شوند.
۵. خطای مربوط به Quota یا Rate Limit در Gemini API
-
علت: اتمام سهمیه استفاده مجانی یا محدودیت ارسال درخواست در دقیقه در کلید گوگل.
-
راهحل: در صورت لزوم پرداخت حساب گوگل کلود را فعال کنید یا بازه زمانی بررسی فایلها در Trigger را افزایش دهید.
جمعبندی
اتوماسیون فرایندهای متنی و مالی با استفاده از n8n و هوش مصنوعی، ابزاری بسیار قدرتمند برای سازمانها و کسبوکارهایی است که میخواهند از کارهای تکراری و پرخطا فاصله بگیرند. فرایند استخراج خودکار متن از PDF و تصویر که در این مقاله آموزش داده شد، نمونهای کامل از ترکیب ابزارهای ذخیرهسازی ابری، هوش مصنوعی تصویری و مدلهای زبانی برای تبدیل دادههای غیرساختاریافته به دادههای ارزشمند و قابل تحلیل در قالب فایلهای CSV است. با پیادهسازی این قالب در محیط n8n خود، میتوانید بهراحتی فرایندهای ورودی اسناد مالی خود را مدیریت کرده و آن را بر اساس نیازهای خاص مجموعه خود شخصیسازی کنید.
سوالات متداول
آیا این سناریو از زبان فارسی در فاکتورها پشتیبانی میکند؟
بله، مدلهای Gemini و Llama 3.1 هر دو توانایی بسیار خوبی در خواندن و استخراج متون فارسی از روی فایلها و تصاویر دارند.
چگونه میتوانم ستونهای موجود در فایل CSV خروجی را تغییر دهم؟
کافیست در نودهای هوش مصنوعی (Send data to A.I. و Vertex A.I. extract text) متن پرامپت را ویرایش کرده و اسامی ستونهای دلخواه خود را مشخص کنید.
اگر فایل PDF حاوی عکس باشد، آیا سیستم متن آن را میخواند؟
نود Extract PDF متنهای ساختاری را میخواند. اگر PDF اسکنشده یا کاملاً تصویری باشد، بهتر است مسیر آن را به سمت نود Gemini که قابلیت OCR دارد هدایت کنید.
آیا استفاده از OpenRouter در این ورکفلو رایگان است؟
پلتفرم OpenRouter دارای مدلهای رایگان (از جمله مدل استفاده شده در این سناریو) و همچنین مدلهای پولی است که بر اساس میزان مصرف هزینه دریافت میکنند.
چگونه از اوررایت شدن فایلهای خروجی همنام جلوگیری کنم؟
در نودهای Upload به گوگلدریو، میتوانید در بخش Name علاوه بر تاریخ، از نام فایل اصلی یا متغیر شناسه اجرای ورکفلو ($execution.id) استفاده کنید.



