Google Gemini API 文档
  1. 模型功能
Google Gemini API 文档
  • 获取 API 密钥
  • API 版本说明
  • 下载内容
  • 在Google Cloud上运行Gemini
  • 模型功能
    • 概览
    • 长上下文
    • 数据化输出
    • 文档理解
    • 图片理解
    • 视频理解
    • 音频理解
    • 文本生成
      • 文字输入
      • 图片输入
      • 流式输出
      • 多轮对话
      • 多轮对话(流式)
      • 配置参数
    • 图片生成
      • 使用 Gemini 生成图片
      • 使用 Gemini 编辑图片
      • 使用 Imagen 3 生成图片
    • Gemini 思考
      • 使用思维模型
      • 为思考模型设置预算
    • 函数调用
      • 使用 Gemini API 进行函数调用
  • 模型
    • 所有模型
    • 价格
    • 速率限制
    • 账单信息
  • 安全
    • 安全设置
    • 安全指导
  1. 模型功能

数据化输出

Gemini 默认会生成非结构化文本,但某些应用需要结构化文本。对于这些用例,您可以限制 Gemini 以 JSON 格式(一种适合自动处理的结构化数据格式)进行响应。您还可以限制模型使用枚举中指定的选项之一进行响应。
以下是可能需要模型提供结构化输出的几种用例:
从报纸文章中提取公司信息,构建公司数据库。
从简历中提取标准化信息。
从食谱中提取食材,并为每种食材显示指向杂货网站的链接。
在问题中,您可以要求 Gemini 生成 JSON 格式的输出,但请注意,模型无法保证只会生成 JSON 格式的输出。如需获得更确定性的响应,您可以在 responseSchema 字段中传递特定的 JSON 架构,以便 Gemini 始终以预期结构响应。如需详细了解如何使用架构,请参阅详细了解 JSON 架构。
本指南介绍了如何通过您选择的 SDK 使用 generateContent 方法生成 JSON,或者直接使用 REST API 生成 JSON。示例展示了仅包含文本的输入,但 Gemini 还可以针对包含图片、视频和音频的多模态请求生成 JSON 响应。

有关 JSON 架构的详细信息#

将模型配置为返回 JSON 响应时,您可以使用 Schema 对象来定义 JSON 数据的形状。Schema 表示 OpenAPI 3.0 架构对象的选定子集。
下面是所有 Schema 字段的伪 JSON 表示法:
{
  "type": enum (Type),
  "format": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "maxItems": string,
  "minItems": string,
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "propertyOrdering": [
    string
  ],
  "items": {
    object (Schema)
  }
}
架构的 Type 必须是 OpenAPI 数据类型之一。对于每个 Type,只有部分字段有效。以下列表会将每个 Type 映射到该类型的有效字段:
string -> 枚举、格式
integer -> 格式
number -> 格式
boolean
array -> minItems、maxItems、items
object -> properties、required、propertyOrdering、nullable
以下是一些示例架构,展示了有效的类型和字段组合:
{ "type": "string", "enum": ["a", "b", "c"] }

{ "type": "string", "format": "date-time" }

{ "type": "integer", "format": "int64" }

{ "type": "number", "format": "double" }

{ "type": "boolean" }

{ "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": ... } }

{ "type": "object",
  "properties": {
    "a": { "type": ... },
    "b": { "type": ... },
    "c": { "type": ... }
  },
  "nullable": true,
  "required": ["c"],
  "propertyOrdering": ["c", "b", "a"]
}
如需详细了解 Gemini API 中使用的架构字段,请参阅架构参考文档。

媒体资源排序#

在 Gemini API 中使用 JSON 架构时,属性的顺序非常重要。默认情况下,该 API 会按字母顺序对房源进行排序,而不会保留房源的定义顺序(不过 Google Gen AI SDK 可能会保留此顺序)。如果您向配置了架构的模型提供示例,并且示例的属性顺序与架构的属性顺序不一致,则输出可能会杂乱无章或出乎意料。
为确保属性的排序一致且可预测,您可以使用可选的 propertyOrdering[] 字段。
"propertyOrdering": ["recipe_name", "ingredients"]
propertyOrdering[](不是 OpenAPI 规范中的标准字段)是一个字符串数组,用于确定响应中的属性顺序。通过指定属性的顺序,然后提供包含按相同顺序排列的属性的示例,您有望提高结果的质量。
要点 :如需在使用 JSON 架构时改进结果,请设置 propertyOrdering[] 并提供具有匹配属性排序的示例。
上一页
长上下文
下一页
文档理解
Built with