You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确构造含functions参数的ChatGPT API请求体获结构化结果

如何让ChatGPT API返回包含毕加索相似艺术家的结构化JSON响应

问题出在函数定义和指令提示的模糊性,导致模型误解了需求。以下是具体修正方案:

核心修改方向

  • 明确指令约束:在系统提示和用户提问中,清晰说明要排除毕加索本人,并指定返回数量
  • 完善函数定义:修正拼写错误,细化函数和参数的描述,让模型准确理解参数要求
  • 强化结构化要求:确保模型明白需要返回符合格式的外部艺术家列表

修正后的完整API请求

{
    "model": "gpt-3.5-turbo-0613",
    "messages": [
        {
            "role": "system",
            "content": "你是艺术专家,需要列出与指定艺术家风格、流派或影响力相似的其他艺术家,**不得包含原艺术家本人**,必须通过函数调用返回结构化结果。"
        },
        {
            "role": "user",
            "content": "列出10位与巴勃罗·毕加索风格或流派相似的艺术家,不要包含毕加索本人。"
        }  
    ],
    "functions": [
        {
            "name": "get_similar_artists",
            "description": "获取与目标艺术家风格、流派或影响力相似的其他艺术家列表,需排除目标艺术家本人",
            "parameters": {
                "type": "object",
                "properties": {
                    "similarArtists": {
                        "type": "array",
                        "description": "与目标艺术家相似的其他艺术家姓名列表,不包含目标艺术家本人",
                        "items": {
                            "type": "string",
                            "description": "艺术家姓名"
                        }
                    }
                },
                "required": ["similarArtists"]
            }
        }
    ]
}

关键修正说明

  1. 系统提示补充约束:明确告知模型必须排除原艺术家,且必须用函数返回结构化结果,消除歧义
  2. 用户提问明确数量:直接指定返回10位,和无函数调用时的需求对齐
  3. 函数描述细化:将原模糊的"Similar artists"改为明确的"其他艺术家列表,需排除目标艺术家本人",避免模型误解
  4. 修正拼写错误:将参数items里的desctiption改为正确的description,避免模型解析异常
  5. 添加required字段:明确similarArtists是必填参数,强制模型返回该字段

这样修改后,模型就能准确理解需求,返回包含10位相似艺术家的结构化JSON响应,不会再只返回毕加索本人。

内容的提问来源于stack exchange,提问作者Matej Ukmar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 06:04:52