🧠 图解记忆: 约束解码保语法,Schema 校验保结构,业务校验才保证字段含义正确。
💡 答案要点
| 框架 | 结构化输出 | 实现方式 |
|---|---|---|
| vLLM | 支持 | JSON Schema、正则、choice、grammar 等约束形式(以版本为准) |
| SGLang | 支持 | JSON Schema、正则/grammar 等约束解码(以版本为准) |
| TensorRT-LLM | 支持 | Guided Decoding,可使用 JSON Schema、正则、EBNF 等(以版本为准) |
SGLang 的正则约束解码:
python
# SGLang 原生支持 JSON 约束
response = sglang.generate(
prompt="提取用户信息",
json_schema={
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"}
}
}
)
# 模型生成时直接受约束,不会超出 schema面试话术:
"三类框架的新版本都提供不同形式的约束解码。面试时我会区分语法有效和语义正确:JSON Schema 能约束结构,但不能保证字段事实正确;选型还要比较目标模型支持、约束覆盖、首 token 延迟和吞吐开销。"
