大模型最让人头疼的问题之一就是输出格式不稳定。你让它返回JSON,它可能加一段解释文字。Structured Output解决这个问题。

JSON模式

OpenAI的response_format参数强制模型输出合法JSON,严格按定义的schema生成。

本地模型支持

Ollama和vLLM通过format参数指定JSON schema,或通过grammar参数指定BNF语法约束。

Pydantic集成

用Pydantic定义输出schema,模型输出直接解析为类型安全的Python对象:

from pydantic import BaseModel
from typing import List

class ReviewAnalysis(BaseModel):
    sentiment: str
    aspects: List[dict]

analysis = ReviewAnalysis.model_validate_json(model_output)

应用场景

数据提取:从非结构化文本提取结构化字段。表单填充:根据用户描述自动填写表单。API集成:输出格式直接匹配下游API入参。

Structured Output让大模型从"聊天工具"变成"可靠的代码组件"——输出格式可预期、可解析、可集成。