API 参考Google 兼容
生成内容
Google Gemini API - 通过 UniterRouter 使用 Gemini Pro、Gemini 1.5 模型生成内容。原生 Google AI API 格式,支持多模态和流式响应。
生成内容
从 Gemini 模型生成内容(文本、代码等)。这是非流式文本生成的主要端点。
端点
POST https://api.uniterouter.ai/v1beta/models/{model}:generateContent认证
使用您的 UniterRouter API 密钥作为 Google API 密钥:
x-goog-api-key: your_uniterouter_api_key或通过查询参数:
?key=your_uniterouter_api_key路径参数
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
model | string | 是 | 模型 ID(如 gemini-2.0-flash、gemini-1.5-pro) |
请求体
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
contents | array | 是 | 发送给模型的内容部分数组 |
generationConfig | object | 否 | 生成配置 |
safetySettings | array | 否 | 过滤有害内容的安全设置 |
systemInstruction | object | 否 | 模型的系统指令 |
tools | array | 否 | 模型可用的工具/函数 |
内容格式
{
"contents": [
{
"role": "user",
"parts": [
{"text": "你好,你好吗?"}
]
}
]
}生成配置
| 参数 | 类型 | 描述 |
|---|---|---|
temperature | number | 控制随机性 (0.0-2.0) |
topP | number | 核采样参数 |
topK | integer | Top-k 采样参数 |
maxOutputTokens | integer | 生成的最大 token 数 |
stopSequences | array | 停止生成的序列 |
candidateCount | integer | 生成的响应数量 |
请求示例
curl -X POST "https://api.uniterouter.ai/v1beta/models/gemini-2.0-flash:generateContent" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $UNITEROUTER_API_KEY" \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "用简单的语言解释量子计算"}]
}
],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 1024
}
}'import google.generativeai as genai
genai.configure(
api_key="your_uniterouter_api_key",
transport="rest",
client_options={"api_endpoint": "api.uniterouter.ai"}
)
model = genai.GenerativeModel("gemini-2.0-flash")
response = model.generate_content(
"用简单的语言解释量子计算",
generation_config=genai.GenerationConfig(
temperature=0.7,
max_output_tokens=1024
)
)
print(response.text)import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("your_uniterouter_api_key", {
baseUrl: "https://api.uniterouter.ai"
});
const model = genAI.getGenerativeModel({ model: "gemini-2.0-flash" });
const result = await model.generateContent({
contents: [
{
role: "user",
parts: [{ text: "用简单的语言解释量子计算" }]
}
],
generationConfig: {
temperature: 0.7,
maxOutputTokens: 1024
}
});
console.log(result.response.text());响应
{
"candidates": [
{
"content": {
"parts": [
{
"text": "量子计算利用量子力学原理..."
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
}
]
}
],
"usageMetadata": {
"promptTokenCount": 10,
"candidatesTokenCount": 150,
"totalTokenCount": 160
}
}多轮对话
对于聊天式对话,包含对话历史:
model = genai.GenerativeModel("gemini-2.0-flash")
chat = model.start_chat(history=[])
response1 = chat.send_message("你好!")
print(response1.text)
response2 = chat.send_message("法国的首都是哪里?")
print(response2.text)图像输入
Gemini 模型支持图像输入:
import PIL.Image
model = genai.GenerativeModel("gemini-2.0-flash")
image = PIL.Image.open("image.jpg")
response = model.generate_content([
"描述这张图片:",
image
])
print(response.text)错误处理
| 错误码 | 描述 |
|---|---|
400 | 无效请求(参数错误) |
401 | 无效的 API 密钥 |
403 | 权限被拒绝 |
404 | 模型未找到 |
429 | 超出速率限制 |
500 | 内部服务器错误 |
相关文档
How is this guide?