知識庫 開發者
工具與 SDK
任何可以與 OpenAI 或 Anthropic 通訊的東西都可以與 Nymbot 通訊。 在幾乎所有情況下,只需要一個基礎 URL、一個金鑰和一個模型名稱。
為了方便起見,此頁面是機器翻譯的。英文原件為適用版本。
以下每個設定都需要一個 API 金鑰,在應用程式中建立 API 菜單 (見
API 金鑰), 以及一個來自
模型列表. 範例使用
anthropic/claude-sonnet-5 在 Pro 餘額上。 nymbot/auto 對於一般聊天而言,它是標準餘額中較便宜的選擇,但它無法調用工具,而 Goose 需要這些工具;為此,請選擇具有以下功能的目錄模型 capabilities.tools.
設定 Claude Code、Codex、Cline、Kilo Code 和 Continue 等編碼代理(coding agents)的說明位於獨立頁面: 編程工具.
為
OpenAI SDK
官方的 Python 和 JavaScript 函式庫運作正常,未受影響。 base_url 於
Nymbot 並傳遞您的金鑰。Chat Completions、Responses、images、audio 與 embeddings 都能透過它們運作。
cURL
curl https://nymbot.ai/api/v1/chat/completions \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "anthropic/claude-sonnet-5", "messages": [{"role": "user", "content": "Hello"}]}'
Python
# pip install openai
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
reply = client.chat.completions.create(
model="anthropic/claude-sonnet-5",
messages=[{"role": "user", "content": "Hello"}],
)
print(reply.choices[0].message.content)
JavaScript
// npm install openai
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const reply = await client.chat.completions.create({
model: "anthropic/claude-sonnet-5",
messages: [{ role: "user", content: "Hello" }],
});
console.log(reply.choices[0].message.content);
Nymbot 自己的欄位,例如 plugins 進行網頁搜尋,進入 extra_body
在 Python 中並直接進入 JavaScript 的 request 物件。這 nymbot 成本
物件在回應中是 reply.model_extra["nymbot"] 在 Python 和
reply.nymbot 在 JavaScript 中。讀取...的函式庫 OPENAI_BASE_URL
和 OPENAI_API_KEY 僅憑那些環境變數就可以指向 Nymbot。
Anthropic SDK
Anthropic 函式庫使用 https://nymbot.ai/api 作為基礎 URL,不含
/v1,因為它們增加了 /v1/messages 他們自己。任何目錄模型
都可以,不僅僅是 Claude。
cURL
curl https://nymbot.ai/api/v1/messages \
-H "x-api-key: $NYMBOT_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model": "claude-sonnet-5", "max_tokens": 1024, "messages": [{"role": "user", "content": "Hello"}]}'
Python
# pip install anthropic
import os
import anthropic
client = anthropic.Anthropic(base_url="https://nymbot.ai/api", api_key=os.environ["NYMBOT_API_KEY"])
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
print(message.content[0].text)
JavaScript
// npm install @anthropic-ai/sdk
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://nymbot.ai/api", apiKey: process.env.NYMBOT_API_KEY });
const message = await client.messages.create({
model: "claude-sonnet-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello" }],
});
console.log(message.content[0].text);
幫助
Aider 可以與任何相容於 OpenAI 的伺服器進行對話。設定 base URL 與 key,然後放入
openai/ 在模型 ID 前面,以便 Aider 知道這是哪種伺服器:
Shell
export OPENAI_API_BASE=https://nymbot.ai/api/v1
export OPENAI_API_KEY=sk-nymbot-...
aider --model openai/anthropic/claude-sonnet-5
Aider 可能會警告它不知道模型的上下文長度或價格。此警告是無害的;
--no-show-model-warnings 隱藏它。
Open WebUI
在 Open WebUI 中,打開 管理面板,然後 設定,然後 連結,並新增一個 OpenAI API 連線:
- URL:
https://nymbot.ai/api/v1 - 金鑰:your API key
Open WebUI 從 API 讀取模型列表,因此每個聊天模型都會出現在其選擇器中。
當在 Docker 中執行時,也可以透過環境變數進行相同的設定
OPENAI_API_BASE_URL 和 OPENAI_API_KEY.
Open WebUI 會將您的對話保留在其自身的伺服器上。Nymbot 不會儲存這些對話,但無論您在哪裡執行 Open WebUI,它都會進行儲存。
鵝
執行 goose configure,選擇 配置供應商, 挑選
OpenAI,並在要求時給予這些值。同樣可以在
環境中進行設定:
Shell
export GOOSE_PROVIDER=openai
export OPENAI_HOST=https://nymbot.ai/api
export OPENAI_BASE_PATH=v1/chat/completions
export OPENAI_API_KEY=sk-nymbot-...
export GOOSE_MODEL=anthropic/claude-sonnet-5
goose session
Goose 在幾乎每一步都會呼叫工具,因此請選擇一個具有...的型號 capabilities.tools 在
模型列表中; nymbot/auto 拒絕工具。
明文 HTTP
不需要任何 SDK。除了檔案上傳使用的是 multipart forms 之外,每個端點都是透過 HTTPS 傳輸的 JSON。任何可以發送 HTTP 請求的語言或工具都可以使用此 API:
- 將金鑰作為發送
Authorization: Bearer sk-nymbot-…. - 使用 JSON 主體發送
Content-Type: application/json. - 對於串流,請將回應讀取為伺服器傳送事件 (server-sent events);使用 cURL 時,請加上
-N所以 它會在它們抵達時即時列印。 - 從中讀取成本
X-Nymbot-Cost-Sats標題,並保留X-Request-Id如果您可能需要詢問有關請求的事宜,請放在標題中。
cURL
curl -i https://nymbot.ai/api/v1/chat/completions \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "nymbot/auto", "messages": [{"role": "user", "content": "Hello"}]}'
Python
import os
import requests
res = requests.post(
"https://nymbot.ai/api/v1/chat/completions",
headers={"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]},
json={"model": "nymbot/auto", "messages": [{"role": "user", "content": "Hello"}]},
)
print(res.headers["X-Nymbot-Cost-Sats"], res.headers["X-Request-Id"])
print(res.json()["choices"][0]["message"]["content"])
JavaScript
const res = await fetch("https://nymbot.ai/api/v1/chat/completions", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.NYMBOT_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ model: "nymbot/auto", messages: [{ role: "user", content: "Hello" }] }),
});
console.log(res.headers.get("X-Nymbot-Cost-Sats"), res.headers.get("X-Request-Id"));
console.log((await res.json()).choices[0].message.content);