第 15 章 / 共 21 章約 1 分鐘

15. SDK 與用戶端整合#

因完全相容 OpenAI,幾乎所有支援自訂 baseURL 的工具都能串接。

Python(OpenAI 官方 SDK)#

Python
from openai import OpenAI

client = OpenAI(
    base_url="http://183.240.79.21:52099/v1",
    api_key="sk-你的YiTuoToken-Key",
)

resp = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

Node.js(openai npm 套件)#

JavaScript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "http://183.240.79.21:52099/v1",
  apiKey: "sk-你的YiTuoToken-Key",
});

const resp = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);

LangChain(Python)#

Python
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-4o",
    base_url="http://183.240.79.21:52099/v1",
    api_key="sk-你的YiTuoToken-Key",
)
print(llm.invoke("你好").content)

Go#

Go
config := openai.DefaultConfig("sk-你的YiTuoToken-Key")
config.BaseURL = "http://183.240.79.21:52099/v1"
client := openai.NewClientWithConfig(config)

Anthropic SDK(走 /v1/messages)#

使用 Anthropic 官方 SDK 時,需讓 SDK 以 Authorization: Bearer 標頭攜帶金鑰(auth_token 參數),而非預設的 x-api-key:

Python
from anthropic import Anthropic

client = Anthropic(
    base_url="http://183.240.79.21:52099",   # SDK 會自動附加 /v1/messages
    auth_token="sk-你的YiTuoToken-Key",   # 以 Bearer 標頭傳送
)

msg = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=256,
    messages=[{"role": "user", "content": "你好"}],
)

桌面 / Web 用戶端#

以下用戶端皆支援自訂 OpenAI 介面,在設定中填入 API 位址 與 金鑰 即可:

用戶端API 位址填寫金鑰
Cherry Studiohttp://183.240.79.21:52099/v1你的 sk-...
LobeChathttp://183.240.79.21:52099/v1你的 sk-...
NextChathttp://183.240.79.21:52099你的 sk-...
Cursorhttp://183.240.79.21:52099/v1你的 sk-...
Difyhttp://183.240.79.21:52099/v1你的 sk-...

部分用戶端要求填寫不含 /v1 的根位址並自動附加 /v1;若呼叫出現 404,請嘗試增刪結尾的 /v1。