Google Gemini SDK — GPUShare

用 Google Gemini SDK 调用 GPUShare 网关 (Python / TypeScript / curl)

Google Gemini SDK 接入 GPUShare

适用场景: 已经在用 Google genai SDK 的项目可直接切换 base URL,代码零改动。 也可以用 Gemini SDK 调用非 Gemini 模型 (Claude / GLM / Grok / DeepSeek 等)。

端点

Base URLhttps://api.dflop.top
端点/v1beta/models/{model}:generateContent (兼容 Gemini Native API)
流式端点/v1beta/models/{model}:streamGenerateContent
鉴权?key=sk-gpushare-xxxx-api-key: sk-gpushare-xxx (SDK 自动用 key=)
协议Google Generative AI Native (HTTP / SSE 流式)

安装

pip install google-genai     # Python
npm install @google/genai    # TypeScript

Google 在 2024-2025 把 SDK 从 google-generativeai 切到了新的 google-genai。本文档用新 SDK。

Python

基础调用

from google import genai

client = genai.Client(
    api_key="sk-gpushare-xxx",
    http_options={"base_url": "https://api.dflop.top"},
)

response = client.models.generate_content(
    model="gemini-2.5-pro",
    contents="Say hello in one word.",
)
print(response.text)

流式输出

stream = client.models.generate_content_stream(
    model="gemini-2.5-pro",
    contents="Stream a haiku about latency",
)
for chunk in stream:
    print(chunk.text, end="", flush=True)

跨厂商调用 (重点)

Gemini SDK 可以调用任何支持 Gemini Native 协议的模型 —— 不只是 Gemini:

# 用 Gemini SDK 调 Claude
response = client.models.generate_content(
    model="claude-sonnet-4-5-20250929",
    contents="Hello",
)

# 调 GLM
response = client.models.generate_content(
    model="glm-5.1",
    contents="Hello",
)

# 调 Grok
response = client.models.generate_content(
    model="grok-4-fast-reasoning",
    contents="Hello",
)

# 调 DeepSeek
response = client.models.generate_content(
    model="deepseek-v3.2",
    contents="Hello",
)

多模态 (图像输入)

from google.genai import types

with open("photo.jpg", "rb") as f:
    image_bytes = f.read()

response = client.models.generate_content(
    model="gemini-2.5-pro",
    contents=[
        types.Part.from_bytes(data=image_bytes, mime_type="image/jpeg"),
        "Describe this image",
    ],
)
print(response.text)

System Instruction

response = client.models.generate_content(
    model="gemini-3-pro-preview",
    config=types.GenerateContentConfig(
        system_instruction="You are a terse expert. Answer in one sentence.",
    ),
    contents="Why is the sky blue?",
)
print(response.text)

TypeScript

基础调用

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({
  apiKey: process.env.GPUSHARE_API_KEY,
  httpOptions: { baseUrl: "https://api.dflop.top" },
});

const response = await client.models.generateContent({
  model: "gemini-2.5-pro",
  contents: "Say hello in one word.",
});

console.log(response.text);

流式输出

const stream = await client.models.generateContentStream({
  model: "gemini-2.5-pro",
  contents: "Stream a haiku",
});

for await (const chunk of stream) {
  process.stdout.write(chunk.text ?? "");
}

跨厂商调用

// 用 Gemini SDK 调 Claude
await client.models.generateContent({
  model: "claude-opus-4-5-20251101",
  contents: "Hello",
});

// 调 GLM
await client.models.generateContent({
  model: "glm-4.7",
  contents: "Hello",
});

curl

非流式

curl "https://api.dflop.top/v1beta/models/gemini-2.5-pro:generateContent?key=$GPUSHARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"parts": [{"text": "Say hello in one word."}]}
    ]
  }'

流式

curl "https://api.dflop.top/v1beta/models/gemini-2.5-pro:streamGenerateContent?key=$GPUSHARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"parts": [{"text": "Stream a haiku"}]}
    ]
  }' \
  --no-buffer

跨厂商 (curl 调 Claude)

curl "https://api.dflop.top/v1beta/models/claude-sonnet-4-5-20250929:generateContent?key=$GPUSHARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"parts": [{"text": "Hello"}]}
    ]
  }'

注意事项

  • URL 模型占位 {model} —— SDK 自动从 model 参数填,curl 直调时手动替换路径
  • :generateContent vs :streamGenerateContent —— SDK 根据 generate_content vs generate_content_stream 自动切换
  • Key 鉴权 —— SDK 默认走 ?key= query param;x-api-key header 也可用 (三回退)
  • 错误格式 统一返回 Gemini 风格: {"error": {"code": 400, "message": "...", "status": "INVALID_ARGUMENT"}}
  • 不支持组合:
    • GPT-5.x (gpt-5.4, gpt-5.5) 暂不支持 Gemini Native 端点 (sub2api 上游限制)
    • 调 GPT-5.x 请改用 OpenAI Chat 或 Anthropic Messages 端点
  • 配额耗尽 返回 HTTP 412 + Gemini 风格错误对象

完整模型列表

支持 Gemini Native 的所有模型(除 GPT-5.x):

厂商模型
Googlegemini-2.5-flash, gemini-2.5-pro, gemini-3-flash-preview, gemini-3-pro-preview (原生直通)
Anthropicclaude-opus-4-5-20251101, claude-sonnet-4-5-20250929
xAIgrok-4, grok-4.1, grok-4.2, grok-4-fast-reasoning, grok-4-fast-non-reasoning
智谱glm-4.5/-air/-airx/-flash/-x, glm-4.6, glm-4.7, glm-5, glm-5-turbo, glm-5.1
DeepSeekdeepseek-v3.1, deepseek-v3.2, deepseek-v4-flash, deepseek-v4-pro
Moonshotkimi-k2.5, kimi-k2.6
MiniMaxMiniMax-M2.5, MiniMax-M2.7
Alibabaqwen3.5-plus, qwen3.6-plus

完整矩阵: 兼容矩阵