Skip to content

Google 模型 ​

基础对话 ​

http
POST /v1beta/models/<Model ID>:generateContent
bash
curl --location --request POST 'https://neolink.com/api/v1beta/models/<Model ID>:generateContent' \
     --header 'Authorization: Bearer <API Key>' \
     --header 'Content-Type: application/json' \
     --data-raw '{
         "contents": [
             {
                 "parts": [
                     {
                         "text": "How does AI work?"
                     }
                 ]
             }
         ]
     }'
python
import requests

url = "https://neolink.com/api/v1beta/models/<Model ID>:generateContent"

headers = {
    "x-goog-api-key": "<API Key>",
    "Content-Type": "application/json",
}

payload = {
    "contents": [
        {
            "parts": [
                {
                    "text": "How does AI work?"
                }
            ]
        }
    ]
}

resp = requests.post(url, headers=headers, json=payload, timeout=30)
resp.raise_for_status()
data = resp.json()
print(data)

鉴权说明: Google 模型请求 header 中默认使用 Authorization: Bearer <API Key>,如遇到不能识别 Authorization 参数的情形,可将 "Authorization": "Bearer <API Key>" 替换为 "x-goog-api-key": "<API Key>"。

请求体字段 ​

参数名类型必填说明
modelstring是模型 ID,如 gemini-2.5-flash。通过 URL 路径 /v1beta/models/<Model ID>:generateContent 指定
contentsarray是当前对话内容,结构见数据模型 Content。单轮请求为单个实例;多轮请求(如多轮对话)包含对话历史和最新请求
systemInstructionobject否系统指令(Content 结构),用于设定模型的行为与角色,目前仅支持文本
generationConfigobject否生成配置,控制采样、输出格式、思考能力等,详见下方可选参数
safetySettingsarray否安全设置列表,每个安全类别最多一条。每条包含 category(如 HARM_CATEGORY_HATE_SPEECH)与 threshold(如 BLOCK_MEDIUM_AND_ABOVE),未设置的类别使用默认过滤级别
toolsarray否模型可调用的工具列表,如 googleSearch、urlContext、codeExecution、functionDeclarations,见数据模型 Tool
toolConfigobject否工具配置。functionCallingConfig.mode 控制函数调用模式:AUTO(模型自行决定)、ANY(必须调用函数)、NONE(不调用函数)、VALIDATED(模型决定但校验函数调用);allowedFunctionNames 限定可调用的函数名(仅在 ANY/VALIDATED 模式下生效)
cachedContentstring否用作上下文的缓存内容名称,格式 cachedContents/{cachedContent}
serviceTierstring否请求的服务层级,取值:unspecified(默认,等同标准层)、standard、flex、priority
labelsobject否用户自定义元数据标签。键需以字母开头,最长 63 字符,仅含小写字母、数字、下划线和短横线
continuationTokenstring否不透明续写令牌,用于从因 CONTINUATION 停止的响应继续生成。提供时 contents 必须与初始请求完全一致,maxOutputTokens 需单调递增或不传

可选参数 ​

Google 模型的可调参数集中在 generationConfig 对象中。

