使用 Inference API 生成 Gemini 提示。
Gemini 模型系列包含可处理多模态提示请求的模型。多模态一词表示您可以在一个提示中使用多种模态(或输入类型)。非多模态模型仅接受文本提示。模态可以包括文本、音频、视频等。
如需了解更多概览信息,请参阅:
支持的模型:
模型 | 版本 |
---|---|
Gemini 1.5 Flash | gemini-1.5-flash-001 |
Gemini 1.5 Pro | gemini-1.5-pro-001 |
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": [{ ... }], "generation_config": { ... }, "safety_settings": { ... } ... }'
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": [{ ... }], "generation_config": { ... }, "safety_settings": { ... } ... }'
Python
gemini_model = GenerativeModel(MODEL_ID) model_response = gemini_model.generate_content([...], generation_config, safety_settings={...}, stream=True)
参数列表
如需了解实现详情,请参阅示例。
请求正文
请求正文中包含具有以下参数的数据:
参数 | |
---|---|
|
必需: 与模型当前对话的内容。 对于单轮查询,这是单个实例。对于多轮查询,此字段是包含对话记录和最新请求的重复字段。 |
|
可选: 用户为模型提供了系统说明。 注意: |
|
可选。请参阅 Function Call API。 |
|
可选。请参阅 Function Call API。 |
|
可选: 用于屏蔽不安全内容的按请求设置。 在 |
|
可选: 生成配置设置。 |
内容
包含消息的多部分内容的基本结构化数据类型。
此类包含两个主要属性:role
和 parts
。role
属性表示生成内容的个人,而 parts
属性包含多个元素,每个元素表示消息中的一段数据。
参数 | |
---|---|
|
可选: 创建消息的实体的身份。支持以下值:
对于非多轮对话,此字段可以留空或未设置。 |
|
构成单条消息的有序部分的列表。不同的部分可能具有不同的 IANA MIME 类型。 |
部分
包含属于多部分 Content
消息一部分的媒体的数据类型。
参数 | |
---|---|
|
可选: 文本提示或代码段。 |
|
可选: 原始字节中的内嵌数据。 |
|
可选: 存储在文件中的数据。 |
|
可选: 它包含一个表示 请参阅 Function Call API。 |
|
可选:
请参阅 Function Call API。 |
|
可选: 视频元数据。仅当视频数据以 |
Blob
内容 blob。如果可能,这会以文本而非原始字节的形式发送。
参数 | |
---|---|
|
数据的 IANA MIME 类型。 |
|
原始字节。 |
FileData
基于 URI 的数据。
参数 | |
---|---|
mime_type |
数据的 IANA MIME 类型。 |
file_uri |
字符串 存储数据的文件的 Cloud Storage URI |
FunctionCall
从模型返回的预测 FunctionCall
,其中包含表示 FunctionDeclaration.name
的字符串和包含参数及其值的结构化 JSON 对象。
参数 | |
---|---|
|
要调用的函数名称。 |
|
以 JSON 对象格式表示的函数参数和值。 如需了解参数详情,请参阅 Function Calling API。 |
FunctionResponse
FunctionCall
的生成输出,其中包含表示 FunctionDeclaration.name
的字符串。还包含带有函数输出的结构化 JSON 对象(并将其用作模型的上下文)。其中应包含根据模型预测进行的 FunctionCall
结果。
参数 | |
---|---|
|
要调用的函数名称。 |
|
函数响应,采用 JSON 对象格式。 |
VideoMetadata
描述输入视频内容的元数据。
参数 | |
---|---|
|
可选: 视频的起始偏移量。 |
|
可选: 视频的结束偏移量。 |
SafetySetting
安全设置。
参数 | |
---|---|
|
可选: 有害类别。 |
|
可选: 有害屏蔽阈值。 |
|
可选: 对安全得分贡献最大的影响字词的最大数量,可能导致潜在屏蔽。 |
|
可选: 指定是将阈值用于概率得分还是严重程度得分。如果未指定,则阈值用于概率得分。 |
HarmCategory
屏蔽内容的有害类别。
参数 | |
---|---|
|
未指定有害类别。 |
|
有害类别为仇恨言论。 |
|
有害类别为危险内容。 |
|
有害类别为骚扰。 |
|
有害类别为露骨色情内容。 |
HarmBlockThreshold
用于屏蔽回答的概率阈值级别。
参数 | |
---|---|
|
未指定的有害屏蔽阈值。 |
|
屏蔽最低阈值及较高值(即屏蔽更多)。 |
|
屏蔽中等阈值及更高级别。 |
|
仅屏蔽高阈值(即屏蔽较少)。 |
|
全部不屏蔽。 |
HarmBlockMethod
根据概率和严重级别组合屏蔽回答的概率阈值。
参数 | |
---|---|
|
未指定有害内容屏蔽方法。 |
|
有害内容屏蔽方法同时使用可能性得分和严重程度得分。 |
|
有害内容屏蔽方法使用概率得分。 |
GenerationConfig
生成提示时使用的配置设置。
参数 | |
---|---|
|
可选: 控制预测的随机性。 |
|
可选: 如果指定,则使用核采样。 |
|
可选:如果指定,则使用 top-k 采样。 |
|
可选: 要生成的候选项数量。 |
|
可选:int 每条消息生成的输出词元数上限。 |
|
可选: 停止序列。 |
|
可选: 正惩罚。 |
|
可选: 频次处罚。 |
|
可选: 生成的候选文本的输出回答 mimetype。 支持的 mimetype:
这是预览版功能。 |
示例
非流式文本回答
根据文本输入生成非流式传输模型回答。
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:处理请求的区域。
- 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
非流式多模态回答
根据多模态输入(例如文本和图片)生成非流式模型回答。
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:处理请求的区域。
- TEXT:要包含在提示中的文本说明。
- FILE_URI:存储数据的文件的 Cloud Storage URI。
- MIME_TYPE:数据的 TIANA 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" }, { "file_data": {"file_uri": "FILE_URI", "MIME_TYPE"} }, { "file_data": {"file_uri": "FILE_URI", "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
流式传输文本回答
根据文本输入生成流式模型回答。
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:处理请求的区域。
- 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
流式多模态回答
根据多模态输入(如文本和图片)生成流式模型回答。
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:处理请求的区域。
- 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
后续步骤
- 详细了解 Gemini API。
- 详细了解函数调用。
- 详细了解 Gemini 模型的标准回答。