从任何 LLM 获取可靠的 JSON
大多数开发者都希望他们的 LLM 输出有效的 JSON。但希望并非策略。
对于生产级应用,你需要可靠的数据。获取数据有四种方法:
- 使用解析器的纯文本。这种方法经常失败。
- JSON 模式。这有所帮助,但仍然会出错。
- 函数或工具调用 (Function or tool calling)。这种方法更好。
- 带有约束解码 (constrained decoding) 的原生结构化输出。这是行业金标准。
约束解码让你的结构成为一种保证,而不是依赖运气。
工作原理: 系统将你的 Schema 编译成一种语法。它使用有限状态机 (finite-state machine)。在每一步中,系统都会屏蔽掉违反规则的 Token。模型无法选择会破坏结构的 Token。输出始终保持有效。
目前主流厂商都已支持:
- OpenAI: Structured Outputs
- Google Gemini: responseSchema
- Anthropic: Structured Outputs beta
- 开源方案: vLLM, Hugging Face TGI, llama.cpp, Outlines, and Instructor
不要再在代码中修复 JSON 错误了。使用约束解码来从源头防止它们。
在下方的 AI Tech Connect 阅读全文。
来源:https://dev.to/rishi_kora/reliable-json-from-any-llm-constrained-decoding-in-production-8an
可选学习社区:https://t.me/GyaanSetuAi
