API 参考
Claude 原生接口
以 Anthropic Messages API 原生格式调用 Claude 模型。
需要请求/响应字段与 Anthropic 官方 API 完全一致时(例如复用基于 Anthropic SDK 的现有代码),可使用 FIM Gate 的 Claude 原生入口。若没有字段对齐需求,用 OpenAI 兼容接口 调用 Claude 模型更省事。
端点
| 项目 | 值 |
|---|---|
| Base URL | https://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 官方调用方式保持一致。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型 ID,如 claude-sonnet-4-5 |
max_tokens | integer | 是 | 输出 token 上限。Messages API 中该字段为必填 |
messages | array | 是 | 消息数组,role 仅限 user / assistant,需交替出现 |
system | string / array | 否 | 系统提示词,单独传递而不是放进 messages |
stream | boolean | 否 | 设为 true 启用 SSE 流式输出 |
temperature | number | 否 | 采样温度,0–1 |
top_p | number | 否 | 核采样阈值 |
top_k | integer | 否 | 仅从概率最高的 K 个候选中采样 |
stop_sequences | array | 否 | 自定义终止序列 |
tools | array | 否 | 工具定义,每项含 name、description、input_schema(JSON Schema) |
metadata | object | 否 | 请求元数据,如 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 anthropicimport 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 只写到域名为止。