Dalam artikel ini, kami akan meneroka cara menggunakan LlamaExtract yang digabungkan dengan skema daripada model Pydantic untuk mengekstrak data berstruktur daripada resit kedai. Pendekatan ini membantu dalam menyusun maklumat penerimaan secara sistematik, menjadikannya lebih mudah untuk dianalisis dan diurus.
Pertama, pastikan anda memasang perpustakaan klien ekstrak llama. Gunakan arahan berikut:
pip install llama-extract pydantic
Nota:Jika anda melihat notis tentang mengemas kini pip, anda boleh mengemas kininya menggunakan arahan yang disediakan.
Mula-mula, log masuk dan dapatkan kunci api secara percuma daripada Llama Index Cloud
Sediakan pembolehubah persekitaran untuk kunci API LlamaExtract anda:
import os os.environ["LLAMA_CLOUD_API_KEY"] = "YOUR LLAMA INDEX CLOUD API HERE"
Untuk contoh ini, anggap kita mempunyai set data resit kedai dalam format PDF. Letakkan fail ini dalam direktori bernama resit.
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
Output hendaklah menyenaraikan laluan fail resit:
['data/receipts/receipt.pdf']
Kami akan mentakrifkan model data kami menggunakan Pydantic, ini akan memberitahu API medan/data yang kami jangkakan atau ingin ekstrak daripada PDF. Untuk resit kedai, kami mungkin berminat untuk mengeluarkan nama kedai, tarikh, jumlah amaun dan senarai item yang dibeli.
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]
Kini, kita boleh menggunakan model Pydantic untuk mentakrifkan skema pengekstrakan dalam 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
Skema output sepatutnya menyerupai yang berikut:
{ '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'} } } }
Dengan skema yang ditentukan, kami kini boleh mengekstrak data berstruktur daripada fail resit kami. Dengan menyatakan Resit sebagai model tindak balas, kami memastikan data yang diekstrak disahkan dan berstruktur.
responses = await extractor.aextract( schema_response.id, fpaths, response_model=Receipt )
Anda boleh mengakses output JSON mentah jika perlu:
data = responses[0].data print(data)
Contoh output 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} ] }
Dalam artikel ini, kami menunjukkan cara menggunakan LlamaExtract dengan model Pydantic untuk menentukan skema data dan mengekstrak data berstruktur daripada resit kedai. Pendekatan ini memastikan maklumat yang diekstrak adalah teratur dan disahkan, menjadikannya lebih mudah untuk dikendalikan dan dianalisis.
Ini juga boleh digunakan untuk banyak kes, invois, resit, laporan dll.
Selamat Mengekod!!
Adakah anda mempunyai projek? yang anda mahu saya bantu anda e-mel saya??:wilbertmisingo@gmail.com
Ada soalan atau ingin menjadi orang pertama yang mengetahui tentang siaran saya:-
Ikuti ✅ saya di LinkedIn ?
Ikuti ✅ saya di Twitter/X ?
Atas ialah kandungan terperinci Cipta pengekstrak data invois terpantas dan tepat untuk output struktur menggunakan AI. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!