Przejdź do treści
Wróć do Nymbot

Baza wiedzy deweloperzy

Narzędzia i SDK

Wszystko, co może rozmawiać z OpenAI lub Anthropic, może rozmawiać z Nymbotem.

Każda poniższa instalacja wymaga klucza API, wykonanego w aplikacji Ogień Menu (zobacz Klucze ognia) oraz identyfikator modelu z Lista modeliPrzykłady wykorzystania anthropic/claude-sonnet-5 Na pro równowagę. nymbot/auto jest tańszym wyborem na standardowym bilansie dla czatu zwykłego, ale nie może nazywać narzędzi, których potrzebuje Goose; do tego, wybierz model katalogu z capabilities.tools.

Instalacja dla agentów kodujących, takich jak Claude Code, Codex, Cline, Kilo Code i Continue jest na własnej stronie: Narzędzia kodowania.

Każde narzędzie ma swój klucz

Agenci kodujący wykonują wiele wezwań modelowych do jednego zadania, a zamek na kluczu jest najprostszym sposobem, aby wiedzieć, ile narzędzie może wydać.

Otwarcie SDK

Oficjalne biblioteki Python i JavaScript działają niezmiennie. base_url Czat Dokończenia, Odpowiedzi, obrazy, dźwięk i osadzenia wszystkie pracują przez nich.

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

Własne pola Nymbota, takie jak plugins Wyszukaj w Internecie, wejdź extra_body w Python i bezpośrednio do obiektu żądania w JavaScript. nymbot Koszt przedmiotu w odpowiedzi reply.model_extra["nymbot"] w Pythonie i reply.nymbot w języku JavaScript. Biblioteki, które czytają OPENAI_BASE_URL I OPENAI_API_KEY Zmienne środowiska można wskazać na Nymbot z tymi samymi.

Antropologiczne SDK

Biblioteki antropologiczne wykorzystują https://nymbot.ai/api jako podstawowy adres URL, bez /v1Ponieważ dodają /v1/messages Każdy model katalogowy działa, nie tylko 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);

pomocnik

Asystent rozmawia z dowolnym serwerem zgodnym z OpenAI. Ustaw podstawowy adres URL i klucz, a następnie ustaw openai/ przed modelem id, aby Aider wiedział, jaki rodzaj serwera jest:

Shell

export OPENAI_API_BASE=https://nymbot.ai/api/v1
export OPENAI_API_KEY=sk-nymbot-...
aider --model openai/anthropic/claude-sonnet-5

Asystent może ostrzec, że nie zna rozmiaru kontekstu lub ceny modelu. --no-show-model-warnings Ukryj to

otwarty WEB

W Open WebUI, otwarty Admin PanelNastępnie UstawieniaNastępnie Połączenia, a następnie dodać połączenie API OpenAI:

  • i url: https://nymbot.ai/api/v1
  • Twój klucz API

Open WebUI odczytuje listę modeli z API, więc każdy model czatu pojawia się w jego wybieraczu. OPENAI_API_BASE_URL I OPENAI_API_KEY.

Nymbot nie przechowuje ich, ale Open WebUI robi, gdziekolwiek go uruchamiasz.

gościny

biegać goose configureWybierz Konfiguracja dostawcówPick to Otwarcie, i daj mu te wartości, gdy zostaniesz poproszony. To samo można ustawić w środowisku:

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 nazywa narzędzia na prawie każdym kroku, więc wybierz model z capabilities.tools na liście wzorów; nymbot/auto Odmówić narzędzi

Prosty HTTP

Nic nie wymaga SDK. Każdy punkt końcowy jest JSON nad HTTPS, z wyjątkiem przesyłanych plików, które są wielodzielnymi formularzami.

  • Wyślij klucz jako Authorization: Bearer sk-nymbot-….
  • Wyślij JSON ciała z Content-Type: application/json.
  • W przypadku przesyłania strumieniowego odczytaj odpowiedź jako wydarzenie wysłane przez serwer; za pomocą cURL dodaj -N Tak więc drukuje je, gdy przyjeżdżają.
  • Przeczytaj koszty z X-Nymbot-Cost-Sats header i trzymaj się X-Request-Id header, jeśli może być konieczne zwrócenie się o prośbę.

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