Skip to main content

Gemini 调用方式

对于 Gemini 系列,我们提供原生调用和 Openai 兼容这 2 种调用方式。
使用前运行 pip install google-genaipip install -U google-genai,安装(更新)原生依赖。
1️⃣ 对于原生调用,我们的 Gemini 调用支持 AI Studio 和 VertexAI 自动路由。转发方法主要是在内部传入 AIHubMix 密钥和请求链接。需要注意的是,这个链接和常规的 base_url 写法不同,请参考示例:
2️⃣ 对于 Openai 兼容格式,则维持通用的 v1 端点:
3️⃣ 对于 2.5 系列,如果你需要显示推理过程,可以使用以下 2 种方式:
  1. 原生调用:传入 include_thoughts=True
  2. OpenAI 兼容方式:传入 reasoning_effort
相关的详细调用可以参考下文的代码示例。

Gemini 3 Pro Image Preview 说明

Gemini 3 Pro Image Preview(Nano Banana Pro 预览版)专为专业素材资源制作和复杂指令而设计。该模型具有以下特点:
  • 使用Google 搜索实时获取世界知识
  • 默认“思考”过程(在生成之前优化构图)
  • 能够生成分辨率高达 4K 的图像
  • 流式模式只返回推理过程,生成的图片不会在流式输出中出现。
  • 如需获取图片数据,请使用非流式请求。
Python 调用参考如下:

Gemini 2.5 系列的「推理」说明

  1. 2.5 系列都是推理模型。
  2. 2.5 flash 是混合模型,类似 claude sonnet 3.7,可以通过用 thinking_budget 控制推理预算来达到最佳效果。
  3. 2.5 pro 是纯粹的推理模型,因此不能关闭 thinking、也不显式传递推理预算。
  4. 温度值支持范围 0 <= temprature <= 2
Python 调用参考如下:

Gemini 2.5 Flash 支持

Openai 兼容方式调用参考如下:
  1. 用于复杂任务时,只需要将模型 id 设置为默认开启思考的 gemini-2.5-flash-preview-04-17 即可。
  2. Gemini 2.5 Flash 通过 budget(思考预算)来控制思考的深度,范围 0-16K,目前转发采用的是默认预算 1024,最佳边际效果为 16K。

多媒体文件

  • 对于 20MB 以下的多媒体文件(图片、音频、视频),用 inline_data 上传。
  • 当多媒体文件大于 20M 时,需要用 Files API。

20M 以下文件

你可以增加 EDIARESOLUTION_MEDIUM 参数来约束图片的精度,从而大幅节省输入的费用以及减少大图报错的可能性。支持的媒体分辨率参数值:
调用参考:

Files API

Gemini 可以同时处理各种类型的输入数据,包括文本、图片和音频。当总请求大小(包括文件、文本提示、系统指令等)超过 20 MB 时,请务必使用 Files API。
  • 不支持列出已上传的文件
  • 文件会在 48 小时后自动删除,也可以手动删除已上传的文件
调用参考

Code Execution

自动代码解析器用例参考:
Python

Interactions API

Interactions 是 Gemini 新一代推理接口,返回结构化的 Interaction 对象,支持文本生成、原生图像生成(Nano Banana)及多步推理。目前已支持同步模式interactions.create());异步模式(Background Interactions)敬请期待。
SDK 版本要求:@google/genai >= 2.0.0(JS/TS)或 google-genai >= 2.0.0(Python)。低版本 SDK 调用 Interactions 会被 Google 后端拒绝(legacy Interactions schema no longer supported)。

文本生成

调用 interactions.create() 发起推理,返回的 Interaction 对象提供 output_text 便捷属性。

原生图像生成

通过 response_format 配置输出模态为图像,返回的 Interaction 对象提供 output_image 便捷属性。
  • 推荐模型 gemini-3.1-flash-image(Nano Banana 2,通用生图模型)。
  • response_modalities 值必须为小写 ['text', 'image'];大写为 generateContent API 的写法,在 Interactions API 中会返回 400
  • 勿传 delivery: 'inline'400 Image delivery mode is not supported),结果默认即以 inline 方式返回。

流式输出

传入 stream: true 启用 SSE 流式传输。增量文本通过 event.delta.text 获取。
JavaScript
完整的 SDK 接入指南(含 Embeddings、显式缓存 CRUD、能力矩阵等)请参考 Gemini 原生 SDK 接入

上下文缓存

Gemini 在原生 API 下默认启用了隐式上下文缓存,无需开发者手动操作。每一次 generate_content 请求,系统会自动为输入内容建立缓存。当后续请求与此前内容完全一致时,将直接命中缓存,返回上一次的推理结果,大幅提升响应速度并有机会节省 token 消耗。
  • 缓存自动生效,无需手动配置。
  • 缓存仅在内容、模型、参数完全一致时生效;任何字段不同都会视为新请求,不命中缓存。
  • 缓存有效期(TTL)由开发者设定,也可以不设置。如果未指定,默认为 1 小时。无最小或最大时长限制,费用取决于缓存 token 数与缓存时间。
    • 虽然 Google 官方对 TTL 不设上下限,但由于我们作为转发平台,仅支持有限的 TTL 配置范围,不保证永久有效

注意事项

  • 无成本节省保证:缓存 token 的计费为输入原价的 25%,理论上输入部分可最多节省 75% 成本,但 Google 官方并未承诺必然节省,实际账单还需结合缓存命中率、token 类型与存储时长共同评估。
  • 缓存命中条件:建议将重复的上下文放在请求前部,将易变内容(如用户输入)置于后部,以提高缓存命中率。
  • 缓存命中反馈:如果响应结果命中缓存,在 response.usage_metadata 中会包含 cache_tokens_details 字段,并有 cached_content_token_count,开发者可以据此判断本次请求是否命中缓存。
    示例响应字段(命中缓存时):
代码示例:
命中缓存时,response.usage_metadata 会包含如下结构:
核心结论:隐式缓存支持自动命中与命中反馈。开发者可以通过 usage_metadata 判断命中情况。成本节省非保证,实际效果因请求结构和使用场景而异。

Function calling

使用 openai 兼容方式调用 Gemini 的 function calling 功能时,需要在请求体内部传入tool_choice="auto",否则会报错。
输出结果示例:

Tokens 用量追踪

  1. Gemini 原生采用 usage_metadata追踪使用的 token,其中的字段对应如下:
  • prompt_token_count: 输入 token 数
  • candidates_token_count: 输出 token 数
  • thoughts_token_count: 推理使用的 token 数,性质上也是输出 token
  • total_token_count: 总 token 使用量(输入+输出)
  1. 对于 OpenAI 兼容格式,则采用 .usage 来追踪,字段对应如下:
  • usage.completion_tokens: 输入 token 数
  • usage.prompt_tokens: 输出 token 数(包含推理使用的 token 数)
  • usage.total_tokens:总 token 使用量
使用方法如下:

更新时间:2026-07-07