参数名类型必填默认值说明
generationConfig.temperaturefloat否1.0采样温度,取值范围 0.0~2.0。较高的值(如 1.5)使输出更随机和创造性,较低的值(如 0.3)使输出更确定和聚焦。0 表示几乎确定性的输出。注意:在 Gemini 3.6 Flash 及更新模型上已弃用,传入会被静默忽略
generationConfig.topPfloat否-核采样(nucleus sampling)阈值,取值范围 0.0~1.0。模型会考虑概率累积达到 topP 的 token。例如 0.95 表示只考虑概率累积达到 95% 的最可能的 token。注意:在 Gemini 3.6 Flash 及更新模型上已弃用,传入会被静默忽略
generationConfig.topKint否-仅从前 K 个最可能的 token 中采样。例如设置为 40 表示模型每次只从概率最高的 40 个 token 中选择。注意:在 Gemini 3.6 Flash 及更新模型上已弃用,传入会被静默忽略
generationConfig.maxOutputTokensint否-生成响应的最大 token 数。设置此参数可以控制响应长度和成本。不同模型有不同的最大限制,超过限制的值会被自动调整
generationConfig.candidateCountint否1生成的响应候选数量。设置大于 1 时,API 会返回多个不同的响应候选,每个都会计费。适用于需要多个不同答案的场景(Gemini 1.0 系列不支持)
generationConfig.stopSequencesarray否-停止序列列表,最多 5 个字符串。当模型生成的文本中出现任一停止序列时,将立即停止生成。停止序列本身不会包含在输出中。适用于控制输出格式
generationConfig.seedint否-解码使用的随机种子。不设置时,每次请求使用随机生成的种子;固定种子可获得更可复现的输出
generationConfig.presencePenaltyfloat否0.0存在惩罚系数,取值范围 -2.0~2.0。正值会惩罚已经出现过的 token,鼓励模型谈论新主题;负值则鼓励重复已有主题
generationConfig.frequencyPenaltyfloat否0.0频率惩罚系数,取值范围 -2.0~2.0。正值会根据 token 在文本中的出现频率进行惩罚,降低重复相同词汇的可能性;负值则增加重复可能性
generationConfig.responseLogprobsbool否false是否返回输出 token 的对数概率信息。启用后,响应中会包含每个 token 的对数概率,可用于分析模型的确定性和置信度
generationConfig.logprobsint否-每个 token 位置返回的候选 token 数量,取值范围 0~20,仅在 responseLogprobs: true 时有效。设置后,每个输出 token 位置会返回指定数量的备选 token 及其概率
generationConfig.responseMimeTypestring否text/plain响应的 MIME 类型。取值 text/plain(默认文本)、application/json(JSON 输出)、text/x.enum(枚举字符串输出)。使用 JSON 模式时,建议配合 responseJsonSchema 定义 JSON 结构
generationConfig.responseJsonSchemaobject否-响应的 JSON Schema,用于结构化输出,需配合 responseMimeType: "application/json" 使用。定义后模型会严格按照 Schema 生成 JSON 响应,结构见数据模型 Schema。官方推荐使用此字段替代旧的 responseSchema
generationConfig.responseModalitiesarray否["TEXT"]期望的响应模态,取值 TEXT、IMAGE、AUDIO 的组合。空列表等同仅请求文本;图像生成需设置为 ["IMAGE"] 或 ["TEXT", "IMAGE"](仅图像模型支持)
generationConfig.speechConfigobject否-语音输出配置(仅支持音频输出的模型)。voiceConfig.prebuiltVoiceConfig.voiceName 指定预置音色;languageCode 指定 BCP-47 语言代码(如 en-US、cmn-CN);多说话人场景使用 multiSpeakerVoiceConfig.speakerVoiceConfigs
generationConfig.mediaResolutionstring否-输入媒体的分辨率档位,影响媒体理解的 token 开销。取值:MEDIA_RESOLUTION_LOW(64 tokens)、MEDIA_RESOLUTION_MEDIUM(256 tokens)、MEDIA_RESOLUTION_HIGH(256 tokens,含缩放重采样)
generationConfig.enableEnhancedCivicAnswersbool否false是否启用增强的公民类问题回答能力,部分模型可能不可用
generationConfig.enableAffectiveDialogbool否false是否启用情感对话,启用后模型会检测用户情绪并相应调整回复
generationConfig.thinkingConfigobject否-思考配置,用于控制推理能力(仅支持思考的模型生效,不支持的模型设置后会报错)。配置后,模型会在回答前进行内部推理
generationConfig.thinkingConfig.thinkingBudgetint否-思考过程可用的 token 预算。设置为 0 可完全关闭思考功能。较高的值允许模型进行更深入的推理,但会增加延迟和成本
generationConfig.thinkingConfig.thinkingLevelstring否-思考深度等级,控制模型内部推理的最大深度。取值:MINIMAL(几乎不思考)、LOW、MEDIUM、HIGH。推荐用于 Gemini 3 及更新模型,旧模型使用会报错
generationConfig.thinkingConfig.includeThoughtsbool否false是否在响应中返回模型的思考过程(thought 部分),仅在模型产生思考内容时返回
generationConfig.imageConfigobject否-图像生成配置(仅图像模型)。aspectRatio 设置宽高比(如 1:1、16:9),imageSize 设置分辨率(512、1K、2K、4K),详见图像生成文档
safetySettingsarray否-安全设置数组,用于控制有害内容过滤级别。每个设置包含 category(如 HARM_CATEGORY_HATE_SPEECH)和 threshold(如 BLOCK_MEDIUM_AND_ABOVE)。可根据应用场景调整过滤强度
toolsarray否-模型可调用的工具列表。Google 模型支持特定工具如 googleSearch(网络搜索)、urlContext(URL 内容提取)、codeExecution(代码执行)等,见数据模型 Tool
toolConfigobject否-工具配置,控制工具调用行为。可设置 functionCallingConfig.mode 为 AUTO(模型自行决定)、ANY(必须调用工具)、NONE(不调用工具)或 VALIDATED(模型决定并校验)

