阿里云百炼怎么样才能稳定的输出 json 格式?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要确保阿里云百炼平台能够稳定地输出 JSON 格式的内容,您可以按照以下步骤进行操作:
在调用模型时,需要明确指定 response_format
参数为 {"type": "json_object"}
。此参数会强制模型生成标准格式的 JSON 字符串,从而避免输出内容中出现非 JSON 格式的额外信息(如“以下为JSON字符串”等)。
response_format
,例如:
{
"model": "qwen-max",
"messages": [
{"role": "user", "content": "请以JSON格式输出用户信息。"}
],
"parameters": {
"response_format": {"type": "json_object"}
}
}
parameters
中设置 response_format
。即使开启了 response_format
参数,仍需在提示词中明确要求模型以 JSON 格式输出内容。例如,在 System Message
或 User Message
中加入类似以下的指引: - “请按照 JSON 格式输出。” - “输出结果必须是标准的 JSON 格式。”
如果未在提示词中明确指引,可能会导致返回内容不符合预期。
并非所有模型都支持 JSON 结构化输出功能。以下是支持该功能的模型列表: - qwen-max 系列:qwen-max
、qwen-max-0125
、qwen-max-0919
、qwen-max-latest
- qwen-plus 系列:qwen-plus
、qwen-plus-2025-01-25
、qwen-plus-0112
、qwen-plus-1220
、qwen-plus-1127
、qwen-plus-1125
、qwen-plus-0919
、qwen-plus-latest
- qwen-turbo 系列:qwen-turbo
、qwen-turbo-1101
、qwen-turbo-0919
、qwen-turbo-latest
- qwen-开源系列:qwen2.5
系列的文本模型(不包括 math
和 coder
模型)
注意:选择合适的模型非常重要,否则可能导致无法启用 JSON 结构化输出功能。
确保请求中的字段格式正确,特别是 messages
和 prompt
字段。以下是一些常见问题及解决方法: - 错误示例:messages
字段未放入 input
对象中。 - 正确示例:
{
"model": "qwen-max",
"input": {
"messages": [
{"role": "user", "content": "请以JSON格式输出用户信息。"}
]
},
"parameters": {
"response_format": {"type": "json_object"}
}
}
在接收到模型返回的结果后,建议对 JSON 格式进行验证,以确保其符合预期。可以使用工具或代码解析返回的 JSON 数据,并检查是否存在语法错误。
重要提醒: - 开启 response_format
参数的同时,必须在提示词中明确指引模型输出 JSON 格式,否则可能无法保证输出内容的稳定性。 - 选择支持 JSON 结构化输出功能的模型,否则该功能将不可用。
通过以上步骤,您可以确保阿里云百炼平台稳定地输出标准格式的 JSON 数据。
基于通义系列大模型和开源大模型的一站式大模型服务平台,提供「生成式大模型的全流程应用工具」和「企业大模型的全链路训练工具」。为大模型,也为小应用。 阿里云百炼官网网址:https://www.aliyun.com/product/bailian