Amux
文本Gemini 格式

文本聊天

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
完整 URLhttps://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(如 systemInstructionmaxOutputTokenstopP)与 snake_case(如 system_instructionmax_output_tokenstop_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 在以下两种情况下会按流式处理:

  1. URL 路径包含 streamGenerateContent
  2. Query 参数 alt=sse

两者满足其一即可。

错误响应

{
  "error": {
    "code": 400,
    "message": "...",
    "status": "INVALID_ARGUMENT",
    "details": [...]
  }
}
HTTP 状态码含义
200请求成功
400请求参数错误(INVALID_ARGUMENT
401API 密钥无效或缺失(UNAUTHENTICATED
403权限不足(PERMISSION_DENIED
404模型不存在(NOT_FOUND
429触发速率限制或额度不足(RESOURCE_EXHAUSTED
500 / 502 / 503服务端异常或上游不可用

On this page