说明:

  • Google 模型的推理与生成控制参数均需放在 generationConfig 对象内,这与 OpenAI 和 Anthropic 的扁平化参数结构不同。
  • temperature、topP、topK 已在 Gemini 3.6 Flash 及更新模型上弃用,传入会被静默忽略,不会报错但不再影响输出;对旧模型仍生效,且建议三个参数只调整一个,同时调整可能导致不可预测的采样行为。
  • thinkingConfig 仅对支持思考的模型生效;Gemini 3 及更新模型推荐使用 thinkingLevel 控制思考深度,旧模型使用 thinkingBudget。
  • presencePenalty 和 frequencyPenalty 可以同时使用,组合使用可以更精细地控制输出的重复性和多样性。

完整参数示例 ​

bash
curl --location --request POST 'https://neolink.com/api/v1beta/models/<Model ID>:generateContent' \
     --header 'Authorization: Bearer <API Key>' \
     --header 'Content-Type: application/json' \
     --data-raw '{
         "contents": [
             {
                 "parts": [
                     {
                         "text": "How does AI work?"
                     }
                 ]
             }
         ],
         "generationConfig": {
             "temperature": 1.0,
             "topP": 0.95,
             "maxOutputTokens": 2048,
             "thinkingConfig": {
                 "thinkingBudget": 1024
             }
         }
     }'
python
import requests

url = "https://neolink.com/api/v1beta/models/<Model ID>:generateContent"

headers = {
    "x-goog-api-key": "<API Key>",
    "Content-Type": "application/json",
}

payload = {
    "contents": [
        {
            "parts": [
                {
                    "text": "How does AI work?"
                }
            ]
        }
    ],
    "generationConfig": {
        "temperature": 1.0,
        "topP": 0.95,
        "maxOutputTokens": 2048,
        "thinkingConfig": {
            "thinkingBudget": 1024
        }
    }
}

resp = requests.post(url, headers=headers, json=payload, timeout=30)
resp.raise_for_status()
data = resp.json()
print(data)

多轮对话 ​

多轮对话通过 contents 数组传入完整对话历史,每条消息使用 role 区分角色(user 表示用户,model 表示模型)。

