FIM Gate 文档
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 URLhttps://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)