"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > قم بإنشاء أسرع وأدق مستخرج بيانات الفاتورة للمخرجات الهيكلية باستخدام الذكاء الاصطناعي

قم بإنشاء أسرع وأدق مستخرج بيانات الفاتورة للمخرجات الهيكلية باستخدام الذكاء الاصطناعي

تم النشر بتاريخ 2024-11-01
تصفح:880

Create the fastest and precise invoice data extractor for structural output using AI

استخدام LlamaExtract مع نماذج Pydantic لاستخراج إيصالات المتجر

في هذه المقالة، سنستكشف كيفية استخدام LlamaExtract المدمج مع المخططات من نماذج Pydantic لاستخراج البيانات المنظمة من إيصالات المتجر. يساعد هذا الأسلوب في تنظيم معلومات الاستلام بشكل منهجي، مما يسهل تحليلها وإدارتها.

يثبت

أولاً، تأكد من تثبيت مكتبة عميل llama-extract. استخدم الأمر التالي:

pip install llama-extract pydantic

ملاحظة: إذا رأيت إشعارًا حول تحديث النقطة، فيمكنك تحديثه باستخدام الأمر المقدم.

أولاً، قم بتسجيل الدخول واحصل على مفتاح واجهة برمجة التطبيقات مجانًا من Llama Index Cloud

قم بإعداد متغير البيئة لمفتاح LlamaExtract API الخاص بك:

import os

os.environ["LLAMA_CLOUD_API_KEY"] = "YOUR LLAMA INDEX CLOUD API HERE"

تحميل البيانات

في هذا المثال، لنفترض أن لدينا مجموعة بيانات من إيصالات المتجر بتنسيق PDF. ضع هذه الملفات في دليل يسمى الإيصالات.

DATA_DIR = "data/receipts"
fnames = os.listdir(DATA_DIR)
fnames = [fname for fname in fnames if fname.endswith(".pdf")]
fpaths = [os.path.join(DATA_DIR, fname) for fname in fnames]
fpaths

يجب أن يسرد الإخراج مسارات ملفات الإيصالات:

['data/receipts/receipt.pdf']

تحديد نموذج Pydantic

سنحدد نموذج البيانات الخاص بنا باستخدام Pydantic، وهذا من شأنه أن يخبر واجهة برمجة التطبيقات (API) بالحقول/البيانات التي نتوقع أو نريد استخراجها من ملف PDF. بالنسبة لإيصالات المتجر، قد نكون مهتمين باستخراج اسم المتجر والتاريخ والمبلغ الإجمالي وقائمة العناصر المشتراة.

from pydantic import BaseModel
from typing import List

class Item(BaseModel):
    name: str
    quantity: int
    price: float

class Receipt(BaseModel):
    store_name: str
    date: str
    total_amount: float
    items: List[Item]

إنشاء مخطط

الآن، يمكننا استخدام نموذج Pydantic لتحديد مخطط الاستخراج في LlamaExtract.

from llama_extract import LlamaExtract

extractor = LlamaExtract(verbose=True)
schema_response = await extractor.acreate_schema("Receipt Schema", data_schema=Receipt)
schema_response.data_schema

يجب أن يشبه مخطط الإخراج ما يلي:

{
    'type': 'object',
    '$defs': {
        'Item': {
            'type': 'object',
            'title': 'Item',
            'required': ['name', 'quantity', 'price'],
            'properties': {
                'name': {'type': 'string', 'title': 'Name'},
                'quantity': {'type': 'integer', 'title': 'Quantity'},
                'price': {'type': 'number', 'title': 'Price'}
            }
        }
    },
    'title': 'Receipt',
    'required': ['store_name', 'date', 'total_amount', 'items'],
    'properties': {
        'store_name': {'type': 'string', 'title': 'Store Name'},
        'date': {'type': 'string', 'title': 'Date'},
        'total_amount': {'type': 'number', 'title': 'Total Amount'},
        'items': {
            'type': 'array',
            'title': 'Items',
            'items': {'$ref': '#/$defs/Item'}
        }
    }
}

تشغيل الاستخراج

مع تحديد المخطط، يمكننا الآن استخراج البيانات المنظمة من ملفات الإيصالات الخاصة بنا. من خلال تحديد الإيصال كنموذج الاستجابة، فإننا نضمن التحقق من صحة البيانات المستخرجة وتنظيمها.

responses = await extractor.aextract(
    schema_response.id, fpaths, response_model=Receipt
)

يمكنك الوصول إلى مخرجات JSON الأولية إذا لزم الأمر:

data = responses[0].data
print(data)

مثال لإخراج JSON:

{
    'store_name': 'ABC Electronics',
    'date': '2024-08-05',
    'total_amount': 123.45,
    'items': [
        {'name': 'Laptop', 'quantity': 1, 'price': 999.99},
        {'name': 'Mouse', 'quantity': 1, 'price': 25.00},
        {'name': 'Keyboard', 'quantity': 1, 'price': 50.00}
    ]
}

خاتمة

في هذه المقالة، أوضحنا كيفية استخدام LlamaExtract مع نماذج Pydantic لتحديد مخططات البيانات واستخراج البيانات المنظمة من إيصالات المتجر. ويضمن هذا النهج أن تكون المعلومات المستخرجة جيدة التنظيم والتحقق من صحتها، مما يسهل التعامل معها وتحليلها.

يمكن استخدام هذا أيضًا في العديد من الحالات والفواتير والإيصالات والتقارير وما إلى ذلك.

ترميز سعيد!!

هل لديك مشروع؟ أنك تريد مني أن أساعدك عبر البريد الإلكتروني؟؟: [email protected]

لديك سؤال أو تريد أن تكون أول من يعرف عن مشاركاتي:-
تابعني على LinkedIn ?
تابعني على Twitter/X ?

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/wmisingo/create-the-fastest-and-precise-invoice-data-extractor-for-structural-output-using-ai-pe1?1 إذا كان هناك أي انتهاك يرجى الاتصال بـ Study_golang @163.comdelete
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3