bash
curl --location --request POST 'https://neolink.com/api/v1beta/models/<Model ID>:generateContent' \
     --header 'Authorization: Bearer <API Key>' \
     --header 'Content-Type: application/json' \
     --data-raw '{
         "contents": [
             {
                 "role": "user",
                 "parts": [
                     {
                         "text": "你好,我想了解北京的主要景点。"
                     }
                 ]
             },
             {
                 "role": "model",
                 "parts": [
                     {
                         "text": "北京有许多著名景点,例如故宫、天安门广场、颐和园和长城等。您有几天时间游览?"
                     }
                 ]
             },
             {
                 "role": "user",
                 "parts": [
                     {
                         "text": "只有一天,请帮我安排游览顺序。"
                     }
                 ]
             }
         ]
     }'
python
import requests

url = "https://neolink.com/api/v1beta/models/<Model ID>:generateContent"

headers = {
    "Authorization": "Bearer <API Key>",
    "Content-Type": "application/json",
}

payload = {
    "contents": [
        {
            "role": "user",
            "parts": [{"text": "你好,我想了解北京的主要景点。"}],
        },
        {
            "role": "model",
            "parts": [
                {"text": "北京有许多著名景点,例如故宫、天安门广场、颐和园和长城等。您有几天时间游览?"}
            ],
        },
        {
            "role": "user",
            "parts": [{"text": "只有一天,请帮我安排游览顺序。"}],
        },
    ]
}

resp = requests.post(url, headers=headers, json=payload, timeout=30)
resp.raise_for_status()
data = resp.json()
print(data["candidates"][0]["content"]["parts"][0]["text"])

说明: role 仅支持 user 和 model 两个取值;单轮请求可省略 role(默认 user)。多轮对话必须以 user 消息结尾。

结构化输出 ​

通过 responseMimeType: "application/json" 配合 responseJsonSchema 定义输出结构,模型会严格按照 Schema 生成 JSON 响应。Schema 支持字段见数据模型 Schema。

bash
curl --location --request POST 'https://neolink.com/api/v1beta/models/<Model ID>:generateContent' \
     --header 'Authorization: Bearer <API Key>' \
     --header 'Content-Type: application/json' \
     --data-raw '{
         "contents": [
             {
                 "parts": [
                     {
                         "text": "列出三位著名的科幻作家及其代表作。"
                     }
                 ]
             }
         ],
         "generationConfig": {
             "responseMimeType": "application/json",
             "responseJsonSchema": {
                 "type": "object",
                 "properties": {
                     "authors": {
                         "type": "array",
                         "items": {
                             "type": "object",
                             "properties": {
                                 "name": {
                                     "type": "string",
                                     "description": "作家姓名"
                                 },
                                 "representativeWork": {
                                     "type": "string",
                                     "description": "代表作名称"
                                 }
                             },
                             "required": ["name", "representativeWork"]
                         }
                     }
                 },
                 "required": ["authors"]
             }
         }
     }'
python
import requests

url = "https://neolink.com/api/v1beta/models/<Model ID>:generateContent"

headers = {
    "Authorization": "Bearer <API Key>",
    "Content-Type": "application/json",
}

payload = {
    "contents": [
        {
            "parts": [
                {"text": "列出三位著名的科幻作家及其代表作。"}
            ]
        }
    ],
    "generationConfig": {
        "responseMimeType": "application/json",
        "responseJsonSchema": {
            "type": "object",
            "properties": {
                "authors": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {"type": "string", "description": "作家姓名"},
                            "representativeWork": {
                                "type": "string",
                                "description": "代表作名称",
                            },
                        },
                        "required": ["name", "representativeWork"],
                    },
                }
            },
            "required": ["authors"],
        },
    },
}

resp = requests.post(url, headers=headers, json=payload, timeout=30)
resp.raise_for_status()
data = resp.json()
# 返回的 text 即为符合 Schema 的 JSON 字符串
print(data["candidates"][0]["content"]["parts"][0]["text"])

搜索请求 ​

原生模型搜索请求 ​

