تصور کنید یک حسابرس مالی باید مجموع نهایی در صفحه ۵۰ یک گزارش ۱۰۰ صفحهای را تأیید کند، اما هیچ راهی برای یافتن منبع دقیق آن عدد در متن ندارد. این دقیقاً همان نقطه شکست اصلی در هوش مصنوعی اسناد است. LandingAI ADE این شکاف را پر میکند تا هر عدد استخراجشده را به مختصات دقیق پیکسلهایش در سند اصلی متصل کند و یک ردپای حسابرسی قابل تأیید ایجاد نماید.
بیشتر ابزارهای استخراج داده، جداول را به متن ساده تبدیل میکنند و رابطه بین سطرها و ستونها را از بین میبرند. در صنایع حساس مثل امور مالی یا انطباق (Compliance)، عددی که منبعش مشخص نباشد، عملاً بیارزش است. صنعت مدتهاست با مشکل «مجموعهای منتقلشده» (Carried Totals) و پانوشتهایی دستوپنجه نرم میکند که معنای یک مقدار را بهطور بنیادی تغییر میدهند. این موارد اغلب منجر به بروز توهم (Hallucination) در سیستمهای استاندارد تولید بازیابیافزا (RAG) میشود؛ یعنی مدل با اطمینان چیزی میگوید که اصلاً وجود ندارد، یا مقدار را بدون در نظر گرفتن شرط پانوشت گزارش میکند.
به نقل از راهنمای فنی منتشر شده در ۱۸ سپتامبر ۲۰۲۶، شرکت LandingAI این مشکل را با یک خط لوله سهمرحلهای شامل «تجزیه»، «استخراج» و «مبنیسازی» حل کرده است. این توالی تضمین میکند که خروجی نهایی JSON فقط یک متن تایپشده نباشد، بلکه به صورت بصری به سند منبع متصل شود.
خط لوله استخراج سهمرحلهای
فرآیند با مرحله تجزیه (Parse) و توسط مدل DPT-3 آغاز میشود. برخلاف روشهای سنتی نویسهخوانی نوری (OCR)، این مرحله PDF را به فرمت Markdown تبدیل میکند که در آن جداول به صورت HTML حفظ میشوند. این رویکرد از اثر «تخت شدن» (Flattening) جلوگیری کرده و سلولهای ادغامشده (Spanning Cells) را دستنخورده نگه میدارد.

