在本文中,我們將探索如何使用 LlamaExtract 與 Pydantic 模型中的模式結合,以便從商店收據中提取結構化資料。這種方法有助於系統地組織收據訊息,使其更易於分析和管理。
首先,請確保您安裝了 llama-extract 用戶端程式庫。使用以下指令:
pip install llama-extract pydantic
注意:如果您看到有關更新 pip 的通知,您可以使用提供的命令進行更新。
首先,登入並從 Llama Index Cloud 免費取得 api-key
為您的 LlamaExtract API 金鑰設定環境變數:
import os os.environ["LLAMA_CLOUD_API_KEY"] = "YOUR LLAMA INDEX CLOUD API HERE"
對於此範例,假設我們有一個 PDF 格式的商店收據資料集。將這些檔案放在名為receipts 的目錄中。
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 模型結合使用來定義資料模式並從商店收據中提取結構化資料。這種方法可確保提取的資訊組織良好且經過驗證,從而更易於處理和分析。
這也可用於許多案例、發票、收據、報告等
編碼快樂! !
你有專案嗎?您希望我協助您寄電子郵件給我嗎? :wilbertmisingo@gmail.com
有疑問或想成為第一個了解我的貼文的人:-
在 LinkedIn 上關注 ✅ 我?
在 Twitter/X 上關注 ✅ 我?
以上是使用 AI 創建最快、最精確的發票資料提取器以進行結構輸出的詳細內容。更多資訊請關注PHP中文網其他相關文章!