http
POST /v1beta/models/<Model ID>:generateContent
bash
curl --location --request POST 'https://neolink.com/api/v1beta/models/<Model ID>:generateContent' \
     --header 'Authorization: Bearer <API Key>' \
     --header 'Content-Type: application/json' \
     --data-raw '{
         "contents": [
             {
                 "parts": [
                     {
                         "text": "北京今天天气怎么样?"
                     }
                 ]
             }
         ],
         "tools": [
             {
                 "googleSearch": {}
             },
             {
                 "urlContext": {}
             }
         ]
     }'
python
import requests

url = "https://neolink.com/api/v1beta/models/<Model ID>:generateContent"

headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Key>",
}

payload = {
    "contents": [
        {
            "parts": [
                {
                    "text": "北京今天天气怎么样?"
                }
            ]
        }
    ],
    "tools": [
        {
            "googleSearch": {}
        },
        {
            "urlContext": {}
        }
    ]
}

response = requests.post(url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
result = response.json()
print(result)

默认搜索请求 ​

http
POST /v1beta/models/<Model ID>:generateContent
bash
curl --location --request POST 'https://neolink.com/api/v1beta/models/<Model ID>:generateContent' \
     --header 'Authorization: Bearer <API Key>' \
     --header 'Content-Type: application/json' \
     --data-raw '{
         "contents": [
             {
                 "parts": [
                     {
                         "text": "北京今天天气怎么样?"
                     }
                 ]
             }
         ]
     }'
python
import requests

url = "https://neolink.com/api/v1beta/models/<Model ID>:generateContent"

headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Key>",
}

payload = {
    "contents": [
        {
            "parts": [
                {
                    "text": "北京今天天气怎么样?"
                }
            ]
        }
    ]
}

response = requests.post(url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
result = response.json()
print(result)

支持模型Id:

  • gemini-3-pro-preview-search

视频理解 ​

http
POST /v1beta/models/<Model ID>:generateContent
bash
curl --location --request POST 'https://neolink.com/api/v1beta/models/<Model ID>:generateContent' \
     --header 'Authorization: Bearer <API Key>' \
     --header 'Content-Type: application/json' \
     --data-raw '{
         "contents": [
             {
                 "parts": [
                     {
                         "inline_data": {
                             "mime_type": "video/mp4",
                             "data": "<Base64 Code>"
                         }
                     },
                     {
                         "text": "请总结这个视频的主要内容,并列出三个关键时刻。"
                     }
                 ]
             }
         ]
     }'
python
import requests

url = "https://neolink.com/api/v1beta/models/<Model ID>:generateContent"

headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer <API Key>",
}

payload = {
    "contents": [
        {
            "parts": [
                {
                    "inline_data": {
                        "mime_type": "video/mp4",
                        "data": "<Base64 Code>"
                    }
                },
                {
                    "text": "请总结这个视频的主要内容,并列出三个关键时刻。"
                }
            ]
        }
    ]
}

resp = requests.post(url, headers=headers, json=payload, timeout=30)
resp.raise_for_status()
data = resp.json()
print(data)

Base64 编码说明: <Base64 Code> 参数是将视频文件进行 Base64 编码后的字符串,参考脚本如下:

bash
#!/usr/bin/env bash
set -euo pipefail
VIDEO_PATH="./demo.mp4"

if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
    B64FLAGS="--input"
else
    B64FLAGS="-w0"
fi
base64 $B64FLAGS "$VIDEO_PATH" > base64.txt

响应体 ​

响应示例 ​

json
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "AI(人工智能)通过模拟人类智能的技术来工作……"
          }
        ]
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 8,
    "candidatesTokenCount": 328,
    "totalTokenCount": 336
  },
  "modelVersion": "gemini-2.5-flash",
  "responseId": "aBcDeFgHiJkLmNoP"
}

响应字段说明 ​

