Structured Outputs
Trạm AI hỗ trợ structured outputs trên các model tương thích, đảm bảo response luôn tuân theo một JSON Schema cụ thể. Tính năng này đặc biệt hữu ích khi cần response nhất quán, được định dạng gọn gàng và có thể parse một cách đáng tin cậy ngay trong ứng dụng của mình.
Tổng quan
Structured outputs cho phép:
- Áp dụng kiểm tra JSON Schema cụ thể cho response của model
- Nhận output nhất quán, type-safe outputs
- Tránh lỗi parsing và những trường bịa đặt
- Đơn giản hóa việc xử lý response trong ứng dụng
Sử dụng Structured Outputs
Để dùng structured outputs, người dùng thêm tham số response_format vào request, đặt type thành json_schema và đưa schema của mình vào đối tượng json_schema:
Model sẽ trả về một đối tượng JSON tuân thủ nghiêm ngặt schema:
Hỗ trợ Model
Structured outputs chỉ khả dụng trên một số model nhất định.
Người dùng có thể xem danh sách các model hỗ trợ structured outputs trên trang models.
- Các model OpenAI (GPT-4o trở về sau) Tài liệu
- Các model Google Gemini Tài liệu
- Các model Anthropic (Sonnet 4.5, Opus 4.1+) Tài liệu
- Hầu hết các model mã nguồn mở
- Tất cả các model do Fireworks cung cấp Tài liệu
Để chắc chắn model được chọn có hỗ trợ structured outputs:
- Kiểm tra các tham số được hỗ trợ của model trên trang models
- Đặt
require_parameters: truetrong tùy chọn provider (xem Provider Routing) - Thêm
response_formatvà đặttype: json_schematrong các tham số bắt buộc
Hướng dẫn tối ưu
- Thêm description: Viết mô tả rõ ràng cho từng thuộc tính trong schema để định hướng cho model
- Dùng strict mode: Luôn đặt
strict: trueđể model tuân theo schema một cách chính xác
Ví dụ triển khai
Dưới đây là một ví dụ hoàn chỉnh sử dụng Fetch API:
Streaming với Structured Outputs
Structured outputs cũng hoạt động với response dạng streaming. Model sẽ stream từng phần JSON hợp lệ, và khi hoàn tất sẽ ghép lại thành một response hợp lệ khớp với schema.
Để bật streaming cùng structured outputs, chỉ cần thêm stream: true vào request:
Xử lý lỗi
Khi dùng structured outputs, có thể gặp những tình huống sau:
- Model không hỗ trợ structured outputs: Request sẽ thất bại kèm một lỗi cho biết model không hỗ trợ tính năng này
- Schema không hợp lệ: Model sẽ trả về lỗi nếu JSON Schema không hợp lệ
Response Healing
Đối với các request không streaming dùng response_format với type: "json_schema", người dùng có thể bật plugin Response Healing để giảm rủi ro nhận JSON không hợp lệ khi model trả về định dạng chưa hoàn chỉnh. Tìm hiểu thêm trong tài liệu Response Healing.