Gemini 原生接口
概述
AIone 支持以 Google Gemini 原生 API 格式直接调用网关,适用于自建网关聚合、Google Gemini SDK 以及已有 Gemini 对接代码的场景。
请求和响应格式与 Google Gemini API 完全一致,网关仅做认证、路由和计费,不做任何格式转换。
接入信息
| 项目 | 值 |
|---|---|
| Base URL | https://api.openbili.com |
| 认证头 | Authorization: Bearer sk-nex-your-key-here |
| 非流式端点 | POST /v1beta/models/{model}:generateContent |
| 流式端点 | POST /v1beta/models/{model}:streamGenerateContent?alt=sse |
注意: 使用 AIone 的 API Key(
sk-nex-xxx),不是 Google 的 API Key。
支持的模型
所有已接入的 Gemini 模型均可通过原生接口调用,包括:
文本模型: gemini-2.5-flash、gemini-2.5-pro、gemini-3-pro-preview、gemini-3-flash-preview、gemini-3.1-pro 等
图片生成模型: gemini-3.1-flash-image-preview、gemini-3-pro-image-preview、gemini-2.5-flash-image 等
完整列表请查询 GET https://api.openbili.com/v1/models。
非流式请求 — generateContent
基础示例
curl https://api.openbili.com/v1beta/models/gemini-2.5-flash:generateContent \
-H "Authorization: Bearer sk-nex-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{"role": "user", "parts": [{"text": "用一句话解释量子计算"}]}
],
"generationConfig": {
"maxOutputTokens": 256,
"temperature": 0.7
}
}'响应格式
{
"candidates": [
{
"content": {
"parts": [{"text": "量子计算是利用量子力学原理..."}],
"role": "model"
},
"finishReason": "STOP",
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": 10,
"candidatesTokenCount": 25,
"totalTokenCount": 35
},
"modelVersion": "gemini-2.5-flash"
}图片生成示例
curl https://api.openbili.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent \
-H "Authorization: Bearer sk-nex-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{"role": "user", "parts": [{"text": "画一只可爱的猫咪"}]}
],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"maxOutputTokens": 4096,
"imageConfig": {
"imageSize": "2K",
"aspectRatio": "16:9"
}
}
}'图片在响应的 candidates[0].content.parts[] 中以 inlineData 形式返回(base64 编码)。
注意: 4K 图片生成可能需要 2-3 分钟,请将客户端 HTTP 超时设置为 ≥ 600 秒。
流式请求 — streamGenerateContent
在端点 URL 末尾加 ?alt=sse,响应以 SSE (Server-Sent Events) 格式逐 chunk 返回。
示例
curl https://api.openbili.com/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse \
-H "Authorization: Bearer sk-nex-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{"role": "user", "parts": [{"text": "写一首关于春天的诗"}]}
],
"generationConfig": {
"maxOutputTokens": 512
}
}'SSE 响应格式
data: {"candidates":[{"content":{"parts":[{"text":"春风"}],"role":"model"},"index":0}],"usageMetadata":{"promptTokenCount":8,"candidatesTokenCount":2,"totalTokenCount":10}}
data: {"candidates":[{"content":{"parts":[{"text":"拂面来,"}],"role":"model"},"index":0}],"usageMetadata":{"promptTokenCount":8,"candidatesTokenCount":5,"totalTokenCount":13}}
data: {"candidates":[{"content":{"role":"model"},"finishReason":"STOP","index":0}],"usageMetadata":{"promptTokenCount":8,"candidatesTokenCount":28,"totalTokenCount":36}}
每个 data: 行是一个独立的 JSON 对象。usageMetadata 是累积值,最后一个 chunk 的数值为最终用量。
注意: 图片生成模型不支持
streamGenerateContent,请使用generateContent。
Python SDK 示例
import google.generativeai as genai
genai.configure(
api_key="sk-nex-your-key-here",
transport="rest",
client_options={"api_endpoint": "https://api.openbili.com"},
)
model = genai.GenerativeModel("gemini-2.5-flash")
response = model.generate_content("用一句话解释量子计算")
print(response.text)Node.js SDK 示例
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("sk-nex-your-key-here");
// 需要设置自定义 endpoint
const model = genAI.getGenerativeModel({ model: "gemini-2.5-flash" });
const result = await model.generateContent("用一句话解释量子计算");
console.log(result.response.text());注意: Google 官方 SDK 可能不直接支持自定义 endpoint。如果遇到此限制,建议使用 HTTP 直接调用或使用支持自定义 Base URL 的第三方库。
与 OpenAI 兼容格式的对比
| 维度 | Gemini 原生格式 | OpenAI 兼容格式 |
|---|---|---|
| 端点 | /v1beta/models/{model}:generateContent |
/v1/chat/completions |
| 请求体 | contents + generationConfig |
messages + max_tokens |
| 响应体 | candidates + usageMetadata |
choices + usage |
| 图片参数 | imageConfig.imageSize / imageConfig.aspectRatio |
image_size / aspect_ratio |
| 流式 | :streamGenerateContent?alt=sse |
"stream": true |
| 适用场景 | 自建网关聚合、已有 Gemini 代码 | 通用客户端、IDE 插件 |
两种格式访问的是同一组模型和同一组上游通道,选择哪种取决于你的客户端。
限制与注意事项
- 认证方式:使用 AIone 的
sk-nex-API Key,不是 Google API Key - 图片模型不支持流式:
streamGenerateContent对图片生成模型会返回 503,请使用generateContent - 支持的 action:仅支持
generateContent和streamGenerateContent,不支持countTokens、embedContent等 - 超时设置:图片生成(尤其 4K)请将 HTTP 超时设置为 ≥ 600 秒
- 格式透传:请求和响应均为字节级透传,网关不做任何格式转换