Forum

怎么让本地模型稳定输出 JSON 或调...
 
Notifications
Clear all

怎么让本地模型稳定输出 JSON 或调用工具(function calling)?

0 帖子
1 Users
0 Reactions
10 查看
0
[#14]
Topic starter

【官方常见问题精选】欢迎在下方补充你的经验或追问。

本地模型在“格式遵循”上不如大型商业模型稳定,但可以通过几种手段显著提高成功率。

  • 用结构化输出功能:Ollama 的接口支持通过 format 参数传入 JSON Schema;llama.cpp 支持语法约束(grammar)和 JSON Schema 约束;vLLM 也提供结构化/引导式解码。这些方法是在生成时限制可选 token,比单纯靠提示词可靠得多。具体参数名以你的版本文档为准。
  • 提示词写清楚:给出字段说明和一个完整示例,并说明“只输出 JSON,不要多余文字”。
  • 降低温度:用较低的 temperature,减少随机发挥。
  • 代码层校验:用 Pydantic 或 JSON Schema 校验输出,失败就带着错误信息重试一次。永远不要假设输出一定合法。

关于工具调用:

  • 并不是所有模型都支持工具调用,需要选择模型卡明确支持的版本,并确认推理工具正确启用了对应的聊天模板。
  • 工具描述要简短清晰,工具数量不宜过多,小模型容易选错。
  • 对有副作用的工具(删除文件、发消息、执行命令),务必让程序做权限限制,必要时加入人工确认。

小模型输出复杂嵌套结构容易出错,可以把任务拆成多个简单步骤。你在使用中遇到过哪些格式问题?欢迎一起讨论。


Share: