跳转到内容

Google Gemini 对话格式(Generate Content)

Google Gemini 对话格式(Generate Content)

Section titled “Google Gemini 对话格式(Generate Content)”

本页总览

“官方文档” Google Gemini Generating content API

Google Gemini API 支持使用图片、音频、代码、工具等生成内容。给定输入 GenerateContentRequest 生成模型响应。支持文本生成、视觉理解、音频处理、长上下文、代码执行、JSON 模式、函数调用等多种功能。

Terminal window
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "Write a story about a magic backpack."}]
}]
}' 2> /dev/null
Terminal window
# 使用临时文件保存base64编码的图片数据
TEMP_B64=$(mktemp)
trap 'rm -f "$TEMP_B64"' EXIT
base64 $B64FLAGS $IMG_PATH > "$TEMP_B64"
# 使用临时文件保存JSON载荷
TEMP_JSON=$(mktemp)
trap 'rm -f "$TEMP_JSON"' EXIT
cat > "$TEMP_JSON" << EOF
{
"contents": [{
"parts":[
{"text": "Tell me about this instrument"},
{
"inline_data": {
"mime_type":"image/jpeg",
"data": "$(cat "$TEMP_B64")"
}
}
]
}]
}
EOF
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d "@$TEMP_JSON" 2> /dev/null
Terminal window
cat > tools.json << EOF
{
"function_declarations": [
{
"name": "enable_lights",
"description": "Turn on the lighting system."
},
{
"name": "set_light_color",
"description": "Set the light color. Lights must be enabled for this to work.",
"parameters": {
"type": "object",
"properties": {
"rgb_hex": {
"type": "string",
"description": "The light color as a 6-digit hex string, e.g. ff0000 for red."
}
},
"required": [
"rgb_hex"
]
}
},
{
"name": "stop_lights",
"description": "Turn off the lighting system."
}
]
}
EOF
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
-d @<(echo '
{
"system_instruction": {
"parts": {
"text": "You are a helpful lighting system bot. You can turn lights on and off, and you can set the color. Do not perform any other tasks."
}
},
"tools": ['$(cat tools.json)'],
"tool_config": {
"function_calling_config": {"mode": "auto"}
},
"contents": {
"role": "user",
"parts": {
"text": "Turn on the lights please."
}
}
}
') 2>/dev/null |sed -n '/"content"/,/"finishReason"/p'
Terminal window
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"contents": [{
"parts":[
{"text": "List 5 popular cookie recipes"}
]
}],
"generationConfig": {
"response_mime_type": "application/json",
"response_schema": {
"type": "ARRAY",
"items": {
"type": "OBJECT",
"properties": {
"recipe_name": {"type":"STRING"},
}
}
}
}
}' 2> /dev/null | head

!!! warning “文件上传限制” 仅支持通过 inline_data 以 base64 方式上传音频,不支持 file_data.file_uri 或 File API。

Terminal window
# 使用File API上传音频数据到API请求
# 使用 base64 inline_data 上传音频数据到 API 请求
if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
B64FLAGS="--input"
else
B64FLAGS="-w0"
fi
AUDIO_B64=$(base64 $B64FLAGS "$AUDIO_PATH")
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [
{"text": "Please describe this audio file."},
{"inline_data": {"mime_type": "audio/mpeg", "data": "'$AUDIO_B64'"}}
]
}]
}' 2> /dev/null | jq ".candidates[].content.parts[].text"

!!! warning “文件上传限制” 仅支持通过 inline_data 以 base64 方式上传视频,不支持 file_data.file_uri 或 File API。

Terminal window
# 使用File API上传视频数据到API请求
# 使用 base64 inline_data 上传视频数据到 API 请求
if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
B64FLAGS="--input"
else
B64FLAGS="-w0"
fi
VIDEO_B64=$(base64 $B64FLAGS "$VIDEO_PATH")
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [
{"text": "Transcribe the audio from this video and provide visual descriptions."},
{"inline_data": {"mime_type": "video/mp4", "data": "'$VIDEO_B64'"}}
]
}]
}' 2> /dev/null | jq ".candidates[].content.parts[].text"

!!! warning “文件上传限制” 仅支持通过 inline_data 以 base64 方式上传 PDF,不支持 file_data.file_uri 或 File API。

Terminal window
MIME_TYPE=$(file -b --mime-type "${PDF_PATH}")
# 使用 base64 inline_data 上传 PDF 文件到 API 请求
if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
B64FLAGS="--input"
else
B64FLAGS="-w0"
fi
PDF_B64=$(base64 $B64FLAGS "$PDF_PATH")
echo $MIME_TYPE
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [
{"text": "Can you add a few more lines to this poem?"},
{"inline_data": {"mime_type": "application/pdf", "data": "'$PDF_B64'"}}
]
}]
}' 2> /dev/null | jq ".candidates[].content.parts[].text"
Terminal window
curl https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{"role":"user",
"parts":[{
"text": "Hello"}]},
{"role": "model",
"parts":[{
"text": "Great to meet you. What would you like to know?"}]},
{"role":"user",
"parts":[{
"text": "I have two dogs in my house. How many paws are in my house?"}]},
]
}' 2> /dev/null | grep "text"
Terminal window
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
--no-buffer \
-d '{
"contents": [{
"parts": [{"text": "写一个关于魔法背包的故事"}]
}]
}'
Terminal window
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [{"text": "计算斐波那契数列的第10项"}]
}],
"tools": [{
"codeExecution": {}
}]
}'
Terminal window
curl https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[
{"text": "Explain how AI works"}
]
}],
"generationConfig": {
"stopSequences": [
"Title"
],
"temperature": 1.0,
"maxOutputTokens": 800,
"topP": 0.8,
"topK": 10
}
}' 2> /dev/null | grep "text"
Terminal window
echo '{
"safetySettings": [
{"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_ONLY_HIGH"},
{"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_MEDIUM_AND_ABOVE"}
],
"contents": [{
"parts":[{
"text": "'I support Martians Soccer Club and I think Jupiterians Football Club sucks! Write a ironic phrase about them.'"}]}]}' > request.json
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d @request.json 2> /dev/null
Terminal window
curl "https://你的4All API服务器地址/v1beta/models/gemini-2.0-flash:generateContent?key=$4All API_API_KEY" \
-H 'Content-Type: application/json' \
-d '{ "system_instruction": {
"parts":
{ "text": "You are a cat. Your name is Neko."}},
"contents": {
"parts": {
"text": "Hello there"}}}'
POST https://你的4All API服务器地址/v1beta/{model=models/*}:generateContent
POST https://你的4All API服务器地址/v1beta/{model=models/*}:streamGenerateContent

在请求URL参数中包含API密钥:

?key=$4All API_API_KEY

其中 $4All API_API_KEY 是您的 Google AI API 密钥。

  • 类型:字符串
  • 必需:是

用于生成补全项的模型名称。

格式: models/{model} ,例如 models/gemini-2.0-flash

  • 类型:数组
  • 必需:是

与模型当前对话的内容。对于单轮查询,这是单个实例。对于聊天等多轮查询,这是包含对话历史记录和最新请求的重复字段。

Content 对象属性:

属性类型必需描述
parts数组有序的内容部分,构成单个消息
role字符串对话中内容的生产者。 user 、 model 、 function 或 tool

Part 对象属性:

属性类型必需描述
text字符串纯文本内容
inlineData对象内联媒体字节数据
fileData对象上传文件的URI引用
functionCall对象函数调用请求
functionResponse对象函数调用响应
executableCode对象可执行代码
codeExecutionResult对象代码执行结果

InlineData 对象属性:

属性类型必需描述
mimeType字符串媒体的MIME类型
data字符串base64编码的媒体数据

FileData 对象属性:

属性类型必需描述
mimeType字符串文件的MIME类型
fileUri字符串文件的URI
  • 类型:数组
  • 必需:否

模型可能用于生成下一个响应的工具列表。支持的工具包括函数和代码执行。

Tool 对象属性:

属性类型必需描述
functionDeclarations数组可选的函数声明列表
codeExecution对象启用模型执行代码

FunctionDeclaration 对象属性:

属性类型必需描述
name字符串函数名称
description字符串函数功能描述
parameters对象函数参数,JSON Schema格式

FunctionCall 对象属性:

属性类型必需描述
name字符串要调用的函数名称
args对象函数参数的键值对

FunctionResponse 对象属性:

属性类型必需描述
name字符串调用的函数名称
response对象函数调用的响应数据

ExecutableCode 对象属性:

属性类型必需描述
language枚举代码的编程语言
code字符串要执行的代码

CodeExecutionResult 对象属性:

属性类型必需描述
outcome枚举代码执行的结果状态
output字符串代码执行的输出内容

CodeExecution 对象属性:

属性类型必需描述
{}空对象-启用代码执行功能的空配置对象
  • 类型:对象
  • 必需:否

请求中指定的任何工具的工具配置。

ToolConfig 对象属性:

属性类型必需描述
functionCallingConfig对象函数调用配置

FunctionCallingConfig 对象属性:

属性类型必需描述
mode枚举指定函数调用的模式
allowedFunctionNames数组允许调用的函数名列表

FunctionCallingMode 枚举值:

  • MODE_UNSPECIFIED : 默认模式,模型决定是否调用函数
  • AUTO : 模型自动决定何时调用函数
  • ANY : 模型必须调用函数
  • NONE : 模型不能调用函数
  • 类型:数组
  • 必需:否

用于屏蔽不安全内容的 SafetySetting 实例列表。

SafetySetting 对象属性:

属性类型必需描述
category枚举安全类别
threshold枚举屏蔽阈值

HarmCategory 枚举值:

  • HARM_CATEGORY_HARASSMENT : 骚扰内容
  • HARM_CATEGORY_HATE_SPEECH : 仇恨言论和内容
  • HARM_CATEGORY_SEXUALLY_EXPLICIT : 露骨色情内容
  • HARM_CATEGORY_DANGEROUS_CONTENT : 危险内容
  • HARM_CATEGORY_CIVIC_INTEGRITY : 可能用于破坏公民诚信的内容

HarmBlockThreshold 枚举值:

  • BLOCK_LOW_AND_ABOVE : 允许发布评分为 NEGLIGIBLE 的内容
  • BLOCK_MEDIUM_AND_ABOVE : 允许发布评分为 NEGLIGIBLE 和 LOW 的内容
  • BLOCK_ONLY_HIGH : 允许发布风险等级为 NEGLIGIBLE、LOW 和 MEDIUM 的内容
  • BLOCK_NONE : 允许所有内容
  • OFF : 关闭安全过滤器

HarmBlockThreshold 完整枚举值:

  • HARM_BLOCK_THRESHOLD_UNSPECIFIED : 未指定阈值
  • BLOCK_LOW_AND_ABOVE : 屏蔽低概率及以上的有害内容,只允许 NEGLIGIBLE 级别的内容
  • BLOCK_MEDIUM_AND_ABOVE : 屏蔽中等概率及以上的有害内容,允许 NEGLIGIBLE 和 LOW 级别的内容
  • BLOCK_ONLY_HIGH : 只屏蔽高概率的有害内容,允许 NEGLIGIBLE、LOW 和 MEDIUM 级别的内容
  • BLOCK_NONE : 不屏蔽任何内容,允许所有级别的内容
  • OFF : 完全关闭安全过滤器
  • 类型:对象(Content)
  • 必需:否

开发者设置的系统指令。目前仅支持文本。

  • 类型:对象
  • 必需:否

模型生成和输出的配置选项。

GenerationConfig 对象属性:

属性类型必需描述
stopSequences数组用于停止生成输出的字符序列集(最多5个)
responseMimeType字符串生成的候选文本的MIME类型
responseSchema对象生成的候选文本的输出架构
responseModalities数组请求的响应模式
candidateCount整数要返回的生成的回答数量
maxOutputTokens整数候选回答中包含的令牌数量上限
temperature数字控制输出的随机性,范围[0.0, 2.0]
topP数字在抽样时要考虑的令牌的累计概率上限
topK整数抽样时要考虑的令牌数量上限
seed整数解码中使用的种子
presencePenalty数字存在性惩罚
frequencyPenalty数字频率惩罚
responseLogprobs布尔值是否在响应中导出logprobs结果
logprobs整数返回的顶部logprob的数量
enableEnhancedCivicAnswers布尔值启用增强型城市服务回答
speechConfig对象语音生成配置
thinkingConfig对象思考功能的配置
mediaResolution枚举指定的媒体分辨率

支持的 MIME 类型:

  • text/plain : (默认)文本输出
  • application/json : JSON响应
  • text/x.enum : ENUM作为字符串响应

