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

如何在ChatGPT函数调用参数中定义包含指定属性的复杂对象数组?

如何在ChatGPT函数调用参数中定义包含指定属性的复杂对象数组?

我完全懂你遇到的困扰——想让ChatGPT在函数调用时返回一个带特定属性的对象数组,但不知道怎么把数组里的对象结构描述清楚对吧?其实你只差关键的一步:在items字段里明确写出对象的properties细节,而不只是标记类型和简单描述。

你之前的写法只告诉模型“这是个对象”,但没说明对象里具体有哪些属性,模型自然没法精准生成符合要求的JSON结构。按照OpenAI函数调用基于的JSON Schema规范,我们可以这样修正你的参数定义:

[
  {
    "name": "get_ICD_codes",
    "description": "Get the ICD codes with description in the given format",
    "parameters": {
      "type": "object",
      "properties": {
        "icds": {
          "type": "array",
          "description": "Array of ICD objects",
          "items": {
            "type": "object",
            "description": "An object with ICD code and description as properties",
            "properties": {
              "code": {
                "type": "string",
                "description": "The specific ICD code (e.g., I10 for essential hypertension)"
              },
              "description": {
                "type": "string",
                "description": "Human-readable explanation of the ICD code"
              }
            },
            "required": ["code", "description"]
          }
        }
      },
      "required": ["icds"]
    }
  }
]

简单解释下修改的部分:

  • 在items里新增了properties字段,明确定义了每个ICD对象必须包含code和description两个属性
  • 给每个属性指定了类型(都是字符串)和更具体的描述,帮模型理解属性的含义
  • 用required数组强制要求这两个属性必须存在,避免模型返回缺失关键信息的对象

这样定义之后,ChatGPT就能清晰理解你需要的数组结构,返回符合要求的JSON对象数组了。

备注:内容来源于stack exchange,提问作者Kedar Bhumkar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 11:14:30