خروجی این مرحله یک ساختار درختی مبنیسازی شده است. این درخت سند را به صفحات و صفحات را به بلوکها نگاشت میکند. هر بلوک دارای یک شناسه ثابت (Stable ID) و یک کادر محدودکننده نرمالشده (Normalized Bounding Box) است تا سیستم بداند هر تکه متن دقیقاً در کجای صفحه قرار دارد.
جزئیات فنی تجزیه
- ورودی/خروجی: متد
client.v2.parseفایلهای PDF و تصویر را میپذیرد. این متد سه جزء متمایز را برمیگرداند: Markdown، ساختار (Structure) و متادیتا. - درخت ساختار: ریشه این درخت سند است، فرزندان آن صفحات هستند و فرزندان صفحات، بلوکها. هر گره شامل نوع (Type)، شناسه ثابت، آفست کاراکترها (Span) و یک شیء مبنیسازی است.
- مدیریت جداول: گرههای جدول شامل فرزندانی هستند که هر کدام یک سلول مجزا را نمایندگی میکنند. چون هر جدول صفحه مربوط به خود را میشناسد، اگر یک صورتحساب در سه صفحه پخش شده باشد، سیستم آن را به جای یک توده متنی تخت، به صورت سه بلوک مجزای جدول برمیگرداند.
- متادیتا: پاسخ شامل
parsed.metadata.page_countبرای تعداد صفحات وparsed.metadata.billing.total_creditsبرای ردیابی دقیق مصرف اعتبار است.
برای اسناد بسیار حجیم، سیستم از Jobs API استفاده میکند. این قابلیت اجازه میدهد گزارشهایی تا ۶۰۰۰ صفحه یا فایلهای PDF تا حجم یک گیگابایت پردازش شوند تا خطاهای Timeout که در فراخوانیهای API همزمان (Synchronous) رایج است، رخ ندهد.
شکلدهی دادهها با طرحوارههای تایپشده
در مرحله دوم یعنی استخراج (Extract)، متن Markdown و یک طرحواره تعریفشده توسط کاربر — که معمولاً یک مدل Pydantic است — برای تولید JSON تایپشده استفاده میشود. چون مدل سند را به صورت کلنگر (Holistic) میبیند، میتواند یک ردیف در صفحه ۲ را به مجموع نهایی در صفحه ۱۰ متصل کند.
برای مثال، یک توسعهدهنده میتواند یک مدل Pydantic به نام Financials تعریف کند که شامل لیستی از اشیاء LineItem (با برچسب و مبلغ)، یک فیلد grand_total برای مقادیری که به صفحه نهایی منتقل میشوند و یک لیست footnotes برای ثبت متونی که به جدول وابسته هستند باشد.
کاربران میتوانند استخراج را روی حالت strict=True تنظیم کنند. این تنظیم باعث میشود اگر مدل نتواند فیلد درخواستی را پشتیبانی کند، خطای ۴۲۲ صادر شود. این موضوع برای خط لولههای عملیاتی که نمیتوانند حذف خاموش دادهها (Silent Omissions) را تحمل کنند، حیاتی است.
در کنار JSON، سیستم extraction_metadata را تولید میکند. این متادیتا بازه دقیق کاراکترها در Markdown را که برای استخراج هر مقدار استفاده شده است، ثبت میکند و به عنوان پلی به مرحله نهایی عمل میکند.
مبنیسازی بصری و قابلیت حسابرسی
مرحله نهایی یعنی مبنیسازی (Ground)، بازههای کاراکتری را به کادرهای بصری مرحله تجزیه متصل میکند. نتیجه این است که هر فیلد JSON به یک block_id، شماره صفحه و یک کادر مختصاتی (نرمالشده از ۰ تا ۱) گره میخورد.
سازوکارهای مبنیسازی
- فرآیند نگاشت: متد
client.v2.groundمتادیتای استخراج (از مرحله Extract) و ساختار (از مرحله Parse) را میگیرد و هر فیلد را به بلوکی که از آن نقل شده است، متصل میکند. - یکپارچگی دادهها: برای حفظ صداقت سیستم، متادیتای استخراج باید حتماً از اجرای Extract روی Markdown همان پاسخ Parse آمده باشد. تجزیه مجدد (Re-parsing) باعث جابجایی بازه کاراکترها شده و استخراجات قبلی را باطل میکند؛ بنابراین باید از
doc_idبرای جفتسازی استفاده شود. - فرمت خروجی: فیلدی مثل
grand_totalیک شناسه بلوک خاص (مثلاً "table-cell-42")، شماره صفحه، بازه کاراکتری و مختصات کادر محدودکننده (xmin,ymin,xmax,ymax) را برمیگرداند.
سازمانهایی که سیاست عدم ذخیره داده (Zero Data Retention) دارند، میتوانند این مبنیسازی را در سمت کلاینت با تطبیق بازههای کاراکتری در برابر ساختار بلوکها انجام دهند. این امر تضمین میکند که یک بازرس انطباق بتواند دقیقاً منبع یک عدد را در رابط کاربری هایلایت کند.
قابلیت اطمینان در محیط عملیاتی
LandingAI کتابخانه ADE را برای مدیریت پیچیدگیهای اسکنهای دنیای واقعی ساخته است. اگر صفحات خاصی تجزیه نشوند، سیستم وضعیت HTTP 206 را برمیگرداند. این یعنی کل فرآیند به خاطر یک صفحه ناخوانا متوقف نمیشود و بقیه سند پردازش میگردد. صفحات شکستخورده به طور صریح در metadata.failed_pages لیست میشوند.
مقیاسپذیری و پیادهسازی
- نصب: نصب از طریق
pip install landingai-adeانجام میشود. کلاینت کلیدVISION_AGENT_API_KEYرا از محیط سیستم میخواند. کلیدها منطقهای هستند و برای کلیدهای اتحادیه اروپا بایدenvironment="eu"تنظیم شود. - پشتیبانی Async: برای محیطهای با تراکم درخواست بالا، کلاس
AsyncLandingAIADEفراخوانیهای awaitable را فراهم میکند. - مدیریت خطا: کتابخانه شامل انواع خطاهای خاصی مانند
JobWaitTimeoutError،JobFailedErrorوAPIStatusErrorاست تا تضمین شود خط لولهها به صورت کنترلشده دچار نقص شوند. - Jobs API: برای اسناد طولانی، متدهای
create,get,listوwaitدرclient.v2.parse_jobsوclient.v2.extract_jobsدر دسترس هستند.
این چرخش از «استخراج متن» به «مبنیسازی بصری»، معیار موفقیت هوش مصنوعی در تحلیل اسناد را تغییر میدهد. هدف دیگر فقط صحت (Accuracy) نیست، بلکه قابلیت تأیید کامل (Verifiability) است. برای توسعهدهندگان، این یعنی پایان چک کردن دستی توهمات مدل در جداول پیچیده.
با تبدیل PDF به یک درخت بصری به جای رشتهای از متن، LandingAI دقتی را فراهم میکند که برای گزارشهای مالی ۱۰-K و قراردادهای حقوقی ضروری است. تبدیل AI از یک جعبه سیاه به ابزاری شفاف، از طریق ارائه کادر محدودکننده برای هر کلید JSON محقق شده است.
توسعهدهندگان میتوانند پیش از مقیاسدهی به Jobs API برای اسناد چندصد صفحهای، این گردش کار را در ADE Playground در آدرس ade.landing.ai تست کنند.
گام بعدی شما
- اگر با اسناد مالی حجیم سروکار دارید، مدلهای Pydantic خود را برای استخراج سختگیرانه (
strict=True) تنظیم کنید. - برای کاهش خطاهای Timeout در اسناد بالای ۱۰۰ صفحه، از Jobs API به جای فراخوانیهای همزمان استفاده کنید.
- قابلیت هایلایت بصری را در رابط کاربری خود پیاده کنید تا کاربر نهایی بتواند منبع هر عدد را در PDF ببیند.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو