بازگشت به نمونه کارها
AIPythonNext.jsOpenAI

پردازشگر هوشمند اسناد

خط لوله‌ی پردازش هوشمند اسناد با GPT-4 و فاین-تیونینگ اختصاصی که ۸۰٪ از وظایف دستی استخراج داده را خودکار کرد.

مسئله

یک شرکت فناوری حقوقی (legal-tech) هفته‌ای بیش از ۴۰ ساعت صرف استخراج دستی بندهای کلیدی و ابرداده از قراردادها می‌کرد، پیش از آنکه بتوان آن‌ها را تحلیل کرد. اسناد از نظر قالب و زبان تفاوت زیادی داشتند — یک سیستم مبتنی بر قوانین ثابت (rule-based) پیش‌تر یک‌بار شکست خورده بود.

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

راهکار

یک خط لوله‌ی پردازش اسناد سرتاسر طراحی و پیاده‌سازی کردم:

مرحله ۱ — دریافت و پیش‌پردازش

یک سرویس پایتون اسناد را از منابع مختلف (پیوست ایمیل، S3، بارگذاری دستی) دریافت می‌کند. PDFها را با PyMuPDF نرمال‌سازی می‌کند، چیدمان چندستونی را مدیریت می‌کند و زبان سند را تشخیص می‌دهد.

مرحله ۲ — خط لوله‌ی استخراج

به‌جای یک پرامپت بزرگ و یکپارچه، استخراج در چند مرحله انجام می‌شود:

  1. طبقه‌بندی سند (این قرارداد از چه نوعی است؟)

  2. تشخیص ساختار (بخش‌های کلیدی کجا هستند؟)

  3. استخراج بندها (استخراج هدفمند در هر بخش)

  4. اعتبارسنجی (بررسی متقابل مقادیر استخراج‌شده برای انسجام)

این رویکرد ساختاریافته نرخ توهم (hallucination) را در مقایسه با یک پرامپت سرتاسری واحد به‌طور چشمگیری کاهش داد.

مرحله ۳ — رابط بازبینی انسانی

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

# خط لوله‌ی ساده‌شده‌ی استخراج
def process_document(doc: Document) -> ExtractionResult:
    doc_type = classify_document(doc)
    sections = detect_sections(doc, doc_type)

    extractions = []
    for section in sections:
        clauses = extract_clauses(section, doc_type)
        validated = validate_clauses(clauses, section)
        extractions.extend(validated)

    return ExtractionResult(
        document_id=doc.id,
        doc_type=doc_type,
        extractions=extractions,
        confidence=calculate_confidence(extractions),
    )

نتیجه

۸۰٪ از اسناد اکنون بدون دخالت انسانی پردازش می‌شوند

زمان پردازش از بیش از ۴۰ ساعت در هفته به حدود ۴ ساعت در هفته (برای موارد خاص و بازبینی) کاهش یافت

دقت استخراج ۹۶٫۳٪ روی مجموعه‌ی اعتبارسنجی پس از فاین-تیونینگ

بازگشت سرمایه ظرف ۳ ماه پس از استقرار محقق شد

این سیستم اکنون بیش از ۵۰۰ سند در ماه پردازش می‌کند و به دو نوع سند دیگر فراتر از دامنه‌ی اولیه گسترش یافته است.

پشته‌ی فناوری

  • هوش مصنوعی: OpenAI GPT-4، GPT-3.5-turbo فاین-تیون‌شده، LangChain

  • بک‌اند: Python، FastAPI، Celery، Redis

  • فرانت‌اند: Next.js، TypeScript، Tailwind CSS

  • زیرساخت: AWS (Lambda، S3، RDS)، Docker

پردازشگر هوشمند اسناد | پویا کریمی