OpenAI SDK 接入
通过官方 OpenAI SDK 接入 FIM Gate,覆盖 Python、Node.js、.NET、Java、Go。
FIM Gate 完全兼容 OpenAI API 协议。你只需把 SDK 的 base URL 指向 FIM Gate,并使用 FIM Gate 签发的 API Key,其余代码与直连 OpenAI 时完全一致。
接入只需两个配置项:
| 配置项 | 值 |
|---|---|
| Base URL | https://api.gate.fim.ai/v1 |
| API Key | 在 FIM Gate 控制台创建(下文以 $FIM_API_KEY 代指) |
配置 API Key
推荐通过环境变量传入密钥,避免把密钥硬编码进代码或提交到代码仓库。OpenAI 各语言官方 SDK 都会自动读取 OPENAI_API_KEY 环境变量。
# macOS / Linux
export OPENAI_API_KEY="$FIM_API_KEY"# Windows
setx OPENAI_API_KEY "$FIM_API_KEY"把 $FIM_API_KEY 替换为你在 FIM Gate 控制台创建的密钥。如果一定要在代码里直接写密钥,请确保该代码不会被共享或公开。
Python
安装官方 SDK:
pip install openai初始化客户端时通过 base_url 参数指向 FIM Gate:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.gate.fim.ai/v1",
api_key=os.getenv("OPENAI_API_KEY"),
)
response = client.chat.completions.create(
model="gpt-4.1",
messages=[
{"role": "user", "content": "用一句话介绍黑洞。"},
],
)
print(response.choices[0].message.content)保存为 main.py 后运行 python main.py 即可看到模型返回。
Node.js
适用于 Node.js、Deno、Bun 等服务端 JavaScript 运行时:
pnpm add openai构造客户端时传入 baseURL(注意大小写):
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://api.gate.fim.ai/v1",
});
const response = await client.responses.create({
model: "gpt-4.1",
input: "用一句话介绍黑洞。",
});
console.log(response.output_text);保存为 main.mjs 后运行 node main.mjs。Responses 接口与 Chat Completions 接口均可使用。
.NET
通过 NuGet 安装官方包:
dotnet add package OpenAI通过 OpenAIClientOptions.Endpoint 指定 FIM Gate 地址:
using System.ClientModel;
using OpenAI;
using OpenAI.Chat;
ChatClient client = new(
model: "gpt-4.1",
credential: new ApiKeyCredential(
Environment.GetEnvironmentVariable("OPENAI_API_KEY")!),
options: new OpenAIClientOptions
{
Endpoint = new Uri("https://api.gate.fim.ai/v1"),
});
ChatCompletion completion = client.CompleteChat("用一句话介绍黑洞。");
Console.WriteLine(completion.Content[0].Text);Java
在 pom.xml 中添加 Maven 依赖:
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>0.31.0</version>
</dependency>Java SDK 的 fromEnv() 会读取 OPENAI_API_KEY、OPENAI_ORG_ID、OPENAI_PROJECT_ID 等环境变量。接入 FIM Gate 时,再额外设置 OPENAI_BASE_URL:
export OPENAI_BASE_URL="https://api.gate.fim.ai/v1"import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.ChatCompletion;
import com.openai.models.ChatCompletionCreateParams;
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.model("gpt-4.1")
.addUserMessage("用一句话介绍黑洞。")
.build();
ChatCompletion completion = client.chat().completions().create(params);也可以不依赖环境变量,在 builder 中显式调用 baseUrl("https://api.gate.fim.ai/v1") 与 apiKey(...)。
Go
获取官方 Go SDK:
go get github.com/openai/openai-go通过 option.WithBaseURL 指向 FIM Gate:
package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithAPIKey("$FIM_API_KEY"), // 默认读取 OPENAI_API_KEY 环境变量
option.WithBaseURL("https://api.gate.fim.ai/v1"),
)
completion, err := client.Chat.Completions.New(context.TODO(),
openai.ChatCompletionNewParams{
Model: openai.ChatModelGPT4o,
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("用一句话介绍黑洞。"),
},
})
if err != nil {
panic(err)
}
fmt.Println(completion.Choices[0].Message.Content)
}其他语言
除上述官方 SDK 外,开发者社区还为 PHP、Ruby、Rust、Kotlin、Swift 等语言维护了大量兼容 OpenAI 协议的客户端库。只要该库支持自定义 base URL,就可以接入 FIM Gate;接口定义可参考 OpenAI 公开的 OpenAPI 规范仓库。社区库未经官方安全审计,请自行评估后使用。