SDK 接入
Claude SDK 接入
通过官方 Anthropic SDK 接入 FIM Gate,覆盖 Python、Node.js、Java、Go、Ruby。
FIM Gate 兼容 Anthropic Messages API 协议。把官方 Anthropic SDK 的 base URL 指向 FIM Gate,即可用熟悉的方式调用 Claude 系列模型。
| 配置项 | 值 |
|---|---|
| Base URL | https://api.gate.fim.ai |
| API Key | 在 FIM Gate 控制台创建(下文以 $FIM_API_KEY 代指) |
注意:该兼容端点仅用于调用 Claude 系列模型。其他模型请通过 OpenAI SDK 接入 或各自的原生接口调用。
配置 API Key
Anthropic 各语言 SDK 默认读取 ANTHROPIC_API_KEY 环境变量,推荐用环境变量管理密钥,不要写进代码:
# macOS / Linux
export ANTHROPIC_API_KEY="$FIM_API_KEY"# Windows
setx ANTHROPIC_API_KEY "$FIM_API_KEY"Python
安装官方 SDK:
pip install anthropic通过 base_url 参数指向 FIM Gate:
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.getenv("ANTHROPIC_API_KEY"),
base_url="https://api.gate.fim.ai",
)
message = client.messages.create(
model="claude-opus-4-20250514",
max_tokens=1000,
system="你是一位简洁的科普作者。",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "海水为什么是咸的?"},
],
}
],
)
print(message.content)运行 python main.py 即可看到返回结果。
Node.js
pnpm add @anthropic-ai/sdk构造客户端时传入 baseURL:
import Anthropic from "@anthropic-ai/sdk";
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
baseURL: "https://api.gate.fim.ai",
});
const message = await anthropic.messages.create({
model: "claude-opus-4-20250514",
max_tokens: 1000,
system: "你是一位简洁的科普作者。",
messages: [
{
role: "user",
content: [{ type: "text", text: "海水为什么是咸的?" }],
},
],
});
console.log(message);保存为 main.mjs 后运行 node main.mjs(Deno、Bun 同理)。
Java
添加 Maven 依赖:
<dependency>
<groupId>com.anthropic</groupId>
<artifactId>anthropic-java</artifactId>
<version>2.2.0</version>
</dependency>Java SDK 的 fromEnv() 会读取 ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_BASE_URL 环境变量。接入 FIM Gate 时设置:
export ANTHROPIC_BASE_URL="https://api.gate.fim.ai"import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.messages.Message;
import com.anthropic.models.messages.MessageCreateParams;
import com.anthropic.models.messages.Model;
AnthropicClient client = AnthropicOkHttpClient.fromEnv();
MessageCreateParams params = MessageCreateParams.builder()
.model(Model.CLAUDE_SONNET_4_20250514)
.maxTokens(1024L)
.addUserMessage("海水为什么是咸的?")
.build();
Message message = client.messages().create(params);Go
go get github.com/anthropics/anthropic-sdk-go通过 option.WithBaseURL 指向 FIM Gate(该选项默认读取 ANTHROPIC_BASE_URL 环境变量):
package main
import (
"context"
"fmt"
"github.com/anthropics/anthropic-sdk-go"
"github.com/anthropics/anthropic-sdk-go/option"
)
func main() {
client := anthropic.NewClient(
option.WithAPIKey("$FIM_API_KEY"), // 默认读取 ANTHROPIC_API_KEY 环境变量
option.WithBaseURL("https://api.gate.fim.ai"),
)
message, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
Model: anthropic.ModelClaudeSonnet4_20250514,
MaxTokens: 1024,
Messages: []anthropic.MessageParam{
anthropic.NewUserMessage(anthropic.NewTextBlock("海水为什么是咸的?")),
},
})
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", message.Content)
}Ruby
官方 Ruby 库要求 Ruby 3.2.0 及以上,HTTP 传输基于标准库 net/http,并通过 connection_pool gem 提供连接池。在 Gemfile 中添加:
gem "anthropic", "~> 1.2.0"require "bundler/setup"
require "anthropic"
anthropic = Anthropic::Client.new(
api_key: ENV["ANTHROPIC_API_KEY"],
base_url: "https://api.gate.fim.ai"
)
message = anthropic.messages.create(
model: :"claude-sonnet-4-20250514",
max_tokens: 1024,
messages: [{ role: "user", content: "海水为什么是咸的?" }]
)
puts(message.content)