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

如何用curl从Gemini 1.5 API获取JSON输出?遇字段错误求助

解决Gemini API返回JSON格式的问题

问题根源

  • JSON结构错误:你把generation_config错误嵌套在contents数组内部,它应该和contents处于同一层级的顶级字段
  • 字段不存在:Gemini API的generation_config中没有response_mime_type这个参数,这是触发400错误的直接原因

正确实现方式

要获取JSON格式的输出,有两种可靠方案:

方案1:在Prompt中明确指定输出格式

直接在提问里要求返回严格的JSON格式,同时修正请求的JSON结构:

curl -H 'Content-Type: application/json' 
-H "x-goog-api-key: ${API_KEY}" 
-d '{
  "contents": [
    {"role": "user", "parts": [{"text": "Give me five subcategories of jazz? Return your answer in strictly valid JSON format."}]}
  ]
}' "https://generativelanguage.googleapis.com/v1/models/gemini-1.5-flash:generateContent"

方案2:使用结构化输出参数(推荐)

针对Gemini 1.5系列模型,可通过generation_config中的response_schema强制返回符合指定结构的JSON,确保输出格式完全可控:

curl -H 'Content-Type: application/json' 
-H "x-goog-api-key: ${API_KEY}" 
-d '{
  "contents": [
    {"role": "user", "parts": [{"text": "List five subcategories of jazz."}]}
  ],
  "generation_config": {
    "response_schema": {
      "type": "object",
      "properties": {
        "jazz_subcategories": {
          "type": "array",
          "items": {"type": "string"}
        }
      },
      "required": ["jazz_subcategories"]
    }
  }
}' "https://generativelanguage.googleapis.com/v1/models/gemini-1.5-flash:generateContent"

原错误代码修正说明

你之前的请求不仅错误嵌套了generation_config,还使用了API不支持的字段。修正后的核心是让contents和generation_config作为同级顶级字段,且仅使用API文档中定义的有效参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 15:27:48