Đầu ra có cấu trúc
Đầu ra có cấu trúc cho phép mô hình trả về dữ liệu theo định dạng JSON mà bạn chỉ định, phù hợp cho các trường hợp như trích xuất dữ liệu, gán nhãn phân loại, điền biểu mẫu.
JSON Mode#
Phương thức đầu ra có cấu trúc đơn giản nhất, buộc mô hình trả về JSON hợp lệ:
Python
from openai import OpenAI
client = OpenAI(
base_url="https://as.apinoma.com/v1",
api_key="<APINOMA_API_KEY của bạn>"
)
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
{"role": "system", "content": "Bạn là một trợ lý trích xuất dữ liệu. Hãy trả về kết quả ở định dạng JSON."},
{"role": "user", "content": "Trích xuất tên người, công ty và chức vụ trong văn bản sau: Trương Tam là kỹ sư cao cấp của Alibaba"}
],
response_format={"type": "json_object"}
)
import json
result = json.loads(response.choices[0].message.content)
print(result)
# {"name": "Trương Tam", "company": "Alibaba", "title": "Kỹ sư cao cấp"}TypeScript
Khi sử dụng JSON Mode, system prompt phải chứa từ khóa “JSON”, nếu không một số mô hình có thể bỏ qua yêu cầu về định dạng.
Ràng buộc JSON Schema#
Kiểm soát cấu trúc đầu ra chính xác hơn, đảm bảo tên trường và kiểu dữ liệu đúng như mong đợi:
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[
{"role": "user", "content": "Phân tích cảm xúc của đoạn đánh giá người dùng này: Sản phẩm này thật tuyệt vời, rất dễ dùng!"}
],
response_format={
"type": "json_schema",
"json_schema": {
"name": "sentiment_analysis",
"schema": {
"type": "object",
"properties": {
"sentiment": {
"type": "string",
"enum": ["positive", "negative", "neutral"],
"description": "Khuynh hướng cảm xúc"
},
"confidence": {
"type": "number",
"description": "Độ tin cậy 0-1"
},
"keywords": {
"type": "array",
"items": {"type": "string"},
"description": "Từ khóa cảm xúc chính"
}
},
"required": ["sentiment", "confidence", "keywords"],
"additionalProperties": False
}
}
}
)Đầu ra:
Các tình huống ứng dụng thực tế#
Trích xuất dữ liệu
# Trích xuất dữ liệu có cấu trúc từ văn bản phi cấu trúc
response = client.chat.completions.create(
model="openai/gpt-4o",
messages=[{
"role": "user",
"content": """Trích xuất thông tin đơn hàng sau:
Khách hàng Lý Tứ đã đặt mua 3 chiếc MacBook Pro vào ngày 15 tháng 1 năm 2025,
đơn giá 18999 nhân dân tệ, địa chỉ giao hàng là số 123 đường xxx, quận Triều Dương, Bắc Kinh"""
}],
response_format={
"type": "json_schema",
"json_schema": {
"name": "order_info",
"schema": {
"type": "object",
"properties": {
"customer": {"type": "string"},
"date": {"type": "string"},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {"type": "string"},
"quantity": {"type": "integer"},
"unit_price": {"type": "number"}
}
}
},
"address": {"type": "string"}
},
"required": ["customer", "date", "items", "address"]
}
}
}
)Gán nhãn phân loại
Các mô hình được hỗ trợ#
Mô hình
JSON Mode
JSON Schema
`openai/gpt-4o`
✅
✅
`openai/gpt-4o-mini`
✅
✅
`anthropic/claude-sonnet-4.6`
✅
—
`google/gemini-pro-compatible-flash-lite-preview`
✅
✅
Các mô hình không hỗ trợ JSON Schema có thể đạt được hiệu quả tương tự bằng cách mô tả chi tiết định dạng JSON mong muốn trong system prompt.
Cập nhật lần cuối vào 23 tháng 6, 2026