Modality 枚举值:

  • TEXT : 指示模型应返回文本
  • IMAGE : 表示模型应返回图片
  • AUDIO : 指示模型应返回音频

Schema 对象属性:

属性类型必需描述
type枚举数据类型
description字符串字段描述
enum数组枚举值列表(当type为string时)
example任意类型示例值
nullable布尔值是否可为null
format字符串字符串格式(如date、date-time等)
items对象数组项的Schema(当type为array时)
properties对象对象属性的Schema映射(当type为object时)
required数组必需属性的名称列表
minimum数字数字的最小值
maximum数字数字的最大值
minItems整数数组的最小长度
maxItems整数数组的最大长度
minLength整数字符串的最小长度
maxLength整数字符串的最大长度

Type 枚举值:

  • TYPE_UNSPECIFIED : 未指定类型
  • STRING : 字符串类型
  • NUMBER : 数字类型
  • INTEGER : 整数类型
  • BOOLEAN : 布尔类型
  • ARRAY : 数组类型
  • OBJECT : 对象类型

支持的编程语言(ExecutableCode):

  • LANGUAGE_UNSPECIFIED : 未指定语言
  • PYTHON : Python编程语言

代码执行结果枚举(Outcome):

  • OUTCOME_UNSPECIFIED : 未指定结果
  • OUTCOME_OK : 代码执行成功
  • OUTCOME_FAILED : 代码执行失败
  • OUTCOME_DEADLINE_EXCEEDED : 代码执行超时
  • 类型:字符串
  • 必需:否

缓存的内容的名称,用于用作提供预测的上下文。格式: cachedContents/{cachedContent}

支持多个候选回答的模型的回答。系统会针对提示以及每个候选项报告安全分级和内容过滤。

  • 类型:数组
  • 说明:模型的候选回答列表

Candidate 对象属性:

属性类型描述
content对象模型返回的生成内容
finishReason枚举模型停止生成词元的原因
safetyRatings数组候选回答安全性的评分列表
citationMetadata对象模型生成的候选项的引用信息
tokenCount整数此候选项的令牌数
groundingAttributions数组为生成有依据的回答所参考的来源提供方信息
groundingMetadata对象候选对象的参考元数据
avgLogprobs数字候选项的平均对数概率得分
logprobsResult对象回答令牌和前置令牌的对数似然度得分
urlRetrievalMetadata对象与网址情境检索工具相关的元数据
urlContextMetadata对象与网址情境检索工具相关的元数据
index整数响应候选列表中候选项的索引

FinishReason 枚举值:

  • STOP : 模型的自然停止点或提供的停止序列
  • MAX_TOKENS : 已达到请求中指定的词元数量上限
  • SAFETY : 出于安全考虑,系统已标记回答候选内容
  • RECITATION : 由于背诵原因,回答候选内容被标记
  • LANGUAGE : 回答候选内容因使用不受支持的语言而被标记
  • OTHER : 原因未知
  • BLOCKLIST : 由于内容包含禁止使用的字词,因此token生成操作已停止
  • PROHIBITED_CONTENT : 由于可能包含禁止的内容,因此token生成操作已停止
  • SPII : 由于内容可能包含敏感的个人身份信息,因此token生成操作已停止
  • MALFORMED_FUNCTION_CALL : 模型生成的函数调用无效
  • IMAGE_SAFETY : 由于生成的图片违反了安全规定,因此词元生成已停止
  • 类型:对象
  • 说明:与内容过滤器相关的提示反馈

PromptFeedback 对象属性:

属性类型描述
blockReason枚举屏蔽该提示的原因
safetyRatings数组问题安全性的评分

BlockReason 枚举值:

  • BLOCK_REASON_UNSPECIFIED : 默认值,此值未使用
  • SAFETY : 出于安全原因,系统屏蔽了提示
  • OTHER : 提示因未知原因被屏蔽了
  • BLOCKLIST : 系统屏蔽了此提示,因为其中包含术语屏蔽名单中包含的术语
  • PROHIBITED_CONTENT : 系统屏蔽了此提示,因为其中包含禁止的内容
  • IMAGE_SAFETY : 候选图片因生成不安全的内容而被屏蔽
  • 类型:对象
  • 说明:有关生成请求令牌用量的元数据

UsageMetadata 对象属性:

