import json
from openai import OpenAI
from pydantic import BaseModel
client = OpenAI(
base_url="https://kymaapi.com/v1",
api_key="ky-your-api-key"
)
class Invoice(BaseModel):
vendor: str
amount: float
currency: str
date: str
line_items: list[str]
SYSTEM = ('Extract invoice data as JSON. Schema: {"vendor": str, "amount": float, '
'"currency": str, "date": "YYYY-MM-DD", "line_items": [str]}. JSON only.')
def extract_invoice(text: str) -> Invoice:
resp = client.chat.completions.create(
model="qwen-3-32b",
messages=[{"role": "system", "content": SYSTEM}, {"role": "user", "content": text}],
response_format={"type": "json_object"},
temperature=0
)
return Invoice(**json.loads(resp.choices[0].message.content))
raw = "Invoice from Acme Corp, March 15 2025. 10x Widget A @ $5, 2x Widget B @ $12.50. Total $75 USD."
invoice = extract_invoice(raw)
print(f"Vendor: {invoice.vendor}, Amount: {invoice.currency}{invoice.amount}")