Wiesselt op den Inhalt
Zurück zu Nymbot

Wëssensbasis Entwéckler

Tools an SDKs

Alles, wat mat OpenAI oder Anthropic sprechen kann, kann mat Nymbot sprechen.

All Installatioun ënner braucht eng API-Schlüssel, déi an der App gemaach gëtt. Feuer gëtt Menü (Säit Feuer Schlëssel) an e Modell Id vun Modell LëschtDéi Beispiele benotzt anthropic/claude-sonnet-5 Et ass pro Balance. nymbot/auto ass déi billegere Choix op der Standard Balance fir einfachen Chat, awer et kann net Tools nennen, déi Goose braucht; fir dat, wählen Iech e Katalogmodell mat capabilities.tools.

De Setup fir Coding Agenten wéi Claude Code, Codex, Cline, Kilo Code an Continue ass op der eegener Säit: Tools ze codéieren.

All Instrument huet seng eigener Schlëssel

Coding Agenten maachen vill Modellanrufe fir eng Aufgab, an eng Kap op der Schlëssel ass de einfachste Wee fir de meeschte ze wëssen, wat e Tool kann spannen.

Déi éischt SDK

D'offiziell Python a JavaScript Bibliothéiken funktionnéieren unverändert. base_url op Nymbot a passéiert Äre Schlëssel. Chat Komplementer, Antworten, Bildern, Audio an Embeddings all funktionnéieren duerch se.

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's eege Felder, wéi zum Beispill plugins Fir d'Websäit ze fannen, gaangen an extra_body an Python an direkt an den Request Object an JavaScript. nymbot D'Cost Object an enger Reaktioun ass reply.model_extra["nymbot"] Et ass Python an reply.nymbot an JavaScript. Bibliothéiken déi de OPENAI_BASE_URL an OPENAI_API_KEY D'Umweltvariabelen kënnen op Nymbot mat deem eenzegaarteg ze weisen.

D'Anthropologie vum SDK

D'anthropesch Bibliothéiken benotzt https://nymbot.ai/api als Basis URL, ouni /v1Et ass dat, datt se /v1/messages All Katalog Modell funktionnéiert, net nëmmen 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);

Ënnerstëtzung

Den Aider féiert op all OpenAI-kompatibel Server. Setze d'Basis-URL an de Schlëssel, an setze openai/ op der Front vum Modell id so Aider weiß wat fir e Typ vu Server et ass:

Shell

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

Den Aider kann warnen, datt et d'Kontextgréisst oder de Präis vum Modell net kennt. --no-show-model-warnings Vläicht verstoppt dat.

Open Websäit

An der Open WebUI, Open De Panel assDann KonfiguratiounDann Verbindungen, an eng OpenAI API-Verbindung ergänzen:

  • Déi éischt URL: https://nymbot.ai/api/v1
  • Et gëtt eng API Schlüssel.

Open WebUI liest d'Modellliste vun der API, sou datt all Chat-Modell an sengem Picker erscheet. OPENAI_API_BASE_URL an OPENAI_API_KEY.

Open WebUI behält Är Konversatiounen op sengem eegene Server. Nymbot späichert se net, awer Open WebUI tut, egal wou Dir et lafen.

Gäscht

Rennen goose configureWählen Konfiguratioun ProviderWéi Pick OpzedeelenEt kann och an der Ëmwelt festgeléist ginn:

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 rufft Tools op fast all Schrëtt, also wählt e Modell mat capabilities.tools an der Modellliste; nymbot/auto Et gëtt Instrumenter.

Déi éischt HTTP

Et braucht keng SDK. All Endpoint ass JSON iwwer HTTPS, ausser de Datei Uploads, déi Multipart Forms sinn.

  • Schreift de Schlëssel als Authorization: Bearer sk-nymbot-….
  • Dir kënnt d'JSON Organisatiounen mat Content-Type: application/json.
  • Fir Streaming, liest d'Reaktioun als Server-Send Ereignisse; mat cURL, -N Déi éischt Kéier, wann se kommen.
  • Liest de Präis vun der X-Nymbot-Cost-Sats Header, an et gëtt X-Request-Id Header, wann Dir braucht fir eng Recherche ze fragen.

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