跳至内容
回到Nymbot

知识库 开发者

工具和SDK

任何可以与OpenAI或Anthropic交谈的内容都可以与Nymbot交谈,在几乎所有情况下,它都是一个基础URL、一个密钥和一个模型名称。

下面的每个设置都需要一个 API 密钥,该密钥是在应用程序中制作的。 火焰 菜单(参见) 火钥匙)和一个模型ID从 模型列表使用的例子 anthropic/claude-sonnet-5 在 Pro 的平衡。 nymbot/auto 是平板聊天标准平衡的更便宜选择,但它不能调用 Goose 所需的工具;为此,选择一个具有 capabilities.tools.

Claude Code、Codex、Cline、Kilo Code 和 Continue 等编码代理的设置在自己的页面上: 代码工具.

给每个工具自己的钥匙

编码代理为一个任务发出多个模型呼叫,并且在密钥上设置一个密钥是最简单的方法来知道工具可以花费多少钱。

开启 SDK

官方的Python和JavaScript图书馆保持不变。 base_url 聊天完成,回复,图像,音频和嵌入都通过他们工作。

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中的请求对象。 nymbot 答案中的成本对象是 reply.model_extra["nymbot"] 在 Python 和 reply.nymbot 在 JavaScript 中. 阅读的图书馆 OPENAI_BASE_URL 和 OPENAI_API_KEY 环境变量可以单独指向Nymbot。

人类 SDK

人类图书馆使用 https://nymbot.ai/api 作为基础URL,没有 /v1因为他们添加 /v1/messages 任何目录模型都起作用,不仅仅是克劳德。

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);

助手

助手会与任何 OpenAI 兼容的服务器进行交谈. 设置基础 URL 和密钥,并设置 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

助手可以警告,它不知道模型的背景大小或价格,警告是无害的; --no-show-model-warnings 隐藏它。

开放网站

在 Open WebUI 中,开放 admin 面板然后 设置然后 连接,并添加 OpenAI API 连接:

  • URL : https://nymbot.ai/api/v1
  • 关键词:你的 API 密钥

打开 WebUI 会从 API 读取模型列表,因此每个聊天模型都会出现在其选择器中。 OPENAI_API_BASE_URL 和 OPENAI_API_KEY.

打开 WebUI 将您的对话保存在自己的服务器上. Nymbot 不会存储它们,但打开 WebUI 可以,无论您在哪里运行它。

古斯

跑步 goose configure选择 配置供应商皮克 开放,并在要求时给它这些值,同样可以在环境中设置:

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. 每个端点都是 JSON 过 HTTPS,除了文件上传,这些都是多部分表单. 任何可以提出 HTTP 请求的语言或工具都可以使用 API:

  • 将钥匙发送为 Authorization: Bearer sk-nymbot-….
  • 发送 JSON 器官 Content-Type: application/json.
  • 对于流媒体,阅读响应作为服务器发送的事件;使用cURL,添加 -N 当他们到达时,它会打印他们。
  • 阅读成本从 X-Nymbot-Cost-Sats header,并保持 X-Request-Id header 如果您需要询问请求。

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);