File size: 3,134 Bytes
7ff7119
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
{
  "type": "object",
  "title": "InvoiceSchema",
  "description": "Structured-extraction JSON schema for invoices. Mandatory fields per the relevant national VAT act (e.g. HU VAT Act §169 for Hungarian invoices). _quotes and _confidence are anti-hallucination layers.",
  "properties": {
    "invoice_number": {
      "type": ["string", "null"],
      "description": "Invoice serial number. If incomplete, use null."
    },
    "issue_date": {
      "type": ["string", "null"],
      "description": "Issue date in ISO 8601 format (YYYY-MM-DD). Normalize from other formats."
    },
    "fulfillment_date": {
      "type": ["string", "null"],
      "description": "Fulfillment / service-delivery date in ISO 8601 format (YYYY-MM-DD)."
    },
    "payment_due_date": {
      "type": ["string", "null"],
      "description": "Payment due date in ISO 8601 format (YYYY-MM-DD)."
    },
    "payment_method": {
      "type": ["string", "null"],
      "description": "e.g. transfer, cash, card"
    },
    "currency": {
      "type": "string",
      "description": "ISO 4217 code or well-known: USD, EUR, HUF, GBP, CHF",
      "default": "USD"
    },
    "issuer": {
      "type": ["object", "null"],
      "properties": {
        "name": { "type": ["string", "null"] },
        "tax_id": { "type": ["string", "null"], "description": "Format depends on jurisdiction (HU: XXXXXXXX-X-XX, US: XX-XXXXXXX EIN, EU: VAT ID)" },
        "address": { "type": ["string", "null"] }
      }
    },
    "customer": {
      "type": ["object", "null"],
      "properties": {
        "name": { "type": ["string", "null"] },
        "tax_id": { "type": ["string", "null"] },
        "address": { "type": ["string", "null"] }
      }
    },
    "line_items": {
      "type": "array",
      "description": "Invoice line items",
      "items": {
        "type": "object",
        "properties": {
          "item_code": { "type": ["string", "null"] },
          "description": { "type": ["string", "null"] },
          "quantity": { "type": ["number", "null"] },
          "unit": { "type": ["string", "null"] },
          "unit_price_net": { "type": ["number", "null"] },
          "vat_rate": { "type": ["number", "null"], "description": "As a percentage (e.g. 20)" },
          "total_net": { "type": ["number", "null"] },
          "total_vat": { "type": ["number", "null"] },
          "total_gross": { "type": ["number", "null"] }
        }
      }
    },
    "total_net": { "type": ["number", "null"] },
    "total_vat": { "type": ["number", "null"] },
    "total_gross": { "type": ["number", "null"] },
    "_quotes": {
      "type": "array",
      "items": { "type": "string" },
      "description": "ANTI-HALLUCINATION: verbatim document quotes (at least 3 quotes for key fields)"
    },
    "_confidence": {
      "type": "object",
      "description": "ANTI-HALLUCINATION: per-field reliability: high | medium | low"
    },
    "_source": {
      "type": "object",
      "properties": {
        "file_name": { "type": "string" },
        "page_number": { "type": ["integer", "null"] }
      }
    }
  },
  "required": ["_quotes", "_confidence"]
}