跳至內容
回到 Nymbot

知識庫 開發者

工具與 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);