FIM Gate 文档
API 参考

Gemini 原生接口

以 Google Gemini API 原生格式调用 Gemini 模型。

需要与 Google Gemini API(GenAI 风格)逐字段对齐时,使用 FIM Gate 的 Gemini 原生入口。Gemini 的接口形态与 OpenAI 差异较大:模型名写在 URL 路径里,请求体用 contents / parts 结构。若无对齐需求,可改用 OpenAI 兼容接口。

端点

项目值
Base URLhttps://api.gate.fim.ai
非流式POST /v1beta/models/{model}:generateContent
流式POST /v1beta/models/{model}:streamGenerateContent?alt=sse
鉴权x-goog-api-key: $FIM_API_KEY

{model} 替换为模型 ID,如 gemini-2.5-flash、gemini-2.5-pro。流式请求必须带查询参数 alt=sse,否则返回的是 JSON 数组分块而非标准 SSE。

请求参数

参数类型必填说明
contentsarray是对话内容数组,每项含 role(user / model)和 parts
contents[].partsarray是内容块数组,文本用 {"text": "..."},内联图片用 inline_data(含 mime_type 和 base64 data)
systemInstructionobject否系统指令,结构为 {"parts": [{"text": "..."}]}
generationConfigobject否生成参数集合,见下表
safetySettingsarray否安全过滤阈值配置
toolsarray否工具声明,函数调用用 functionDeclarations

generationConfig 常用字段:

字段类型说明
temperaturenumber采样温度
topPnumber核采样阈值
topKinteger候选截断数量
maxOutputTokensinteger输出 token 上限
stopSequencesarray终止序列

注意 Gemini 原生格式字段名为驼峰式(maxOutputTokens),与 OpenAI 的蛇形命名不同。

非流式请求

curl "https://api.gate.fim.ai/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $FIM_API_KEY" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "为什么海水是咸的?"}]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

响应结构:

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {"text": "海水中的盐分主要来自岩石风化……"}
        ]
      },
      "finishReason": "STOP",
      "index": 0
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 9,
    "candidatesTokenCount": 182,
    "totalTokenCount": 191
  },
  "modelVersion": "gemini-2.5-flash"
}

生成文本位于 candidates[0].content.parts[].text。

finishReason 取值

取值含义
STOP正常结束
MAX_TOKENS达到 maxOutputTokens 上限
SAFETY触发安全过滤
RECITATION因复述检测被中止

流式请求(SSE)

curl "https://api.gate.fim.ai/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $FIM_API_KEY" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "写一段 50 字的产品介绍"}]
      }
    ]
  }'

每个 SSE 事件的 data 是一个与非流式响应同构的 JSON 片段,增量文本同样在 candidates[0].content.parts[].text,逐事件拼接即可。

配合 Google GenAI SDK 使用

pip install -U google-genai
from google import genai
from google.genai import types

client = genai.Client(
    api_key="$FIM_API_KEY",
    http_options=types.HttpOptions(base_url="https://api.gate.fim.ai"),
)

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="你好",
)
print(response.text)

通过 http_options.base_url 把 SDK 的请求指向 FIM Gate,其余用法与官方 SDK 一致。