FIM Gate 文档
API 参考

Claude 原生接口

以 Anthropic Messages API 原生格式调用 Claude 模型。

需要请求/响应字段与 Anthropic 官方 API 完全一致时(例如复用基于 Anthropic SDK 的现有代码),可使用 FIM Gate 的 Claude 原生入口。若没有字段对齐需求,用 OpenAI 兼容接口 调用 Claude 模型更省事。

端点

项目值
Base URLhttps://api.gate.fim.ai
方法与路径POST /v1/messages
鉴权x-api-key: $FIM_API_KEY

注意鉴权 Header 是 x-api-key,不是 Authorization: Bearer。建议同时携带 anthropic-version: 2023-06-01 请求头,与 Anthropic 官方调用方式保持一致。

请求参数

参数类型必填说明
modelstring是模型 ID,如 claude-sonnet-4-5
max_tokensinteger是输出 token 上限。Messages API 中该字段为必填
messagesarray是消息数组,role 仅限 user / assistant,需交替出现
systemstring / array否系统提示词,单独传递而不是放进 messages
streamboolean否设为 true 启用 SSE 流式输出
temperaturenumber否采样温度,0–1
top_pnumber否核采样阈值
top_kinteger否仅从概率最高的 K 个候选中采样
stop_sequencesarray否自定义终止序列
toolsarray否工具定义,每项含 name、description、input_schema(JSON Schema)
metadataobject否请求元数据,如 user_id

与 OpenAI 格式的两个关键差异:max_tokens 必填;系统提示词走独立的 system 字段。

curl 示例

curl https://api.gate.fim.ai/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: $FIM_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-5",
    "max_tokens": 1024,
    "system": "你是一个严谨的中文技术助手",
    "messages": [
      {"role": "user", "content": "解释一下 TCP 三次握手"}
    ]
  }'

响应结构:

{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-5",
  "content": [
    {
      "type": "text",
      "text": "TCP 三次握手是建立连接的过程……"
    }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 32,
    "output_tokens": 215
  }
}

生成文本在 content 数组的 text 块中;工具调用会以 type: "tool_use" 块出现。

stop_reason 取值

取值含义
end_turn模型自然结束
max_tokens达到 max_tokens 上限被截断
stop_sequence命中 stop_sequences 中的序列
tool_use模型请求调用工具

流式输出

请求体加 "stream": true,响应为 SSE 事件流,事件类型依次为 message_start、content_block_start、若干 content_block_delta(增量文本在 delta.text)、content_block_stop、message_delta、message_stop。

配合 Anthropic SDK 使用

pip install anthropic
import anthropic

client = anthropic.Anthropic(
    api_key="$FIM_API_KEY",
    base_url="https://api.gate.fim.ai",
)

message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "你好,Claude"}
    ],
)
print(message.content)

SDK 会自动在 base_url 后拼接 /v1/messages,因此 base_url 只写到域名为止。