属性类型描述
promptTokenCount整数提示中的词元数
cachedContentTokenCount整数提示的缓存部分中的词元数
candidatesTokenCount整数所有生成的候选回答中的词元总数
totalTokenCount整数生成请求的总令牌数
toolUsePromptTokenCount整数工具使用提示中的词元数量
thoughtsTokenCount整数思考模型的想法token数
promptTokensDetails数组在请求输入中处理的模态列表
candidatesTokensDetails数组响应中返回的模态列表
cacheTokensDetails数组请求输入中缓存内容的模态列表
toolUsePromptTokensDetails数组为工具使用请求输入处理的模态列表
  • 类型:字符串
  • 说明:用于生成回答的模型版本
  • 类型:字符串
  • 说明:用于标识每个响应的ID
{
"candidates": [
{
"content": {
"parts": [
{
"text": "你好!我是 Gemini,一个由 Google 开发的人工智能助手。我可以帮助您解答问题、提供信息、协助写作、代码编程等多种任务。请告诉我有什么可以为您效劳的!"
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE",
"blocked": false
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE",
"blocked": false
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE",
"blocked": false
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "NEGLIGIBLE",
"blocked": false
}
],
"tokenCount": 47
}
],
"promptFeedback": {
"safetyRatings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
}
]
},
"usageMetadata": {
"promptTokenCount": 4,
"candidatesTokenCount": 47,
"totalTokenCount": 51,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 4
}
],
"candidatesTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 47
}
]
},
"modelVersion": "gemini-2.0-flash",
"responseId": "response-12345"
}

SafetyRating 对象属性:

属性类型描述
category枚举此评分的类别
probability枚举此内容的有害概率
blocked布尔值此内容是否因此分级而被屏蔽

HarmProbability 枚举值:

  • NEGLIGIBLE : 内容不安全的概率可忽略不计
  • LOW : 内容不安全的概率较低
  • MEDIUM : 内容不安全的概率为中等
  • HIGH : 内容不安全的概率较高

CitationMetadata 对象属性:

属性类型描述
citationSources数组特定回复的来源引用

CitationSource 对象属性:

属性类型描述
startIndex整数归因于此来源的响应片段的开始索引
endIndex整数归因细分的结束索引(不含)
uri字符串被归因为文本部分来源的URI
license字符串被归因为片段来源的GitHub项目的许可

当启用代码执行工具时,模型可以生成和执行代码来解决问题。

代码执行示例响应:

{
"candidates": [
{
"content": {
"parts": [
{
"text": "我来计算斐波那契数列的第10项:"
},
{
"executableCode": {
"language": "PYTHON",
"code": "def fibonacci(n):\n if n <= 1:\n return n\n else:\n return fibonacci(n-1) + fibonacci(n-2)\n\nresult = fibonacci(10)\nprint(f'第10项斐波那契数是: {result}')"
}
},
{
"codeExecutionResult": {
"outcome": "OK",
"output": "第10项斐波那契数是: 55"
}
},
{
"text": "所以斐波那契数列的第10项是55。"
}
],
"role": "model"
},
"finishReason": "STOP"
}
]
}

GroundingMetadata 对象属性:

属性类型描述
groundingChunks数组从指定的接地源检索到的支持参考文献列表
groundingSupports数组接地支持列表
webSearchQueries数组用于后续网页搜索的网页搜索查询
searchEntryPoint对象后续网页搜索的Google搜索条目
retrievalMetadata对象与基准流程中检索相关的元数据

GroundingAttribution 对象属性:

属性类型描述
sourceId对象对此归因做出贡献的来源的标识符
content对象构成此归因的来源内容

AttributionSourceId 对象属性:

属性类型描述
groundingPassage对象内嵌段落的标识符
semanticRetrieverChunk对象通过Semantic Retriever提取的Chunk的标识符

GroundingPassageId 对象属性:

属性类型描述
passageId字符串与GenerateAnswerRequest的GroundingPassage.id匹配的段落的ID
partIndex整数GenerateAnswerRequest的GroundingPassage.content中的部分的索引

SemanticRetrieverChunk 对象属性:

属性类型描述
source字符串与请求的SemanticRetrieverConfig.source匹配的来源名称
chunk字符串包含归因文本的Chunk的名称

SearchEntryPoint 对象属性:

