Перейти к содержимому
Вернуться в Nymbot

База знаний Разработчики

Инструменты и SDK

Все, что может говорить с OpenAI или Anthropic, может говорить с Nymbot.В почти каждом случае это базовый URL, ключ и название модели.

Каждая настройка ниже нуждается в ключе API, сделанном в приложении Огонь Меню (см. Огненные ключи) и модель ID от Список моделейПримеры использования anthropic/claude-sonnet-5 По отношению к балансу. 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, Open admin панельТогда НастройкиТогда Связи, и добавьте соединение OpenAI API:

  • УРЛ : https://nymbot.ai/api/v1
  • Ключ: Ваш ключ API

Open WebUI читает список моделей из API, поэтому каждая модель чата появляется в его пикере. OPENAI_API_BASE_URL и OPENAI_API_KEY.

Open WebUI сохраняет ваши разговоры на своем собственном сервере. Nymbot не хранит их, но Open 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

Гусь называет инструменты практически на каждом шагу, поэтому выберите модель с 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);