4.3 Enforce structured output using tool use and JSON schemas

Ép đầu ra có cấu trúc bằng tool use + JSON schema, và thiết kế schema để model không phải bịa.

  1. Tool use với JSON schema là cách tin cậy nhất để có đầu ra đúng schema — loại bỏ lỗi cú pháp JSON.
  2. Schema không chặn lỗi ngữ nghĩa: tổng các dòng không bằng tổng tiền, giá trị nằm sai trường — vẫn cần validate.
  3. Thông tin có thể không có trong tài liệu → trường nullable/optional. Bắt buộc mọi trường sẽ khiến model bịa cho đủ.
  4. Hạng mục mở rộng được → enum có "other" + trường mô tả; ca mơ hồ → giá trị "unclear". Thêm quy tắc chuẩn hóa định dạng vào prompt.
  5. Nhiều schema trích xuất, chưa biết loại tài liệu → tool_choice: "any" để chắc chắn có đầu ra có cấu trúc. Một bước phải chạy trước → ép đúng tool đó ({"type":"tool","name":"extract_metadata"}).