في هذه المقالة، سنستكشف كيفية استخدام 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، وهذا من شأنه أن يخبر واجهة برمجة التطبيقات (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 ?
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3