您可以向 Gemini 请求添加图片,以便执行涉及理解所含图片内容的任务。本页面介绍了如何使用 Google Cloud 控制台和 Vertex AI API,在 Vertex AI 中向发送给 Gemini 的请求添加图片。
支持的模型
下表列出了支持图片理解的模型:
模型 | 图片模态详细信息 |
---|---|
Gemini 1.5 Flash 转到 Gemini 1.5 Flash 模型卡片 |
每个提示的图片数量上限:3,000 |
Gemini 1.5 Pro 转到 Gemini 1.5 Pro 模型卡片 |
每个提示的图片数量上限:3,000 |
Gemini 1.0 Pro Vision 转到 Gemini 1.0 Pro Vision 模型卡片 |
每个提示的图片数量上限:16 |
如需查看 Gemini 模型支持的语言列表,请参阅 Google 模型的模型信息。如需详细了解如何设计多模态提示,请参阅设计多模态提示。如果您正在寻找一种直接在移动应用和 Web 应用中使用 Gemini 的方法,请查看适用于 Android、Swift 和 Web 的 Google AI SDK。
向请求添加图片
您可以在向 Gemini 发送的请求中添加单张图片或多张图片。
单张图片
以下各个标签页中的示例代码展示了标识图片中内容的不同方式。此示例适用于所有多模态 Gemini 模型。
Python
如需了解如何安装或更新 Python 版 Vertex AI SDK,请参阅安装 Python 版 Vertex AI SDK。如需了解详情,请参阅 Python 版 Vertex AI SDK API 参考文档。
流式回答和非流式回答
您可以选择模型是生成流式回答还是非流式回答。流式传输涉及在生成对提示的回答时接收这些回答。也就是说,只要模型生成输出词元,就会发送这些输出词元。只有在生成所有输出词元后,才会发送对提示的非流式回答。
对于流式回答,请使用 generate_content
中的 stream
参数。
response = model.generate_content(contents=[...], stream = True)
对于非流式回答,请移除该参数或将参数设置为 False
。
示例代码
Java
在尝试此示例之前,请按照《Vertex AI 快速入门》中的 Java 设置说明执行操作。如需了解详情,请参阅适用于 Gemini 的 Vertex AI Java SDK 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
流式回答和非流式回答
您可以选择模型是生成流式回答还是非流式回答。流式传输涉及在生成对提示的回答时接收这些回答。也就是说,只要模型生成输出词元,就会发送这些输出词元。只有在生成所有输出词元后,才会发送对提示的非流式回答。
对于流式回答,请使用 generateContentStream
方法。
public ResponseStreamgenerateContentStream(Content content)
对于非流式回答,请使用 generateContent
方法。
public GenerateContentResponse generateContent(Content content)
示例代码
Node.js
在尝试此示例之前,请按照《生成式 AI 快速入门:使用 Node.js SDK》中的 Node.js 设置说明执行操作。如需了解详情,请参阅适用于 Gemini 的 Node.js SDK 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
流式回答和非流式回答
您可以选择模型是生成流式回答还是非流式回答。流式传输涉及在生成对提示的回答时接收这些回答。也就是说,只要模型生成输出词元,就会发送这些输出词元。只有在生成所有输出词元后,才会发送对提示的非流式回答。
对于流式回答,请使用 generateContentStream
方法。
const streamingResp = await generativeModel.generateContentStream(request);
对于非流式回答,请使用 generateContent
方法。
const streamingResp = await generativeModel.generateContent(request);
示例代码
REST
您可以使用 REST 测试文本提示,方法是使用 Vertex AI API 向发布方模型端点发送 POST 请求。
在使用任何请求数据之前,请先进行以下替换:
- GENERATE_RESPONSE_METHOD:您希望模型生成的回答类型。选择一种方法来生成您希望返回模型回答的方式:
streamGenerateContent
:在生成回答时进行流式传输,以降低真人受众群体对于延迟的感知度。generateContent
:回答在完全生成后返回。
- LOCATION:处理请求的区域。可用的选项包括:
点击即可展开可用的区域
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID:您的项目 ID。
- MODEL_ID:您要使用的多模态模型 ID。选项包括:
gemini-1.0-pro-vision
- ROLE:与内容关联的对话中的角色。即使在单轮应用场景中,也需要指定角色。
可接受的值包括:
USER
:指定由您发送的内容。
- TEXT:要包含在提示中的文本说明。
- B64_BASE:要在提示中包含内嵌的图片、PDF 或视频的 base64 编码。添加媒体内嵌时,您还必须指定 MIMETYPE。
- FILE_URI:要包含在提示中的文件的 Cloud Storage URI。存储桶对象必须可公开读取,或者位于发送请求的同一 Google Cloud 项目中。您还必须指定文件的媒体类型 (MIMETYPE)。
- MIME_TYPE:在
data
或fileUri
字段中指定的图片、PDF 或视频的媒体类型。可接受的值包括:点击即可展开 MIME 类型
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:要为其配置阈值的安全类别。可接受的值包括:
点击即可展开安全类别
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:基于概率阻止属于指定安全类别的回答的阈值。可接受的值包括:
点击即可展开屏蔽阈值
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(默认)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
屏蔽得最多,而BLOCK_ONLY_HIGH
屏蔽得最少。 - TEMPERATURE:温度 (temperature) 在生成回答期间用于采样,在应用
topP
和topK
时会生成回答。温度可以控制词元选择的随机性。 较低的温度有利于需要更少开放性或创造性回复的提示,而较高的温度可以带来更具多样性或创造性的结果。温度为0
表示始终选择概率最高的词元。在这种情况下,给定提示的回复大多是确定的,但可能仍然有少量变化。如果模型返回的回答过于笼统、过于简短,或者模型给出后备回答,请尝试提高温度。
- TOP_P:Top-P 可更改模型选择输出词元的方式。系统会按照概率从最高(见 top-K)到最低的顺序选择词元,直到所选词元的概率总和等于 top-P 的值。例如,如果词元 A、B 和 C 的概率分别为 0.3、0.2 和 0.1,并且 top-P 值为
0.5
,则模型将选择 A 或 B 作为下一个词元(通过温度确定),并会排除 C,将其作为候选词元。指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
- TOP_K:Top-K 可更改模型选择输出词元的方式。如果 top-K 设为
1
,表示所选词元是模型词汇表的所有词元中概率最高的词元(也称为贪心解码)。如果 top-K 设为3
,则表示系统将从 3 个概率最高的词元(通过温度确定)中选择下一个词元。在每个词元选择步骤中,系统都会对概率最高的 top-K 词元进行采样。然后,系统会根据 top-P 进一步过滤词元,并使用温度采样选择最终的词元。
指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
- MAX_OUTPUT_TOKENS:回答中可生成的词元数量上限。词元约为 4 个字符。100 个词元对应大约 60-80 个单词。
指定较低的值可获得较短的回答,指定较高的值可获得可能较长的回答。
- STOP_SEQUENCES:指定一个字符串列表,告知模型在响应中遇到其中一个字符串时,停止生成文本。如果某个字符串在响应中多次出现,则响应会在首次出现的位置截断。字符串区分大小写。
例如,未指定stopSequences
时,如果下面的内容是返回的回复:
public static string reverse(string myString)
则返回的回复为以下内容,其中stopSequences
设置为["Str", "reverse"]
:
public static string
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
请求 JSON 正文:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
如需发送请求,请选择以下方式之一:
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:GENERATE_RESPONSE_METHOD"
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:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应。
示例 curl 命令
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
多张图片
以下各个标签页展示了在提示请求中添加多张图片的不同方式。这些图片示例适用于所有多模态 Gemini 模型。
Python
如需了解如何安装或更新 Python 版 Vertex AI SDK,请参阅安装 Python 版 Vertex AI SDK。如需了解详情,请参阅 Python 版 Vertex AI SDK API 参考文档。
流式回答和非流式回答
您可以选择模型是生成流式回答还是非流式回答。流式传输涉及在生成对提示的回答时接收这些回答。也就是说,只要模型生成输出词元,就会发送这些输出词元。只有在生成所有输出词元后,才会发送对提示的非流式回答。
对于流式回答,请使用 generate_content
中的 stream
参数。
response = model.generate_content(contents=[...], stream = True)
对于非流式回答,请移除该参数或将参数设置为 False
。
示例代码
Java
在尝试此示例之前,请按照《Vertex AI 快速入门》中的 Java 设置说明执行操作。如需了解详情,请参阅适用于 Gemini 的 Vertex AI Java SDK 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
流式回答和非流式回答
您可以选择模型是生成流式回答还是非流式回答。流式传输涉及在生成对提示的回答时接收这些回答。也就是说,只要模型生成输出词元,就会发送这些输出词元。只有在生成所有输出词元后,才会发送对提示的非流式回答。
对于流式回答,请使用 generateContentStream
方法。
public ResponseStreamgenerateContentStream(Content content)
对于非流式回答,请使用 generateContent
方法。
public GenerateContentResponse generateContent(Content content)
示例代码
Node.js
在尝试此示例之前,请按照《生成式 AI 快速入门:使用 Node.js SDK》中的 Node.js 设置说明执行操作。如需了解详情,请参阅适用于 Gemini 的 Node.js SDK 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
流式回答和非流式回答
您可以选择模型是生成流式回答还是非流式回答。流式传输涉及在生成对提示的回答时接收这些回答。也就是说,只要模型生成输出词元,就会发送这些输出词元。只有在生成所有输出词元后,才会发送对提示的非流式回答。
对于流式回答,请使用 generateContentStream
方法。
const streamingResp = await generativeModel.generateContentStream(request);
对于非流式回答,请使用 generateContent
方法。
const streamingResp = await generativeModel.generateContent(request);
示例代码
Go
在尝试此示例之前,请按照《Vertex AI 快速入门》中的 Go 设置说明执行操作。如需了解详情,请参阅适用于 Gemini 的 Vertex AI Go SDK 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
流式回答和非流式回答
您可以选择模型是生成流式回答还是非流式回答。流式传输涉及在生成对提示的回答时接收这些回答。也就是说,只要模型生成输出词元,就会发送这些输出词元。只有在生成所有输出词元后,才会发送对提示的非流式回答。
对于流式回答,请使用 GenerateContentStream
方法。
iter := model.GenerateContentStream(ctx, genai.Text("Tell me a story about a lumberjack and his giant ox. Keep it very short."))
对于非流式回答,请使用 GenerateContent
方法。
resp, err := model.GenerateContent(ctx, genai.Text("What is the average size of a swallow?"))
示例代码
C#
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 C# 设置说明执行操作。 如需了解详情,请参阅 Vertex AI C# API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST
您可以使用 REST 测试文本提示,方法是使用 Vertex AI API 向发布方模型端点发送 POST 请求。
在使用任何请求数据之前,请先进行以下替换:
- GENERATE_RESPONSE_METHOD:您希望模型生成的回答类型。选择一种方法来生成您希望返回模型回答的方式:
streamGenerateContent
:在生成回答时进行流式传输,以降低真人受众群体对于延迟的感知度。generateContent
:回答在完全生成后返回。
- LOCATION:处理请求的区域。可用的选项包括:
点击即可展开可用的区域
us-central1
us-west4
northamerica-northeast1
us-east4
us-west1
asia-northeast3
asia-southeast1
asia-northeast1
- PROJECT_ID:您的项目 ID。
- MODEL_ID:您要使用的多模态模型 ID。选项包括:
gemini-1.0-pro-vision
- ROLE:与内容关联的对话中的角色。即使在单轮应用场景中,也需要指定角色。
可接受的值包括:
USER
:指定由您发送的内容。
- TEXT:要包含在提示中的文本说明。
- B64_BASE:要在提示中包含内嵌的图片、PDF 或视频的 base64 编码。添加媒体内嵌时,您还必须指定 MIMETYPE。
- FILE_URI:要包含在提示中的文件的 Cloud Storage URI。存储桶对象必须可公开读取,或者位于发送请求的同一 Google Cloud 项目中。您还必须指定文件的媒体类型 (MIMETYPE)。
- MIME_TYPE:在
data
或fileUri
字段中指定的图片、PDF 或视频的媒体类型。可接受的值包括:点击即可展开 MIME 类型
application/pdf
audio/mpeg
audio/mp3
audio/wav
image/png
image/jpeg
text/plain
video/mov
video/mpeg
video/mp4
video/mpg
video/avi
video/wmv
video/mpegps
video/flv
- SAFETY_CATEGORY:要为其配置阈值的安全类别。可接受的值包括:
点击即可展开安全类别
HARM_CATEGORY_SEXUALLY_EXPLICIT
HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_DANGEROUS_CONTENT
- THRESHOLD:基于概率阻止属于指定安全类别的回答的阈值。可接受的值包括:
点击即可展开屏蔽阈值
BLOCK_NONE
BLOCK_ONLY_HIGH
BLOCK_MEDIUM_AND_ABOVE
(默认)BLOCK_LOW_AND_ABOVE
BLOCK_LOW_AND_ABOVE
屏蔽得最多,而BLOCK_ONLY_HIGH
屏蔽得最少。 - TEMPERATURE:温度 (temperature) 在生成回答期间用于采样,在应用
topP
和topK
时会生成回答。温度可以控制词元选择的随机性。 较低的温度有利于需要更少开放性或创造性回复的提示,而较高的温度可以带来更具多样性或创造性的结果。温度为0
表示始终选择概率最高的词元。在这种情况下,给定提示的回复大多是确定的,但可能仍然有少量变化。如果模型返回的回答过于笼统、过于简短,或者模型给出后备回答,请尝试提高温度。
- TOP_P:Top-P 可更改模型选择输出词元的方式。系统会按照概率从最高(见 top-K)到最低的顺序选择词元,直到所选词元的概率总和等于 top-P 的值。例如,如果词元 A、B 和 C 的概率分别为 0.3、0.2 和 0.1,并且 top-P 值为
0.5
,则模型将选择 A 或 B 作为下一个词元(通过温度确定),并会排除 C,将其作为候选词元。指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
- TOP_K:Top-K 可更改模型选择输出词元的方式。如果 top-K 设为
1
,表示所选词元是模型词汇表的所有词元中概率最高的词元(也称为贪心解码)。如果 top-K 设为3
,则表示系统将从 3 个概率最高的词元(通过温度确定)中选择下一个词元。在每个词元选择步骤中,系统都会对概率最高的 top-K 词元进行采样。然后,系统会根据 top-P 进一步过滤词元,并使用温度采样选择最终的词元。
指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
- MAX_OUTPUT_TOKENS:回答中可生成的词元数量上限。词元约为 4 个字符。100 个词元对应大约 60-80 个单词。
指定较低的值可获得较短的回答,指定较高的值可获得可能较长的回答。
- STOP_SEQUENCES:指定一个字符串列表,告知模型在响应中遇到其中一个字符串时,停止生成文本。如果某个字符串在响应中多次出现,则响应会在首次出现的位置截断。字符串区分大小写。
例如,未指定stopSequences
时,如果下面的内容是返回的回复:
public static string reverse(string myString)
则返回的回复为以下内容,其中stopSequences
设置为["Str", "reverse"]
:
public static string
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATE_RESPONSE_METHOD
请求 JSON 正文:
{ "contents": { "role": "ROLE", "parts": [ { "inlineDATA": { "mimeType": "MIME_TYPE", "data": "B64_BASE_IMAGE" } }, { "fileData": { "mimeType": "MIME_TYPE", "fileUri": "FILE_URI" } }, { "text": "TEXT" } ] }, "safety_settings": { "category": "SAFETY_CATEGORY", "threshold": "THRESHOLD" }, "generation_config": { "temperature": TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "candidateCount": 1, "maxOutputTokens": MAX_OUTPUT_TOKENS, "stopSequences": STOP_SEQUENCES, } }
如需发送请求,请选择以下方式之一:
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:GENERATE_RESPONSE_METHOD"
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:GENERATE_RESPONSE_METHOD" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应。
示例 curl 命令
LOCATION="us-central1"
MODEL_ID="gemini-1.0-pro-vision"
PROJECT_ID="test-project"
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json"
https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/${MODEL_ID}:${GENERATE_RESPONSE_METHOD} -d \
$'{
"contents": {
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "image/png",
"fileUri": "gs://my-bucket/images/cat.png"
}
},
{
"text": "Describe this picture."
},
]
},
"safety_settings": {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_LOW_AND_ABOVE"
},
"generation_config": {
"temperature": 0.4,
"topP": 1,
"topK": 32,
"maxOutputTokens": 2048,
}
}'
控制台
如需使用 Google Cloud 控制台发送多模态提示,请执行以下操作:
- 在 Google Cloud 控制台的“Vertex AI”部分,进入 Vertex AI Studio 页面。
- 在提示设计(单轮)下,点击打开。
配置模型和参数:
- 区域:选择您要使用的区域。
- 模型:选择 Gemini Pro Vision。
温度:使用滑块或文本框输入温度值。
温度 (temperature) 在生成回复期间用于采样,在应用topP
和topK
时会生成回复。温度可以控制词元选择的随机性。 较低的温度有利于需要更少开放性或创造性回复的提示,而较高的温度可以带来更具多样性或创造性的结果。温度为0
表示始终选择概率最高的词元。在这种情况下,给定提示的回复大多是确定的,但可能仍然有少量变化。如果模型返回的回答过于笼统、过于简短,或者模型给出后备回答,请尝试提高温度。
词元上限:使用滑块或文本框输入输出上限值。
回答中可生成的词元数量上限。词元约为 4 个字符。100 个词元对应大约 60-80 个单词。指定较低的值可获得较短的回复,指定较高的值可获得可能较长的回复。
- 添加停止序列:输入停止序列,即模型遇到时停止回复的一系列字符(包括空格)。该序列不包含在回复中。您最多可以添加五个停止序列。
- 可选:如需配置高级参数,请点击高级,然后按如下方式进行配置:
Top-K:使用滑块或文本框输入 top-K 值。
Top-K 可更改模型选择输出词元的方式。如果 top-K 设为1
,表示所选词元是模型词汇表的所有词元中概率最高的词元(也称为贪心解码)。如果 top-K 设为3
,则表示系统将从 3 个概率最高的词元(通过温度确定)中选择下一个词元。在每个词元选择步骤中,系统都会对概率最高的 top-K 词元进行采样。然后,系统会根据 top-P 进一步过滤词元,并使用温度采样选择最终的词元。
指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
- Top-P:使用滑块或文本框输入 top-P 值。
系统会按照概率从最高到最低的顺序选择词元,直到所选词元的概率总和等于 top-P 的值。如需获得数量最小的变量结果,请将 top-P 设置为
0
。 Google Cloud 控制台仅支持流式传输,涉及在生成对提示的回答时接收这些回答。您现在可以在消息框中输入消息,以开始与模型对话。
随后,模型会使用之前的消息作为新回复的语境。如需在提示中添加图片、PDF 或视频,请点击
图标。如需了解多模态提示,请参阅设计多模态提示。
- 可选:如需将提示保存到我的提示,请点击 保存。
- 可选:如需获取提示的 Python 代码或 curl 命令,请点击 获取代码。
- 可选:如需清除之前的所有消息,请点击 清除对话
点击即可展开高级配置
设置模型参数
可以对多模态模型设置以下模型参数:
Top-P
Top-P 可更改模型选择输出词元的方式。系统会按照概率从最高(见 top-K)到最低的顺序选择词元,直到所选词元的概率总和等于 top-P 的值。例如,如果词元 A、B 和 C 的概率分别为 0.3、0.2 和 0.1,并且 top-P 值为 0.5
,则模型将选择 A 或 B 作为下一个词元(通过温度确定),并会排除 C,将其作为候选词元。
指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
Top-K
Top-K 可更改模型选择输出词元的方式。如果 top-K 设为 1
,表示所选词元是模型词汇表的所有词元中概率最高的词元(也称为贪心解码)。如果 top-K 设为 3
,则表示系统将从 3 个概率最高的词元(通过温度确定)中选择下一个词元。
在每个词元选择步骤中,系统都会对概率最高的 top-K 词元进行采样。然后,系统会根据 top-P 进一步过滤词元,并使用温度采样选择最终的词元。
指定较低的值可获得随机程度较低的回答,指定较高的值可获得随机程度较高的回答。
温度
温度 (temperature) 在生成回复期间用于采样,在应用 topP
和 topK
时会生成回复。温度可以控制词元选择的随机性。
较低的温度有利于需要更少开放性或创造性回复的提示,而较高的温度可以带来更具多样性或创造性的结果。温度为 0
表示始终选择概率最高的词元。在这种情况下,给定提示的回复大多是确定的,但可能仍然有少量变化。
如果模型返回的回答过于笼统、过于简短,或者模型给出后备回答,请尝试提高温度。
有效的参数值
参数 | Gemini 1.0 Pro Vision | Gemini 1.5 Pro | Gemini 1.5 Flash |
---|---|---|---|
Top-K | 1 - 40(默认为 32) | 不支持 | 不支持 |
Top-P | 0 - 1.0(默认 1.0) | 0 - 1.0(默认 0.95) | 0 - 1.0(默认 0.95) |
温度 | 0 - 1.0(默认 0.4) | 0 - 2.0(默认 1.0) | 0 - 2.0(默认 1.0) |
图片要求
多模态 Gemini 模型支持以下图片 MIME 类型:
图片 Mime 类型 | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
PNG - image/png |
|||
JPEG - image/jpeg |
对图片中的像素数量没有具体限制。不过,较大的图片会被缩小和填充,以适应最大分辨率 (3072 x 3072),同时保留其原始宽高比。
对于 Gemini 1.0 Pro Vision,每张图片占 258 个词元。
对于 Gemini 1.5 Flash 和 Gemini 1.5 Pro:
- 如果图片的宽高比的两个维度小于或等于 384,则使用 258 个词元。
- 如果图片宽高比的某个维度大于 384,则图片会被剪裁成图块。每个图块大小默认为最小维度(宽度或高度)除以 1.5。如有必要,系统会调整每个图块,使其不小于 256 且不大于 768。随后系统会将每个图块的大小调整为 768x768,并使用 258 个词元。
问题请求中的图片数量上限为:
- 16(针对 Gemini 1.0 Pro Vision)
- 3,000(针对 Gemini 1.5 Flash 和 Gemini 1.5 Pro)
最佳实践
使用图片时,请遵循以下最佳实践和信息以获得最佳结果。
- 如果您想要检测图片中的文本,则使用包含单张图片的提示可生成比包含多张图片的提示更好的结果。
- 如果提示包含单张图片,请将该图片放在文本提示前面。
如果提示中有多个图片,并且您希望稍后在提示中引用这些图片,或者希望模型在模型响应中引用这些图片,则在图片之前为每张图片提供索引会有所帮助。对于索引,请使用
a
b
c
或image 1
image 2
image 3
。以下是在提示中使用已编入索引的图片的示例:image 1 <piano_recital.jpeg> image 2 <family_dinner.jpeg> image 3 <coffee_shop.jpeg> Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3.
图片分辨率越高,效果越好。
在提示中添加一些示例。
请先将图片旋转到适当方向,然后再将其添加到提示中。
避免使用模糊的图片。
限制
虽然 Gemini 多模态模型在许多多模态用户案例中表现出强大功能,但了解模型的限制非常重要:
- 空间推理:模型在定位图片中的文本或对象时并不精确。它们可能只返回对象数的近似值。
- 医疗用途:模型不适合解读医学图片(例如 X 光片和 CT 扫描),也不适合提供医学建议。
- 人物识别:模型不应用于识别图片中并非名人的人。
- 内容审核:模型拒绝对违反我们安全政策的图片提供回答。
- 准确率:模型在解读低画质、旋转或分辨率极低的图片时可能会产生幻觉或出错。在解读图片文档中的手写文本时,模型也可能会产生幻觉。
后续步骤
- 开始使用 Gemini 多模态模型进行构建 - 新客户可获享 $300 免费 Google Cloud 赠金,探索他们可以使用 Gemini 执行的操作。
- 了解如何发送聊天提示请求。
- 了解 Responsible AI 最佳实践和 Vertex AI 的安全过滤条件。