青蛙小白
博客 / 2025/01

开始使用Gemini API

2025/01/14 · — 字 · 阅读约 — 分钟 ·
目录

Google AI产品Gemini的API有很多免费额度,而且兼容OpenAI API,我也开始使用了它的API了。

免费额度

从免费额度上看Google还算慷慨, gemini-1.5-flash每天1500次请求也足够个人学习使用。

模型名称简介免费层级限制
gemini-1.5-flash速度最快的多模态模型,在各种重复性任务中表现出色,有100万的上下文窗口15RPM, 1 million TPM, 1500RPD
gemini-1.5-flash-8b最小的模型,适用于对智能要求不高的场景,100万上下文窗口15RPM, 1 million TPM, 1500RPD
gemini-1.5-pro下一代模型,200万上下文窗口,已经生产可用2RPM, 32000TPM, 50RPD
gemini-1.0-pro第一代模型仅提供文本和图像推理,生产可用15RPM, 32000TPM, 1500RPD
text-embedding-004文本嵌入模型1500RPM
  • RPM - requests per minute
  • TPM - tokens per minute
  • RPD requests per day

开通Gemini API

Gemini API的开通方式,是在Googlle AI Studio中申请API Key。

PS: Googlle AI Studio已经支持PWA,可以作为PWA 安装在桌面、iOS和Android设备上。

国内访问方式

Gemini API的地址是https://generativelanguage.googleapis.com,由于某些原因,国内访问直连访问。

可以通过在cloudflare的创建worker转发。

需要一个个人域名(可以使用二级域名例如gemini-api.frognew.com),将其解析到cloudflare的CDN IP。这个IP地址可以使用cf的IP优选工具选择。注意,在cf域名解析配置不要开启小黄云。

cf worker的代码:

export default {
  async fetch(request, env) {
    const url = new URL(request.url);
    url.host = 'generativelanguage.googleapis.com';
    return fetch(new Request(url, request))
  }
}

在cf中部署这个worker后(例如名称为gemini-api-proxy,添加个人域名到这个worker到路由,例如gemini-api.frognew.com/* -> gemini-api-proxy

到这一步后可以根据官方API文档中的例子进行测试:

curl "https://gemini-api.frognew.com/v1beta/models/gemini-1.5-flash:generateContent?key=YOUR_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [{
    "parts":[{"text": "Write a story about a magic backpack."}]
    }]
   }'

查看Gemini API支持的模型

curl  https://gemini-api.frognew.com/v1beta/models?key=YOUR_API_KEY

使用OpenAI API的形式访问

export OPENAI_API_KEY=YOUR_API_KEY

curl -s https://gemini-api.frognew.com/v1beta/chat/completions  -H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
  "model": "gemini-1.5-pro",
  "messages": [
    { "role": "user", "content": "25乘以25等于? 128+128呢?" }
  ],
  "tools": [
    {
      "type": "function",
      "function":  {
        "name": "add",
        "description": "Add two integers.",
        "parameters": {
            "type": "object",
            "properties": {
                "a": {"type": "integer"},
                "b": {"type": "integer"}
            },
            "required": ["a", "b"]
        }
      }
    },
    {
      "type": "function",
      "function":  {
        "name": "multiply",
        "description": "Multiply two integers.",
        "parameters": {
            "type": "object",
            "properties": {
                "a": {"type": "integer"},
                "b": {"type": "integer"}
            },
            "required": ["a", "b"]
        }
      }
    }
  ]
}'

使用场景

  • 个人学习
  • 配合vscode+cline进行AI辅助编程
  • 沉浸式翻译
TAGS # aigc
评论