文本聊天
Gemini 原生 generateContent / streamGenerateContent 接口 — 完全兼容 Google Gemini API
代理 Gemini 原生 API 请求,路径格式为 /v1beta/models/{model}:{action}。完全兼容 Google Gemini 协议,支持文本生成、多轮对话、流式响应、函数调用、Google 搜索 / URL Context / Code Execution 等内置工具,以及 Extended Thinking。
| 项目 | 值 |
|---|---|
| 请求方法 | POST |
| 请求路径 | /v1beta/models/{model}:generateContent/v1beta/models/{model}:streamGenerateContent?alt=sse |
| 完整 URL | https://api.amux.ai/v1beta/models/gemini-2.5-pro:generateContent |
| 请求格式 | application/json |
| 响应格式 | JSON 或 SSE(流式动作或 ?alt=sse) |
本接口完全对齐 Google Gemini API 协议,可直接使用 Google 官方 SDK(@google/generative-ai / google-generativeai)调用,仅需替换 baseURL。多模态(图像 / PDF / 音频 / 视频)的详细使用请参考 媒体识别。
路径参数
Prop
Type
请求头与认证
amux-api 兼容 Gemini 原生鉴权方式与 Bearer 鉴权,按以下任一方式提供 API Token 即可:
Prop
Type
请求体参数
Prop
Type
透传与命名兼容:amux-api 同时接受 camelCase(如 systemInstruction、maxOutputTokens、topP)与 snake_case(如 system_instruction、max_output_tokens、top_p)两种命名风格。未在上方列出的字段会原样透传至上游。
Content 结构
Prop
Type
Part 类型
每个 Part 通过其字段标识类型(仅设置一种):
Prop
Type
GenerationConfig 结构
Prop
Type
SafetySetting 结构
Prop
Type
Tool 结构
每个 Tool 中只设置以下字段之一:
Prop
Type
请求示例
curl "https://api.amux.ai/v1beta/models/gemini-2.5-pro:generateContent" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AMUX_API_KEY" \
-d '{
"systemInstruction": {
"parts": [{"text": "You are a helpful assistant."}]
},
"contents": [
{
"role": "user",
"parts": [{"text": "你好,请用一句话介绍 Amux API。"}]
}
],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 1024
}
}'import os
from google import genai
client = genai.Client(
api_key=os.environ["AMUX_API_KEY"],
http_options={"base_url": "https://api.amux.ai"},
)
response = client.models.generate_content(
model="gemini-2.5-pro",
contents="你好,请用一句话介绍 Amux API。",
config={"system_instruction": "You are a helpful assistant."},
)
print(response.text)import { GoogleGenAI } from '@google/genai';
const ai = new GoogleGenAI({
apiKey: process.env.AMUX_API_KEY!,
httpOptions: { baseUrl: 'https://api.amux.ai' },
});
const response = await ai.models.generateContent({
model: 'gemini-2.5-pro',
contents: '你好,请用一句话介绍 Amux API。',
config: { systemInstruction: 'You are a helpful assistant.' },
});
console.log(response.text);curl "https://api.amux.ai/v1beta/models/gemini-2.5-pro:streamGenerateContent?alt=sse" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AMUX_API_KEY" \
-d '{
"contents": [
{"role": "user", "parts": [{"text": "写一首关于春天的诗"}]}
]
}'响应示例
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{ "text": "Amux API 是一个统一、稳定的企业级大模型接口网关。" }
]
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": []
}
],
"usageMetadata": {
"promptTokenCount": 24,
"candidatesTokenCount": 18,
"totalTokenCount": 42,
"thoughtsTokenCount": 0,
"cachedContentTokenCount": 0,
"promptTokensDetails": [
{ "modality": "TEXT", "tokenCount": 24 }
]
}
}响应字段
Prop
Type
Candidate 字段
Prop
Type
UsageMetadata 字段
Prop
Type
流式响应
将动作改为 streamGenerateContent 并附加 ?alt=sse query,返回 SSE 流:
data: {"candidates":[{"content":{"role":"model","parts":[{"text":"Amux"}]},"index":0}]}
data: {"candidates":[{"content":{"role":"model","parts":[{"text":" API"}]},"index":0}]}
data: {"candidates":[{"finishReason":"STOP","index":0}],"usageMetadata":{"promptTokenCount":24,"candidatesTokenCount":18,"totalTokenCount":42}}每帧的 candidates[].content.parts 携带本次增量。usageMetadata 通常在最后一帧返回。
amux-api 在以下两种情况下会按流式处理:
- URL 路径包含
streamGenerateContent,或 - Query 参数
alt=sse
两者满足其一即可。
错误响应
{
"error": {
"code": 400,
"message": "...",
"status": "INVALID_ARGUMENT",
"details": [...]
}
}| HTTP 状态码 | 含义 |
|---|---|
200 | 请求成功 |
400 | 请求参数错误(INVALID_ARGUMENT) |
401 | API 密钥无效或缺失(UNAUTHENTICATED) |
403 | 权限不足(PERMISSION_DENIED) |
404 | 模型不存在(NOT_FOUND) |
429 | 触发速率限制或额度不足(RESOURCE_EXHAUSTED) |
500 / 502 / 503 | 服务端异常或上游不可用 |