属性类型描述
renderedContent字符串可嵌入网页或应用WebView中的Web内容代码段
sdkBlob字符串使用base64编码的JSON,表示搜索词和搜索URL元组的数组

Segment 对象属性:

属性类型描述
partIndex整数Part对象在其父级Content对象中的索引
startIndex整数给定part中的起始索引,以字节为单位
endIndex整数给定分块中的结束索引,以字节为单位
text字符串与响应中的片段对应的文本

RetrievalMetadata 对象属性:

属性类型描述
googleSearchDynamicRetrievalScore数字Google搜索中的信息有助于回答问题的概率得分,范围[0,1]

GroundingChunk 对象属性:

属性类型描述
web对象来自网络的接地分块

Web 对象属性:

属性类型描述
uri字符串分块的URI引用
title字符串数据块的标题

GroundingSupport 对象属性:

属性类型描述
groundingChunkIndices数组索引列表,用于指定与版权主张相关的引文
confidenceScores数组支持参考文档的置信度分数,范围为0到1
segment对象此支持请求所属的内容片段

Gemini API 支持处理多种模态的输入和输出:

支持的输入模态:

  • TEXT : 纯文本
  • IMAGE : 图片(JPEG、PNG、WebP、HEIC、HEIF)
  • AUDIO : 音频(WAV、MP3、AIFF、AAC、OGG、FLAC)
  • VIDEO : 视频(MP4、MPEG、MOV、AVI、FLV、MPG、WEBM、WMV、3GPP)
  • DOCUMENT : 文档(PDF)

ModalityTokenCount 对象属性:

属性类型描述
modality枚举与此令牌数关联的模态
tokenCount整数令牌数量

MediaResolution 枚举值:

  • MEDIA_RESOLUTION_LOW : 低分辨率(64个令牌)
  • MEDIA_RESOLUTION_MEDIUM : 中等分辨率(256个令牌)
  • MEDIA_RESOLUTION_HIGH : 高分辨率(256个令牌进行缩放重新取景)

ThinkingConfig 对象属性:

属性类型描述
includeThoughts布尔值是否要在回答中包含思考内容
thinkingBudget整数模型应生成的想法token的数量

SpeechConfig 对象属性:

属性类型描述
voiceConfig对象单声音输出的配置
multiSpeakerVoiceConfig对象多音箱设置的配置
languageCode字符串用于语音合成的语言代码

VoiceConfig 对象属性:

属性类型描述
prebuiltVoiceConfig对象要使用的预构建语音的配置

PrebuiltVoiceConfig 对象属性:

属性类型描述
voiceName字符串要使用的预设语音的名称

MultiSpeakerVoiceConfig 对象属性:

属性类型描述
speakerVoiceConfigs数组所有已启用的音箱语音

SpeakerVoiceConfig 对象属性:

属性类型描述
speaker字符串要使用的音箱的名称
voiceConfig对象要使用的语音的配置

支持的语言代码:

  • zh-CN : 中文(简体)
  • en-US : 英语(美国)
  • ja-JP : 日语
  • ko-KR : 韩语
  • fr-FR : 法语
  • de-DE : 德语
  • es-ES : 西班牙语
  • pt-BR : 葡萄牙语(巴西)
  • hi-IN : 印地语
  • ar-XA : 阿拉伯语
  • it-IT : 意大利语
  • tr-TR : 土耳其语
  • vi-VN : 越南语
  • th-TH : 泰语
  • ru-RU : 俄语
  • pl-PL : 波兰语
  • nl-NL : 荷兰语

LogprobsResult 对象属性:

属性类型描述
topCandidates数组长度等于解码步骤总数
chosenCandidates数组长度等于解码步骤总数,所选候选项不一定在topCandidates中

TopCandidates 对象属性:

属性类型描述
candidates数组按对数概率降序排序的候选项

Candidate (Logprobs) 对象属性:

属性类型描述
token字符串候选项的令牌字符串值
tokenId整数候选项的令牌ID值
logProbability数字候选项的对数概率

UrlRetrievalMetadata 对象属性:

属性类型描述
urlRetrievalContexts数组网址检索情境列表

UrlRetrievalContext 对象属性:

属性类型描述
retrievedUrl字符串工具检索到的网址

UrlContextMetadata 对象属性:

属性类型描述
urlMetadata数组网址上下文列表