参数名类型说明
candidatesarray模型生成的候选响应列表,结构见数据模型 Candidate
candidates[].contentobject生成的内容,role 固定为 model,parts 包含文本或工具调用等片段
candidates[].finishReasonstring停止生成的原因,常用取值:STOP(正常结束)、MAX_TOKENS(达到 token 上限)、SAFETY(安全过滤)、RECITATION(内容复述),完整枚举见数据模型 Candidate
candidates[].indexint候选响应在列表中的索引
promptFeedbackobject与内容过滤相关的提示反馈。提示被拦截时返回 blockReason,取值:SAFETY(安全原因)、BLOCKLIST(命中术语黑名单)、PROHIBITED_CONTENT(违禁内容)、IMAGE_SAFETY(图像安全)、OTHER(未知原因);此时不返回 candidates
usageMetadataobject本次请求的 token 用量元数据
usageMetadata.promptTokenCountint提示的 token 数(含缓存内容的 token)
usageMetadata.cachedContentTokenCountint提示中缓存部分的 token 数
usageMetadata.candidatesTokenCountint所有候选响应的 token 总数
usageMetadata.thoughtsTokenCountint思考模型产生的思考 token 数
usageMetadata.toolUsePromptTokenCountint工具使用提示中的 token 数
usageMetadata.totalTokenCountint总 token 数(提示 + 工具使用提示 + 思考 + 候选响应)
usageMetadata.promptTokensDetailsarray请求输入中各模态的 token 明细,每项含 modality(如 TEXT、IMAGE、VIDEO、AUDIO)与 tokenCount
usageMetadata.candidatesTokensDetailsarray响应输出中各模态的 token 明细,结构同上
modelVersionstring实际用于生成响应的模型版本
responseIdstring响应唯一标识,用于问题排查时定位请求

数据模型 ​

以下为请求与响应中涉及的核心数据结构(精简版),完整定义请参考 Google 官方 API 文档。

Content ​

消息的基本结构,包含角色和内容片段。

参数名类型必填说明
rolestring否内容产生者,取值 user 或 model。多轮对话时必须设置,单轮请求可省略
partsarray是构成单条消息的有序片段列表,各片段可以是不同的 MIME 类型,结构见下方 Part

Part ​

Content 中的内容片段,数据字段为联合类型(只能取其一)。

参数名类型说明
textstring内联文本
inlineDataobject内联媒体数据。mimeType 为 IANA 标准 MIME 类型(如 image/png、video/mp4、application/pdf),data 为 Base64 编码字节
fileDataobjectURI 引用的文件数据。fileUri(必填)为文件 URI,mimeType 为 MIME 类型
functionCallobject模型预测返回的函数调用。name(必填)为函数名,args 为 JSON 格式的参数键值对,id 为调用标识
functionResponseobject函数执行结果,作为上下文回传给模型。name(必填)为函数名,response(必填)为 JSON 格式的输出,id 对应 functionCall 的 id
executableCodeobject模型生成的待执行代码。language(必填,当前仅 PYTHON),code(必填)为代码内容
codeExecutionResultobject代码执行结果。outcome(必填)取值:OUTCOME_OK(成功,output 为 stdout)、OUTCOME_FAILED(失败,output 含 stderr)、OUTCOME_DEADLINE_EXCEEDED(超时)
thoughtbool标记该片段是否为模型的思考内容(配合 thinkingConfig.includeThoughts 使用)
thoughtSignaturestring思考内容的不透明签名,后续请求需原样回传以维持多轮思考的上下文

Candidate ​

模型生成的候选响应。

参数名类型说明
indexint候选响应索引
contentobject生成的内容,结构见 Content
finishReasonstring停止生成的原因,主要取值见下表
finishMessagestring停止原因的详细说明,仅在 finishReason 非空时返回
safetyRatingsarray该候选响应的安全评级列表,每个类别最多一条,含 category、probability、blocked 等
citationMetadataobject引用信息,包含生成内容中复述自训练数据的段落来源 citationSources
groundingMetadataobject搜索增强(Grounding)元数据,含 groundingChunks(检索到的来源,如 web.uri/web.title)、groundingSupports(来源与文本的对应关系)、webSearchQueries(执行的搜索词)
tokenCountint该候选响应的 token 数

