APIPIGAPIPIG
首页
产品概览
使用文档
下载中心
部署方式
首页
产品概览
使用文档
下载中心
部署方式
  • 文档中心

    • 使用文档
    • 快速开始
    • CLI 中使用
    • 桌面端接入
    • CC Switch
    • Key 登录安全
  • API 参考

    • API 参考
    • Anthropic Claude
    • OpenAI / Codex
    • Google Gemini

Google Gemini

Google 的 Gemini 模型,支持多模态输入和超长上下文。

基本信息

  • 官方 API:/v1/models/{model}:generateContent
  • 统一网关格式:/api/openai/v1/chat/completions
  • 鉴权方式:x-goog-api-key 或 key 查询参数

生成内容

  • 方法:POST
  • 官方路径:/v1/models/{model}:generateContent
  • 统一路径:/api/openai/v1/chat/completions

路径参数

字段必填说明
model是例如 gemini-1.5-pro、gemini-1.5-flash

查询参数

字段必填说明
key是API 密钥,如果未在请求头中提供

请求头

名称必填说明
Content-Type是请求内容类型,固定为 application/json

请求体

字段类型必填说明
contentsarray是对话内容列表
generationConfigobject否生成配置
safetySettingsarray否安全设置

请求示例

官方格式
curl "https://generativelanguage.googleapis.com/v1/models/gemini-1.5-pro:generateContent?key=$GOOGLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [{
        "text": "Hello, Gemini!"
      }]
    }]
  }'
统一格式
curl https://your-domain.com/api/openai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -d '{
    "model": "gemini-1.5-pro",
    "messages": [
      {"role": "user", "content": "Hello, Gemini!"}
    ]
  }'
TypeScript
import { GoogleGenerativeAI } from '@google/generative-ai'

const genAI = new GoogleGenerativeAI(process.env.GOOGLE_API_KEY!)
const model = genAI.getGenerativeModel({ model: 'gemini-1.5-pro' })

const result = await model.generateContent('Hello, Gemini!')
const response = result.response
console.log(response.text())
Python
import google.generativeai as genai
import os

genai.configure(api_key=os.environ["GOOGLE_API_KEY"])
model = genai.GenerativeModel('gemini-1.5-pro')

response = model.generate_content('Hello, Gemini!')
print(response.text)

成功响应

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "Hello! How can I help you today?"
          }
        ],
        "role": "model"
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 3,
    "candidatesTokenCount": 8,
    "totalTokenCount": 11
  }
}

速率限制

  • 每分钟请求数:60
  • 每分钟 token 数:32000
  • 免费层级通常限制更低
  • 响应头:
    • x-ratelimit-limit
    • x-ratelimit-remaining
    • x-ratelimit-reset

流式响应

  • 通过 streamGenerateContent 端点进行流式响应
  • 协议:SSE
  • 每个数据块通常包含完整候选结构
const model = genAI.getGenerativeModel({ model: 'gemini-1.5-pro' })
const result = await model.generateContentStream('Tell me a story')

for await (const chunk of result.stream) {
  const chunkText = chunk.text()
  process.stdout.write(chunkText)
}

函数调用

Gemini 支持通过函数声明进行函数调用。

const model = genAI.getGenerativeModel({
  model: 'gemini-1.5-pro',
  tools: [{
    functionDeclarations: [{
      name: 'get_weather',
      description: 'Get the current weather for a location',
      parameters: {
        type: 'object',
        properties: {
          location: { type: 'string' }
        },
        required: ['location']
      }
    }]
  }]
})

const result = await model.generateContent("What's the weather in Paris?")

Context Caching

  • 长上下文场景可显著降低重复输入成本
  • 隐式缓存命中时输入价格会自动折扣
  • 系统当前主要统计缓存读取 tokens
  • 是否支持显式缓存与价格细节,需以具体模型说明为准

模型

模型上下文窗口最大输出价格(输入 / 输出,USD / 1M)能力
Gemini 1.5 Pro100000081921.25 / 5流式、函数调用、视觉
Gemini 1.5 Flash100000081920.075 / 0.3流式、函数调用、视觉
Gemini 1.0 Pro3276020480.5 / 1.5流式、函数调用

SDK

语言包名安装命令仓库
TypeScript@google/generative-ainpm install @google/generative-aihttps://github.com/google/generative-ai-js
Pythongoogle-generativeaipip install google-generativeaihttps://github.com/google/generative-ai-python

常见错误码

代码HTTP 状态含义处理建议
INVALID_ARGUMENT400参数无效检查参数格式和值
PERMISSION_DENIED403权限被拒绝检查 API 密钥
RESOURCE_EXHAUSTED429资源耗尽等待配额重置或升级
INTERNAL500内部错误稍后重试
UNAVAILABLE503服务不可用使用指数退避重试

最佳实践

  • 利用长上下文窗口处理大型文档
  • 长上下文场景使用 Context Caching 降低成本
  • 使用安全设置过滤不当内容
  • 根据任务复杂度选择 Pro 或 Flash 模型
  • 结合多模态能力处理图像和文本
Prev
OpenAI / Codex