多语言 Structured Output¶
本教程使用 StructuredOutput 将自由文本转换为受校验 JSON。五种发布包示例使用同一份
schema:
每个示例都会在返回模型输出前校验 title、summary 和 tags。非法输出会失败,
不会返回畸形数据。
Schema¶
{
"type": "object",
"required": ["title", "summary", "tags"],
"properties": {
"title": { "type": "string" },
"summary": { "type": "string" },
"tags": { "type": "array", "items": { "type": "string" } }
}
}
按语言运行¶
Python¶
cd language/python/examples/structured-output
python -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python summarize.py "Quarterly status: all checks green."
确定性测试:
.venv/bin/python -m unittest test_summarize.py -v
TypeScript¶
cd language/typescript/examples/structured-output
npm install
npm start -- "Quarterly status: all checks green."
npm test
Java¶
cd language/java/examples/structured-output
mvn -q compile exec:java -Dexec.args="Quarterly status: all checks green."
mvn -q test
C¶
cd language/csharp/examples/structured-output
dotnet run -- "Quarterly status: all checks green."
dotnet run -- --test
Rust¶
cd language/rust/examples/structured-output
cargo run
确定性检查会验证合法摘要,并拒绝缺少必填字段的输出。
真实端点¶
运行命令使用 OpenAI-compatible 端点:
export PRAXO_BASE_URL=http://localhost:11434/v1
export PRAXO_MODEL=llama3.2
# export PRAXO_API_KEY=... # 仅托管端点需要
PowerShell:
$env:PRAXO_BASE_URL = "http://localhost:11434/v1"
$env:PRAXO_MODEL = "llama3.2"
示例证明了什么¶
- 包从 registry 安装;
- 模型 Adapter 从环境变量配置;
StructuredOutput按 schema 校验最终 JSON;- fake-model 测试无需真实端点即可验证集成。
它们不证明模型质量、schema 完整性、Provider 原生结构化输出支持或生产行为。即使 Provider 原生支持结构化输出,应用仍应保留最终 schema 校验。