finishReason 主要取值:

取值说明
STOP正常停止,或命中停止序列
MAX_TOKENS达到请求指定的最大 token 数
SAFETY候选内容因安全原因被标记
RECITATION候选内容因复述原因被标记
LANGUAGE使用了不支持的语言
BLOCKLIST内容包含禁用术语
PROHIBITED_CONTENT可能包含违禁内容
SPII可能包含敏感个人身份信息
MALFORMED_FUNCTION_CALL模型生成的函数调用无效
IMAGE_SAFETY / IMAGE_PROHIBITED_CONTENT / IMAGE_OTHER图像生成因安全/违禁/其他原因停止
NO_IMAGE预期生成图像但未生成
UNEXPECTED_TOOL_CALL请求未启用工具但模型产生了工具调用
TOO_MANY_TOOL_CALLS连续调用工具次数过多
CONTINUATION达到单次请求 token 上限但生成未完成,可通过 continuationToken 继续生成
OTHER未知原因

Tool ​

模型可调用的工具,tools 数组中每个元素只能指定一种工具类型。

参数名类型说明
functionDeclarationsarray函数声明列表,用于 Function Calling。每项含 name(必填,函数名,最长 128 字符)、description(必填,函数描述)、parameters(参数 Schema,结构见 Schema)或 parametersJsonSchema(JSON Schema 格式,与 parameters 互斥)。模型不执行函数,而是返回 functionCall 由客户端执行
googleSearchobjectGoogle 搜索工具,赋予模型联网检索能力。可选 timeRangeFilter(startTime/endTime 限定时间范围)、searchTypes(webSearch 网页搜索,默认开启;imageSearch 图片搜索)
urlContextobjectURL 上下文工具,自动提取用户提供的 URL 内容作为上下文
codeExecutionobject代码执行工具,允许模型在生成过程中执行 Python 代码并获取结果
fileSearchobject文件搜索工具,从语义检索语料库中获取知识。fileSearchStoreNames(必填)指定检索库,如 fileSearchStores/my-store-123;可选 topK、metadataFilter
googleMapsobjectGoogle 地图工具,为模型响应提供地理空间上下文。可选 enableWidget 返回地图组件令牌
computerUseobject计算机操作工具,自动注入预定义函数以操作浏览器/移动端/桌面环境。environment(必填)取值 ENVIRONMENT_BROWSER、ENVIRONMENT_MOBILE、ENVIRONMENT_DESKTOP
mcpServersarray连接的 MCP Server 列表。每项含 name 与 streamableHttpTransport(url、headers、超时配置等)

Schema ​

Schema 用于定义结构化输出与函数参数/返回值的数据类型,是 OpenAPI 3.0 Schema 的子集。

参数名类型必填说明
typestring是数据类型,取值:STRING、NUMBER、INTEGER、BOOLEAN、ARRAY、OBJECT、NULL
formatstring否数据格式说明,如 enum、date-time
descriptionstring否参数描述,支持 Markdown,可包含示例
nullablebool否值是否可以为 null
enumarray否枚举取值列表,仅用于 STRING 类型
itemsobject否ARRAY 类型元素的 Schema
minItems / maxItemsstring否ARRAY 类型的最小/最大元素数
propertiesobject否OBJECT 类型的属性定义,键为属性名,值为 Schema
requiredarray否OBJECT 类型的必填属性名列表
minProperties / maxPropertiesstring否OBJECT 类型的最小/最大属性数
minimum / maximumnumber否INTEGER/NUMBER 类型的最小/最大值
minLength / maxLengthstring否STRING 类型的最小/最大长度
patternstring否限制 STRING 类型的正则表达式
anyOfarray否值需满足列表中任一子 Schema
propertyOrderingarray否属性的输出顺序(非 OpenAPI 标准字段),用于确定响应中属性的排列顺序