【模型接入】谷歌 Gemini
项目基于 Spring AI,实现 Google Gemini (opens new window) 的接入:master-jdk25 分支使用 spring-ai-google-genai (opens new window) 原生客户端,master-jdk17 分支通过 Gemini 的 OpenAI 兼容接口调用。
| 功能 | 模型 | Spring AI 客户端 |
|---|---|---|
| AI 对话 | gemini-4-argon、gemini-3.8-flash 等 | GeminiChatModel(master-jdk17,OpenAI 兼容接口)、GoogleGenAiChatModel(master-jdk25) |
| AI 绘画 | gemini-nano-banana-2.1 (opens new window) 等 | 暂未接入 |
# 1. 申请密钥
由于 Google Gemini 是非开源的模型,所以无法私有化部署,需要去官网申请 API Key,然后通过 Spring AI 提供的客户端接入。
不过,目前市面上有很多 Gemini 的中转 API 服务,通过购买这些服务,也能实现接入。
疑问:什么是“中转 API 服务”?
简单来说,就是有人通过一定的渠道,获取了大量的 Gemini、MidJourney 等 API 账号,然后部署一个 API 池子(服务)。
中转人卖给你一个 API KEY 令牌,你就可以把 AI 请求发送到他的池子:池子采取一定的算法选取一个 API 账号帮你把请求发送到大模型后端,然后再把大模型返回的结果转发给你。
下面,我们来看看这两种方式怎么申请?
# 1.1 方式一:官方 API 申请
① 在 Google AI Studio (opens new window) 上,点击「创建 API 密钥」,创建一个 API Key 密钥。
申请完成后,可以在我们系统的 [AI 大模型 -> 控制台 -> API 密钥] 菜单,进行密钥的配置。只需要填写“密钥”,不需要填写“自定义 API URL”(因为项目默认使用 Google Gemini 官方地址)。如下图所示:

友情提示:官方的 API 禁止国内直接访问,需要有 VPN 代理~
# 1.2 方式二:中转 API 申请
提供中转 API 服务的有很多,也可以 Google 直接搜索“gemini API 中转”,例如说:
- TeamoRouter (opens new window) 【最佳推荐,官方 10% 左右的价格,Codex/Claude Code 也可以用】
- 毫秒 API (opens new window)
- AIHubMix (opens new window)
购买完成后,可以在我们系统的 [AI 大模型 -> 控制台 -> API 密钥] 菜单,进行密钥的配置。需要填写“密钥” + “自定义 API URL”(因为让 Spring AI 使用该地址)。
注意,master-jdk17 分支的 Gemini 固定使用官方的 OpenAI 兼容地址,不读取“自定义 API URL”。中转 API 一般也提供 OpenAI 兼容地址,可以改用 OpenAI 平台接入。
# 2. 模型配置
友情提示:
目前 ai_model 表中,已经预置了一些模型,可以直接使用!!!
# 2.1 AI 对话
使用 《AI 对话》 时,需要在 [AI 大模型 -> 控制台 -> 模型配置] 菜单,配置对应的聊天模型,并选择前面配置的 Gemini API 密钥。
如果使用官方 Gemini,模型标识可以参考下表填写;如果使用中转 API,以中转平台实际支持的模型标识为准。
不同模型的 max_tokens(回复数 Token 数)上限不同,可以参考下表填写:
| 模型标识 | max_tokens 最大输出 Tokens |
|---|---|
gemini-4-argon | 32768(流式 65536) |
gemini-3.8-flash | 65536 |
gemini-3.5-flash-lite | 65536 |
gemini-4-argon 单次非流式请求最多返回 32768 Tokens,流式最多 65536;官方的 1M 输出需要 long decode 多次续写,不是单次请求的上限,见 Gemini 4 Argon (opens new window)。旧的 gemini-3.5-flash 已自动路由到 gemini-3.6-flash,gemini-3.1-flash-lite-preview 已下线,见 Deprecations (opens new window)。
# 2.2 AI 绘图
TODO 等待 Gemini ImageModel 客户端!
# 3. 如何使用?
① 如果你的项目里需要直接通过 @Resource 注入 Gemini 的 ChatModel 对象,需要把 application.yaml 配置文件里的对应配置项,替换成你的!
master-jdk25分支:注入 GoogleGenAiChatModel,配置项为spring.ai.google.genai。
spring:
ai:
google:
genai: # 谷歌 Gemini
api-key: ${GEMINI_API_KEY}
chat:
model: gemini-3.8-flash
master-jdk17分支:注入 GeminiChatModel,配置项为yudao.ai.gemini。
yudao:
ai:
gemini: # 谷歌 Gemini
enable: true
api-key: ${GEMINI_API_KEY}
model: gemini-3.8-flash
② 如果你希望使用 [AI 大模型 -> 控制台 -> API 密钥] 菜单的密钥配置,则可以通过 AiModelService 的 #getChatModel(...) 方法,获取对应的模型对象。
① 和 ② 这两者的后续使用,就是标准的 Spring AI 客户端的使用,调用对应的方法即可。
另外,GeminiChatModelTests 里有对应的测试用例,可以参考。
# 666. Gemma 如何接入?
Gemma 是 Gemini 的开源版本 (opens new window),可以进行私有化部署。
整个的接入,类似 《【模型接入】LLAMA》。下面,我简单写下,有疑问可以星球提问哈!主要是,貌似也没听说哪个团队或者朋友在使用~
① 访问 Ollama 官网 (opens new window),下载对应系统 Ollama 客户端,然后安装。
② 安装完成后,在命令中执行 ollama run gemma4 命令,一键部署 gemma4 模型。
③ 之后,需要使用 Spring AI 的 spring-ai-ollama (opens new window) 进行接入。
不知道它怎么使用的话,可以看看 《Spring AI : Java Integration with Large Language Models Simplified》 (opens new window) 博客。