❌ **AI 请求失败** API request failed: 400 * GenerateContentRequest.tools[0].function...

2026年09月29日 14:35 7.56 秒 success

错误信息

❌ **AI 请求失败** API request failed: 400 * GenerateContentRequest.tools[0].function_declarations[10].parameters.properties[config].properties[dateFormat].enum[0]: cannot be empty * GenerateContentRequest.tools[0].function_declarations[10].parameters.properties[config].properties[rollup].properties[operator].enum[0]: cannot be empty * GenerateContentRequest.tools[0].function_declarations[10].parameters.properties[config].properties[numberFormat].enum[0]: cannot be empty (request id: 20260929143404183952636qkWu65oK)

AI 解决方案

原文:GenerateContentRequest.tools[0].function_declarations[10].parameters.properties[config].properties[dateFormat].enum[0]: cannot be empty
译文:GenerateContentRequest.tools[0].function_declarations[10].parameters.properties[config].properties[dateFormat].enum[0]:不能为空

💡 原因分析:
API请求中定义的函数参数config对象的dateFormat、rollup.operator、numberFormat字段的enum数组首元素为空,不符合枚举类型至少需包含一个有效值的要求。

// 修复后的代码
tools: [{
  function_declarations: [
    // ...其他函数定义
    {
      name: "yourFunctionName",
      parameters: {
        type: "object",
        properties: {
          config: {
            type: "object",
            properties: {
              dateFormat: {
                type: "string",
                enum: ["YYYY-MM-DD"] // 确保枚举值不为空
              },
              rollup: {
                type: "object",
                properties: {
                  operator: {
                    type: "string",
                    enum: ["sum"] // 确保枚举值不为空
                  }
                }
              },
              numberFormat: {
                type: "string",
                enum: ["0.00"] // 确保枚举值不为空
              }
            }
          }
        }
      }
    }
  ]
}]

🛡️ 预防措施:

  • 定义enum时,确保每个枚举数组至少包含一个非空字符串。

  • 使用JSON Schema验证工具(如JSON Schema Linter)提前检查参数定义的合法性。