免费 AI 大模型 API 接口,Gemini 3 Flash 预览版的 Golang 代理实现

更新日期: 2025-12-26 阅读次数: 12 字数: 914 分类: AI

最近用 Gemini 3 Flash 开发非常爽,于是我想如果能程序化调用 Gemini API 就更好了,可以自动化一些日常的任务。 而我印象中 Google 是提供了一些免费的 AI API 额度的。于是我查了一下确实有免费的额度可以使用 Gemini API。

在 Google AI Studio 上申请免费的 API Key 后,就可以使用 Gemini API 了。下图是一些免费可用模型的额度列表:

Gemini 免费可用模型的额度列表

速率限制

速率限制通常从以下三个维度进行衡量:

  • 每分钟请求数 (RPM)
  • 每分钟 token 数(输入)(TPM)
  • 每日请求数 (RPD)

速率限制按项目应用,而不是按 API 密钥应用。每天的请求数 (RPD) 配额会在午夜重置。实验性模型和预览版模型的速率限制更为严格。

API Key 申请地址

https://aistudio.google.com/api-keys

Gemini 3 Flash 预览版也有免费的额度

https://ai.google.dev/gemini-api/docs/pricing?hl=zh-cn#gemini-3-flash-preview

不过免费的额度有各种限制:

  • 每分钟请求数 (RPM):5次
  • 每分钟输入 token 数 (TPM):250K
  • 每天的请求数 (RPD):20次

看起来有点少,但是对于一些简单的自动化任务来说,已经足够了。 例如,我 Github Copilot 一个月 1000 次的 Gemini 3 Flash 额度,我也就用了 10% 左右。也就是 100 次左右。每天才几次。

golang 库

https://github.com/googleapis/go-genai

Google 官方提供的 golang 库,可以方便地调用 Gemini API。安装:

go get google.golang.org/genai

使用起来非常简单, 示例代码:

import "google.golang.org/genai"

client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:   apiKey,
	Backend:  genai.BackendGeminiAPI,
})

parts := []*genai.Part{
  {Text: "What's this image about?"},
  {InlineData: &genai.Blob{Data: imageBytes, MIMEType: "image/jpeg"}},
}
result, err := client.Models.GenerateContent(ctx, "gemini-2.5-flash", []*genai.Content{{Parts: parts}}, nil)

把这个服务部署在海外服务器,就能在国内访问 Gemini API 了。

量大管饱的 gemma 3 系列模型 API

gemini 那些 API,大部分都限制在每天 20 次请求,5 次每分钟请求数。 如果遇到需要大量请求的情况,可以使用 gemma 3 系列模型,这些模型日限制在 14.4K 次请求,完全够用。

但是没有提供 Golang 的 API,只有 python 和 nodejs 的 API。

https://ai.google.dev/gemma/docs/core/gemma_on_gemini_api?hl=zh-cn#rest

不过看 curl 的示例非常简单:

curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-3-27b-it:generateContent?key=xxx" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [{
    "parts":[{"text": "Roses are red..."}]
    }]
   }'

把 Key 写在 URL 里也是一种创举,完全不考虑被泄露的风险。。。🥲 Google 也有不专业的开发啊。

不过会看到 Gemini 系列则是正常的在 HTTP Header 里传递 Key。估计是不同团队搞的。

于是用 Golang 实现了一个简单的 gemma 3 系列模型的 API 调用。 判断请求的模型是 gemma 3 系列模型的话,就走 gemma 3 的调用逻辑,否则走 golang 官方库的调用逻辑。

到此,就实现了一个完整的 Gemini API 代理服务,支持 gemini 系列和 gemma 3 系列模型。 后续就可以在这个基础上,做一些自动化的功能了。

关于作者 🌱

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式