使用 generateContent
或 streamGenerateContent
可通过 Gemini 生成内容。
Gemini 模型系列包含可处理多模态提示请求的模型。多模态一词表示您可以在一个提示中使用多种模态(或输入类型)。非多模态模型仅接受文本提示。模态可以包括文本、音频、视频等。
创建 Google Cloud 账号以开始使用
如需开始使用 Vertex AI API for Gemini,您需要先创建一个 Google Cloud 账号。
创建账号后,您可以使用本文档了解 Gemini 模型的请求正文、模型参数和响应正文,并查看一些示例请求。
准备就绪后,请参阅 Vertex AI API for Gemini 快速入门,了解如何使用编程语言 SDK 或 REST API 向 Vertex AI Gemini API 发送请求。
支持的模型
模型 | 版本 |
---|---|
Gemini 2.0 Flash-Lite | gemini-2.0-flash-lite-001 |
Gemini 2.0 Flash | gemini-2.0-flash-001 |
参数列表
如需了解实现详情,请参阅示例。
请求正文
{ "cachedContent": string, "contents": [ { "role": string, "parts": [ { // Union field data can be only one of the following: "text": string, "inlineData": { "mimeType": string, "data": string }, "fileData": { "mimeType": string, "fileUri": string }, // End of list of possible types for union field data. "videoMetadata": { "startOffset": { "seconds": integer, "nanos": integer }, "endOffset": { "seconds": integer, "nanos": integer } } } ] } ], "systemInstruction": { "role": string, "parts": [ { "text": string } ] }, "tools": [ { "functionDeclarations": [ { "name": string, "description": string, "parameters": { object (OpenAPI Object Schema) } } ] } ], "safetySettings": [ { "category": enum (HarmCategory), "threshold": enum (HarmBlockThreshold) } ], "generationConfig": { "temperature": number, "topP": number, "topK": number, "candidateCount": integer, "maxOutputTokens": integer, "presencePenalty": float, "frequencyPenalty": float, "stopSequences": [ string ], "responseMimeType": string, "responseSchema": schema, "seed": integer, "responseLogprobs": boolean, "logprobs": integer, "audioTimestamp": boolean }, "labels": { string: string } }
请求正文中包含具有以下参数的数据:
参数 | |
---|---|
| 可选: 用作提供预测的上下文的缓存内容的名称。格式: |
|
必需: 与模型当前对话的内容。 对于单轮查询,这是单个实例。对于多轮查询,这是包含对话历史记录和最新请求的重复字段。 |
|
可选: 适用于 有关引导模型获得更好性能的说明。例如,“回答尽可能简明扼要”或“请勿在回答中使用技术词汇”。
|
|
可选。一段代码,可让系统与外部系统进行交互,以在模型知识和范围之外执行操作或一组操作。 请参阅函数调用。 |
|
可选。请参阅函数调用。 |
|
可选: 针对每个请求的设置,用于屏蔽不安全内容。 在 |
|
可选: 生成配置设置。 |
|
可选: 您可以采用键值对格式添加到 API 调用中的元数据。 |
contents
包含消息的多部分内容的基本结构化数据类型。
此类包含两个主要属性:role
和 parts
。role
属性表示生成内容的个人,而 parts
属性包含多个元素,每个元素表示消息中的一段数据。
参数 | |
---|---|
|
可选: 创建消息的实体的身份。支持以下值:
对于非多轮对话,此字段可以留空或未设置。 |
|
构成单条消息的有序部分的列表。不同的部分可能具有不同的 IANA MIME 类型。 如需了解输入限制(例如 token 或图片数量上限),请参阅 Google 模型页面上的模型规范部分。 如需计算请求中的 token 数量,请参阅获取 token 数。 |
parts
包含属于多部分 Content
消息一部分的媒体的数据类型。
参数 | |
---|---|
|
可选: 文本提示或代码段。 |
|
可选: 原始字节中的内嵌数据。 对于 |
|
可选: 存储在文件中的数据。 |
|
可选: 它包含表示 请参阅函数调用。 |
|
可选:
请参阅函数调用。 |
|
可选: 对于视频输入,为视频的开始和结束偏移量,采用时长格式。例如,如需指定从 1:00 开始的 10 秒剪辑,请设置 仅当视频数据以 |
blob
内容 blob。如果可能,这会以文本而非原始字节的形式发送。
参数 | |
---|---|
|
data 或 fileUri 字段中指定的文件的媒体类型。可接受的值包括:
点击即可展开 MIME 类型
对于 文本文件必须采用 UTF-8 编码。文本文件的内容会计入 token 数限制。 图片分辨率没有限制。 |
|
:要在提示中包含内嵌的图片、PDF 或视频的 base64 编码。添加媒体内嵌时,您还必须指定数据的媒体类型 ( 大小上限:20MB |
FileData
URI 或网址数据。
参数 | |
---|---|
|
数据的 IANA MIME 类型。 |
|
要包含在提示中的文件的 URI 或网址。可接受的值包括:
指定 |
functionCall
从模型返回的预测 functionCall
,其中包含表示 functionDeclaration.name
的字符串和包含参数及其值的结构化 JSON 对象。
参数 | |
---|---|
|
要调用的函数名称。 |
|
以 JSON 对象格式表示的函数参数和值。 如需了解参数详情,请参阅函数调用。 |
functionResponse
FunctionCall
的生成输出,其中包含表示 FunctionDeclaration.name
的字符串。还包含带有函数输出的结构化 JSON 对象(并将其用作模型的上下文)。这应包含根据模型预测生成的 FunctionCall
的结果。
参数 | |
---|---|
|
要调用的函数名称。 |
|
以 JSON 对象格式表示的函数响应。 |
videoMetadata
用于描述输入视频内容的元数据。
参数 | |
---|---|
|
可选: 视频的起始偏移量。 |
|
可选: 视频的结束偏移量。 |
safetySetting
安全设置。
参数 | |
---|---|
|
可选:
要为其配置阈值的安全类别。可接受的值包括:
点击即可展开安全类别
|
|
可选: 基于概率阻止属于指定安全类别的响应的阈值。
|
|
可选: 指定是将阈值用于概率得分还是严重程度得分。如果未指定,则系统会将阈值用于概率得分。 |
harmCategory
用于屏蔽内容的有害类别。
参数 | |
---|---|
|
未指定有害类别。 |
|
有害类别为仇恨言论。 |
|
有害类别为危险内容。 |
|
有害类别为骚扰。 |
|
有害类别为露骨色情内容。 |
harmBlockThreshold
用于屏蔽回答的概率阈值级别。
参数 | |
---|---|
|
未指定的有害屏蔽阈值。 |
|
屏蔽低阈值及以上的内容(即屏蔽较多的内容)。 |
|
屏蔽中等阈值及以上的内容。 |
|
仅屏蔽高阈值内容(即屏蔽较少的内容)。 |
|
全部不屏蔽。 |
|
在所有类别都已停用的情况下关闭安全设置 |
harmBlockMethod
根据概率和严重级别组合屏蔽回答的概率阈值。
参数 | |
---|---|
|
未指定有害内容屏蔽方法。 |
|
有害内容屏蔽方法同时使用可能性得分和严重程度得分。 |
|
有害内容屏蔽方法使用概率得分。 |
generationConfig
生成提示时使用的配置设置。
参数 | |
---|---|
|
可选:
温度 (temperature) 在生成回复期间用于采样,在应用 如果模型返回的回答过于笼统、过于简短,或者模型给出后备回答,请尝试提高温度。
如需了解详情,请参阅内容生成参数。 |
|
可选: 如果指定,则使用核采样。 Top-P 可更改模型选择输出 token 的方式。系统会按照概率从最高(见 Top-K)到最低的顺序选择 token,直到所选 token 的概率总和等于 Top-P 的值。例如,如果 token A、B 和 C 的概率分别为 0.3、0.2 和 0.1,并且 top-P 值为 指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
|
|
可选: 要返回的响应变体数量。 对于每个请求,您需要为所有候选词元的输出词元付费,但只需为输入词元支付一次费用。 指定多个候选项是适用于
|
|
可选:int 回复中可生成的词元数量上限。词元约为 4 个字符。100 个词元对应大约 60-80 个单词。 指定较低的值可获得较短的回答,指定较高的值可获得可能较长的回答。 如需了解详情,请参阅内容生成参数。 |
|
可选:
指定一个字符串列表,告知模型在响应中遇到其中一个字符串时,停止生成文本。如果某个字符串在响应中多次出现,则响应会在首次出现的位置截断。字符串区分大小写。
列表中的项目数量上限为 5 个。 如需了解详情,请参阅内容生成参数。 |
|
可选: 正例惩罚。 正值会惩罚生成的文本中已存在的 token,从而增加生成更多样化内容的概率。
受 |
|
可选: 正值会惩罚生成的文本中反复出现的 token,从而降低重复内容概率。
受 |
|
可选: 适用于以下模型:
生成的候选文本的输出回答 MIME 类型。 支持以下 MIME 类型:
指定适当的回答类型,以避免出现意外行为。例如,如果您需要 JSON 格式的回答,请指定 |
|
可选:schema 生成的候选文本必须遵循的架构。如需了解详情,请参阅控制生成的输出。 您必须指定 适用于以下模型:
|
|
可选: 当种子固定为特定值时,模型会尽最大努力为重复请求提供相同的回答。无法保证确定性输出。此外,更改模型或参数设置(例如温度)可能会导致回答发生变化,即使您使用相同的种子值也是如此。默认情况下,系统会使用随机种子值。 适用于以下模型:
这是预览版功能。 |
|
可选: 如果为 true,则返回模型在每个步骤中选择的 token 的对数概率。默认情况下,此参数设置为 适用于以下模型:
这是预览版功能。 |
|
可选:
返回每个生成步骤中排名靠前的候选 token 的对数概率。模型的所选 token 可能与每个步骤中排名靠前的候选 token 不同。使用介于 您必须启用 这是预览版功能。 |
|
可选: 适用于以下模型:
为仅音频文件启用时间戳理解功能。 这是预览版功能。 |
响应正文
{ "candidates": [ { "content": { "parts": [ { "text": string } ] }, "finishReason": enum (FinishReason), "safetyRatings": [ { "category": enum (HarmCategory), "probability": enum (HarmProbability), "blocked": boolean } ], "citationMetadata": { "citations": [ { "startIndex": integer, "endIndex": integer, "uri": string, "title": string, "license": string, "publicationDate": { "year": integer, "month": integer, "day": integer } } ] }, "avgLogprobs": double, "logprobsResult": { "topCandidates": [ { "candidates": [ { "token": string, "logProbability": float } ] } ], "chosenCandidates": [ { "token": string, "logProbability": float } ] } } ], "usageMetadata": { "promptTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer }, "modelVersion": string }
响应元素 | 说明 |
---|---|
modelVersion |
用于生成的模型和版本。例如:gemini-1.5-flash-002 。 |
text |
生成的文本。 |
finishReason |
模型停止生成词元的原因。如果为空,则模型尚未停止生成词元。由于回答使用上下文提示,因此无法更改模型停止生成词元的行为。
|
category |
要为其配置阈值的安全类别。可接受的值包括:
点击即可展开安全类别
|
probability |
内容中的有害概率级别。
|
blocked |
一个与安全属性关联的布尔值标志,用于指示模型的输入或输出是否被阻止。 |
startIndex |
一个整数,用于指定引用在 content 中的起始位置。
|
endIndex |
一个整数,用于指定引用在 content 中的结束位置。
|
url |
引用来源的网址。网址来源的示例可能是新闻网站或 GitHub 代码库。 |
title |
引用来源的标题。来源标题的示例可能是新闻报道或书籍标题。 |
license |
与引用关联的许可。 |
publicationDate |
引用的发布日期。其有效格式为 YYYY 、YYYY-MM 、YYYY-MM-DD 。
|
avgLogprobs |
候选项的平均对数概率。 |
logprobsResult |
返回每个步骤中排名靠前的候选 token (topCandidates ) 和实际选择的 token (chosenCandidates )。 |
token |
生成式 AI 模型会将文本数据细分为 token 以进行处理,token 可以是字符、字词或短语。 |
logProbability |
表示模型对特定 token 的置信度的对数概率值。 |
promptTokenCount |
请求中的词元数量。 |
candidatesTokenCount |
响应中的词元数量。 |
totalTokenCount |
请求和响应中的词元数量。 |
示例
非流式文本回答
根据文本输入生成非流式传输模型回答。
Gen AI SDK for Python
Python (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅 使用 OpenAI 库调用 Vertex AI 模型。
非流式多模态回答
根据多模态输入(例如文本和图片)生成非流式传输模型回答。
Gen AI SDK for Python
Python (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅 使用 OpenAI 库调用 Vertex AI 模型。
流式传输文本回答
根据文本输入生成流式传输模型回答。
Gen AI SDK for Python
Python (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅 使用 OpenAI 库调用 Vertex AI 模型。
流式多模态回答
根据多模态输入(例如文本和图片)生成流式传输模型回答。
Python (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅 使用 OpenAI 库调用 Vertex AI 模型。
模型版本
如需使用自动更新版本,请指定不含尾随版本号的模型名称,例如 gemini-2.0-flash
,而不是 gemini-2.0-flash-001
。
如需了解详情,请参阅 Gemini 模型版本和生命周期。
后续步骤
- 详细了解 Gemini API。
- 详细了解函数调用。
- 详细了解 Gemini 模型的接地回答。