Springe zum Inhalt
Zurück zu Nymbot

Wissensdatenbank Entwickler

Tools und SDKs

Alles, was mit OpenAI oder Anthropic sprechen kann, kann mit Nymbot sprechen.In fast allen Fällen handelt es sich um eine Basis-URL, einen Schlüssel und einen Modellnamen.

Jede unten stehende Installation benötigt einen API-Schlüssel, der in der App erstellt wird Feuer Das Menü (siehe Feuer Schlüssel) und eine Modell-ID von Die ModelllisteDie Beispiele verwenden anthropic/claude-sonnet-5 Auf der Pro Balance. nymbot/auto ist die billigere Wahl auf der Standardbilanz für einfachen Chat, aber es kann keine Tools anrufen, die Goose braucht; dafür wählen Sie ein Katalogmodell mit capabilities.tools.

Setup für Codierungsagenten wie Claude Code, Codex, Cline, Kilo Code und Continue ist auf seiner eigenen Seite: Codierungswerkzeuge.

Geben Sie jedem Tool seinen eigenen Schlüssel

Codierende Agenten machen viele Modellanrufe für eine Aufgabe, und eine Kappe auf dem Schlüssel ist der einfachste Weg, um zu wissen, wie viel ein Werkzeug ausgeben kann.

Öffnen Sie SDK

Die offiziellen Python- und JavaScript-Bibliotheken funktionieren unverändert. base_url Chat Vollendungen, Antworten, Bilder, Audio und Embeddings alle arbeiten durch sie.

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

Die eigenen Felder von Nymbot, wie plugins für die Suche im Internet, gehen Sie in extra_body in Python und direkt in das Anfrageobjekt in JavaScript. nymbot Kostenobjekt in einer Antwort ist reply.model_extra["nymbot"] In Python und reply.nymbot in JavaScript. Bibliotheken, die die OPENAI_BASE_URL Und OPENAI_API_KEY Umweltvariablen können nur mit diesen auf Nymbot angezeigt werden.

Anthropische SDK

Die anthropischen Bibliotheken nutzen https://nymbot.ai/api als die Basis-URL, ohne /v1Weil sie hinzufügen /v1/messages Jedes Katalogmodell funktioniert, nicht nur 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);

Helfer

Aider spricht mit jedem OpenAI-kompatiblen Server. Setzen Sie die Basis-URL und den Schlüssel ein und setzen Sie openai/ vor der Modell-ID, so dass Aider weiß, welche Art von Server es ist:

Shell

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

Der Helfer kann warnen, dass er die Kontextgröße oder den Preis des Modells nicht kennt. --no-show-model-warnings verstecken Sie es.

Offene Webseiten

In Open WebUI, Open Admin PanelDann dann Settings zuDann dann Verbindungen, und fügen Sie eine OpenAI API-Verbindung hinzu:

  • Die URL: https://nymbot.ai/api/v1
  • Schlüssel: Ihr API-Schlüssel

Open WebUI liest die Modellliste aus der API, so dass jedes Chat-Modell in seinem Picker erscheint.Wenn es in Docker ausgeführt wird, kann das gleiche mit den Umgebungsvariablen eingestellt werden OPENAI_API_BASE_URL Und OPENAI_API_KEY.

Nymbot speichert sie nicht, aber Open WebUI tut es, wo immer Sie es ausführen.

Goose

Rennen goose configureWählen Sie Konfiguration der Anbieterund Pick Öffnen, und geben Sie ihm diese Werte, wenn gefragt. Das gleiche kann in der Umgebung eingestellt werden:

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 ruft Werkzeuge auf fast jedem Schritt, also wählen Sie ein Modell mit capabilities.tools in der Modellliste; nymbot/auto Werkzeuge ablehnen

Einfacher HTTP

Nichts braucht ein SDK. Jeder Endpunkt ist JSON über HTTPS, mit Ausnahme der Datei-Uploads, die mehrteilige Formulare sind.

  • Schicken Sie den Schlüssel als Authorization: Bearer sk-nymbot-….
  • Senden Sie JSON-Körper mit Content-Type: application/json.
  • Zum Streamen lesen Sie die Antwort als Servergesandte Ereignisse; mit cURL fügen Sie hinzu -N Sie werden dadurch gedruckt, wenn sie ankommen.
  • Lesen Sie die Kosten von der X-Nymbot-Cost-Sats Header, und behalten Sie die X-Request-Id Header, wenn Sie möglicherweise nach einer Anfrage fragen müssen.

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