使用 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 1.5 Flash | gemini-1.5-flash-001 gemini-1.5-flash-002 |
Gemini 1.5 Pro | gemini-1.5-pro-001 gemini-1.5-pro-002 |
Gemini 1.0 Pro Vision | gemini-1.0-pro-001 gemini-1.0-pro-vision-001 |
Gemini 1.0 Pro | gemini-1.0-pro gemini-1.0-pro-001 gemini-1.0-pro-002 |
示例语法
用于生成模型回答的语法。
非流式传输
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:generateContent \ -d '{ "contents": [{ ... }], "generationConfig": { ... }, "safetySettings": { ... } ... }'
Python
gemini_model = GenerativeModel(MODEL_ID) generation_config = GenerationConfig(...) model_response = gemini_model.generate_content([...], generation_config, safety_settings={...})
流式传输
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:streamGenerateContent \ -d '{ "contents": [{ ... }], "generationConfig": { ... }, "safetySettings": { ... } ... }'
Python
gemini_model = GenerativeModel(MODEL_ID) model_response = gemini_model.generate_content([...], generation_config, safety_settings={...}, stream=True)
参数列表
如需了解实现详情,请参阅示例。
请求正文
{ "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 }, "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 类型
对于 对于 Gemini 1.5 Pro 和 Gemini 1.5 Flash,音频文件的时长上限为 8.4 小时,视频文件(不含音频)的时长上限为 1 小时。如需了解详情,请参阅 Gemini 1.5 Pro 媒体要求。 文本文件必须采用 UTF-8 编码。文本文件的内容会计入 token 数限制。 图片分辨率没有限制。 |
|
:要在提示中包含内嵌的图片、PDF 或视频的 base64 编码。添加媒体内嵌时,您还必须指定数据的媒体类型 ( 大小上限:20MB |
CachedContent
用于在上下文缓存到期时进行更新。更新 CachedContent
时,您必须指定 ttl
或 expireTime
,但不能同时指定这两者。如需了解详情,请参阅使用上下文缓存。
参数 | |
---|---|
|
用于指定上下文缓存创建或更新后,上下文缓存在过期前存活的秒数和纳秒数。 |
|
用于指定上下文缓存何时失效的时间戳。 |
TTL
在上下文缓存创建或更新后到过期之前的生存时间或时长。
参数 | |
---|---|
|
上下文缓存创建后到过期之前的持续时间的秒数组成部分。默认值为 3,600 秒。 |
|
可选: 上下文缓存创建后到过期之前的持续时间的纳秒部分。 |
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 可更改模型选择输出词元的方式。系统会按照概率从最高(见 Top-K)到最低的顺序选择 token,直到所选 token 的概率总和等于 Top-P 的值。例如,如果 token A、B 和 C 的概率分别为 0.3、0.2 和 0.1,并且 top-P 值为 指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
|
|
可选:Top-K 可更改模型选择输出 token 的方式。如果 top-K 设为 在每个词元选择步中,系统都会对概率最高的 Top-K 词元进行采样。然后,系统会根据 Top-P 进一步过滤 token,并使用温度采样选择最终的 token。 指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。 范围: 仅受 默认(对于 |
|
可选: 要返回的响应变体数量。 对于每个请求,您需要为所有候选词元的输出词元付费,但只需为输入词元支付一次费用。 指定多个候选项是适用于
|
|
可选:int 回复中可生成的词元数量上限。词元约为 4 个字符。100 个词元对应大约 60-80 个单词。 指定较低的值可获得较短的回答,指定较高的值可获得可能较长的回答。 |
|
可选:
指定一个字符串列表,告知模型在响应中遇到其中一个字符串时,停止生成文本。如果某个字符串在响应中多次出现,则响应会在首次出现的位置截断。字符串区分大小写。
列表中的项目数量上限为 5 个。 |
|
可选: 正面处罚。 正值会惩罚生成的文本中已存在的 token,从而增加生成更多样化内容的概率。
仅 |
|
可选: 正值会惩罚生成的文本中反复出现的 token,从而降低重复内容概率。
仅 |
|
可选: 适用于以下型号:
生成的候选文本的输出响应 MIME 类型。 支持以下 MIME 类型:
请指定适当的响应类型,以避免出现意外行为。例如,如果您需要 JSON 格式的响应,请指定 |
|
可选:schema 适用于以下型号:
生成的候选文本必须遵循的架构。如需了解详情,请参阅控制生成的输出。 您必须指定 |
|
可选: 当种子固定为特定值时,模型会尽最大努力为重复请求提供相同的回答。无法保证确定性输出。此外,更改模型或参数设置(例如温度)可能会导致回答发生变化,即使您使用相同的种子值也是如此。默认情况下,系统会使用随机种子值。 这是预览版功能。 适用于以下型号:
|
响应正文
{ "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 } ], "usageMetadata": { "promptTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer } }
响应元素 | 说明 |
---|---|
text |
生成的文本。 |
finishReason |
模型停止生成词元的原因。如果为空,则模型尚未停止生成词元。由于回答使用上下文提示,因此无法更改模型停止生成词元的行为。
|
category |
要为其配置阈值的安全类别。可接受的值包括:
点击即可展开安全类别
|
probability |
内容中的有害概率级别。
|
blocked |
一个与安全属性关联的布尔值标志,用于指示模型的输入或输出是否被阻止。 |
startIndex |
一个整数,用于指定引用在 content 中的起始位置。
|
endIndex |
一个整数,用于指定引用在 content 中的结束位置。
|
url |
引用来源的网址。网址来源的示例可能是新闻网站或 GitHub 代码库。 |
title |
引用来源的标题。来源标题的示例可能是新闻报道或书籍标题。 |
license |
与引用关联的许可。 |
publicationDate |
引用的发布日期。其有效格式为 YYYY 、YYYY-MM 、YYYY-MM-DD 。
|
avgLogprobs |
候选人的平均日志概率。 |
promptTokenCount |
请求中的词元数量。 |
candidatesTokenCount |
响应中的词元数量。 |
totalTokenCount |
请求和响应中的词元数量。 |
示例
非流式文本回答
根据文本输入生成非流式传输模型回答。
REST
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID
:您的项目 ID。LOCATION
:处理请求的区域。MODEL_ID
:您要使用的模型的模型 ID(例如gemini-1.5-flash-002
)。请参阅受支持的模型列表。TEXT
:要包含在提示中的文本说明。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
请求 JSON 正文:
{ "contents": [{ "role": "user", "parts": [{ "text": "TEXT" }] }] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
C#
REST (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅使用 OpenAI 库调用 Vertex AI 模型。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:处理请求的区域。
- MODEL_ID:要使用的模型的名称。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
请求 JSON 正文:
{ "model": "google/MODEL_ID", "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅使用 OpenAI 库调用 Vertex AI 模型。
非流式多模态回答
根据多模态输入(例如文本和图片)生成非流式模型回答。
REST
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID
:您的项目 ID。LOCATION
:处理请求的区域。MODEL_ID
:您要使用的模型的模型 ID(例如gemini-1.5-flash-002
)。请参阅受支持的模型列表。TEXT
:要包含在提示中的文本说明。FILE_URI
:存储数据的文件的 Cloud Storage URI。MIME_TYPE
:数据的 IANA MIME 类型。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
请求 JSON 正文:
{ "contents": [{ "role": "user", "parts": [ { "text": "TEXT" }, { "fileData": { "fileUri": "FILE_URI", "mimeType": "MIME_TYPE" } } ] }] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
C#
REST (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅使用 OpenAI 库调用 Vertex AI 模型。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:处理请求的区域。
- MODEL_ID:要使用的模型的名称。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
请求 JSON 正文:
{ "model": "google/MODEL_ID", "messages": [{ "role": "user", "content": [ { "type": "text", "text": "Describe the following image:" }, { "type": "image_url", "image_url": { "url": "gs://generativeai-downloads/images/character.jpg" } } ] }] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅使用 OpenAI 库调用 Vertex AI 模型。
流式传输文本回答
根据文本输入生成流式模型回答。
REST
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID
:您的项目 ID。LOCATION
:处理请求的区域。MODEL_ID
:您要使用的模型的模型 ID(例如gemini-1.5-flash-002
)。请参阅受支持的模型列表。TEXT
:要包含在提示中的文本说明。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
请求 JSON 正文:
{ "contents": [{ "role": "user", "parts": [{ "text": "TEXT" }] }] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
REST (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅使用 OpenAI 库调用 Vertex AI 模型。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:处理请求的区域。
- MODEL_ID:要使用的模型的名称。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
请求 JSON 正文:
{ "model": "google/MODEL_ID", "stream": true, "messages": [{ "role": "user", "content": "Write a story about a magic backpack." }] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅使用 OpenAI 库调用 Vertex AI 模型。
流式多模态回答
根据多模态输入(如文本和图片)生成流式模型回答。
REST
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID
:您的项目 ID。LOCATION
:处理请求的区域。MODEL_ID
:您要使用的模型的模型 ID(例如gemini-1.5-flash-002
)。请参阅受支持的模型列表。TEXT
:要包含在提示中的文本说明。FILE_URI1
:存储数据的文件的 Cloud Storage URI。MIME_TYPE1
:数据的 IANA MIME 类型。FILE_URI2
:存储数据的文件的 Cloud Storage URI。MIME_TYPE2
:数据的 IANA MIME 类型。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent
请求 JSON 正文:
{ "contents": [{ "role": "user", "parts": [ { "text": "TEXT" }, { "fileData": { "fileUri": "FILE_URI1", "mimeType": "MIME_TYPE1" } }, { "fileData": { "fileUri": "FILE_URI2", "mimeType": "MIME_TYPE2" } } ] }] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:streamGenerateContent" | Select-Object -Expand Content
Python
NodeJS
Java
Go
REST (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅使用 OpenAI 库调用 Vertex AI 模型。
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:处理请求的区域。
- MODEL_ID:要使用的模型的名称。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
请求 JSON 正文:
{ "model": "google/MODEL_ID", "stream": true, "messages": [{ "role": "user", "content": [ { "type": "text", "text": "Describe the following image:" }, { "type": "image_url", "image_url": { "url": "gs://generativeai-downloads/images/character.jpg" } } ] }] }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
PowerShell
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
Python (OpenAI)
您可以使用 OpenAI 库调用 Inference API。如需了解详情,请参阅使用 OpenAI 库调用 Vertex AI 模型。
模型版本
如需使用自动更新版本,请指定不含尾随版本号的模型名称,例如 gemini-1.5-flash
,而不是 gemini-1.5-flash-001
。
如需了解详情,请参阅 Gemini 模型版本和生命周期。
后续步骤
- 详细了解 Gemini API。
- 详细了解函数调用。
- 详细了解 Gemini 模型的标准回答。