UrlMetadata 对象属性:

属性类型描述
retrievedUrl字符串工具检索到的网址
urlRetrievalStatus枚举网址检索的状态

UrlRetrievalStatus 枚举值:

  • URL_RETRIEVAL_STATUS_SUCCESS : 网址检索成功
  • URL_RETRIEVAL_STATUS_ERROR : 由于出错,网址检索失败

HarmCategory 完整枚举值:

  • HARM_CATEGORY_UNSPECIFIED : 类别未指定
  • HARM_CATEGORY_DEROGATORY : PaLM - 针对身份和/或受保护属性的负面或有害评论
  • HARM_CATEGORY_TOXICITY : PaLM - 粗鲁、无礼或亵渎性的内容
  • HARM_CATEGORY_VIOLENCE : PaLM - 描述描绘针对个人或团体的暴力行为的场景
  • HARM_CATEGORY_SEXUAL : PaLM - 包含对性行为或其他淫秽内容的引用
  • HARM_CATEGORY_MEDICAL : PaLM - 宣传未经核实的医疗建议
  • HARM_CATEGORY_DANGEROUS : PaLM - 危险内容会宣扬、助长或鼓励有害行为
  • HARM_CATEGORY_HARASSMENT : Gemini - 骚扰内容
  • HARM_CATEGORY_HATE_SPEECH : Gemini - 仇恨言论和内容
  • HARM_CATEGORY_SEXUALLY_EXPLICIT : Gemini - 露骨色情内容
  • HARM_CATEGORY_DANGEROUS_CONTENT : Gemini - 危险内容
  • HARM_CATEGORY_CIVIC_INTEGRITY : Gemini - 可能用于破坏公民诚信的内容

HarmProbability 完整枚举值:

  • HARM_PROBABILITY_UNSPECIFIED : 概率未指定
  • NEGLIGIBLE : 内容不安全的概率可忽略不计
  • LOW : 内容不安全的概率较低
  • MEDIUM : 内容不安全的概率为中等
  • HIGH : 内容不安全的概率较高

Modality 完整枚举值:

  • MODALITY_UNSPECIFIED : 未指定模态
  • TEXT : 纯文本
  • IMAGE : 图片
  • VIDEO : 视频
  • AUDIO : 音频
  • DOCUMENT : 文档,例如PDF

MediaResolution 完整枚举值:

  • MEDIA_RESOLUTION_UNSPECIFIED : 未设置媒体分辨率
  • MEDIA_RESOLUTION_LOW : 媒体分辨率设为低(64个令牌)
  • MEDIA_RESOLUTION_MEDIUM : 媒体分辨率设为中等(256个令牌)
  • MEDIA_RESOLUTION_HIGH : 媒体分辨率设为高(使用256个令牌进行缩放重新取景)

UrlRetrievalStatus 完整枚举值:

  • URL_RETRIEVAL_STATUS_UNSPECIFIED : 默认值,此值未使用
  • URL_RETRIEVAL_STATUS_SUCCESS : 网址检索成功
  • URL_RETRIEVAL_STATUS_ERROR : 由于出错,网址检索失败
错误码描述
400请求格式错误或参数无效
401API密钥无效或缺失
403权限不足或配额限制
429请求频率过高
500服务器内部错误
错误码状态描述解决方案
400INVALID_ARGUMENT请求参数无效或格式错误检查请求参数格式和必需字段
400FAILED_PRECONDITION请求的前置条件不满足确保满足API调用的前置条件
401UNAUTHENTICATEDAPI密钥无效、缺失或已过期检查API密钥的有效性和格式
403PERMISSION_DENIED权限不足或配额已用完检查API密钥权限或升级配额
404NOT_FOUND指定的模型或资源不存在验证模型名称和资源路径
413PAYLOAD_TOO_LARGE请求体太大减少输入内容大小或分批处理
429RESOURCE_EXHAUSTED请求频率超限或配额不足降低请求频率或等待配额重置
500INTERNAL服务器内部错误重试请求,如持续出现联系支持
503UNAVAILABLE服务暂时不可用等待一段时间后重试
504DEADLINE_EXCEEDED请求超时减少输入大小或重试请求
{
"error": {
"code": 400,
"message": "Invalid argument: contents",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "contents",
"description": "contents is required"
}
]
}
]
}
}