Ga naar de inhoud
Terug naar Nymbot

Kennisbank Ontwikkelaars

Tools en SDK's

Alles wat kan praten met OpenAI of Anthropic kan praten met Nymbot.In bijna elk geval is het een basis-URL, een sleutel en een modelnaam.

Elke installatie hieronder heeft een API-sleutel nodig, gemaakt in de app Vuur Menu (zie hieronder) Vuur sleutels) en een model id van De modellijstDe voorbeelden gebruiken anthropic/claude-sonnet-5 De Pro Balance. nymbot/auto is de goedkopere keuze op de standaardbalans voor eenvoudige chat, maar het kan geen hulpmiddelen bellen, die Goose nodig heeft; kies daarvoor een catalogusmodel met capabilities.tools.

Installatie voor coderingsagenten zoals Claude Code, Codex, Cline, Kilo Code en Continue is op zijn eigen pagina: Tools voor coderen.

Geef elke tool zijn eigen sleutel

Codering agents maken vele model oproepen voor een taak, en een cap op de sleutel is de eenvoudigste manier om te weten hoeveel een tool kan besteden.

Open de SDK

De officiële Python- en JavaScript-bibliotheken werken onveranderd. base_url Chat voltooien, antwoorden, afbeeldingen, audio en embeddings allemaal werken door hen.

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

De eigen velden van Nymbot, zoals plugins Voor een webzoekopdracht, ga naar extra_body in Python en rechtstreeks in het verzoekobject in JavaScript. nymbot Cost object in een reactie is reply.model_extra["nymbot"] In Python en reply.nymbot in JavaScript. Bibliotheken die de OPENAI_BASE_URL En OPENAI_API_KEY omgevingsvariabelen kunnen op Nymbot worden aangegeven met die alleen.

Antropische SDK

Antropische bibliotheken gebruiken https://nymbot.ai/api als de basis-URL, zonder /v1Omdat ze toevoegen /v1/messages Alle catalogusmodellen werken, niet alleen 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);

bijdragen

Aider spreekt met elke OpenAI-compatibele server. Stel de basis-URL en de sleutel in en openai/ voor het model id dus Aider weet welk type server het is:

Shell

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

Aider kan waarschuwen dat hij de contextgrootte of de prijs van het model niet kent. --no-show-model-warnings Verberg het

Open website

In Open WebUI, open Admin paneelEn dan instellingenEn dan verbindingen, en voeg een OpenAI API-verbinding toe:

  • De url: https://nymbot.ai/api/v1
  • Uw API-sleutel

Open WebUI leest de modellijst van de API, zodat elk chatmodel in zijn picker wordt weergegeven. OPENAI_API_BASE_URL En OPENAI_API_KEY.

Open WebUI bewaart uw gesprekken op zijn eigen server. Nymbot slaat ze niet op, maar Open WebUI doet het, waar u het ook uitvoert.

Goosje

Rennen goose configureKies dan Configureer leveranciersPick het openen, en geef het deze waarden wanneer gevraagd. hetzelfde kan worden ingesteld in de omgeving:

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 roept tools op bijna elke stap, dus kies een model met capabilities.tools in de modellijst; nymbot/auto Verwerpen van gereedschappen.

Eenvoudig HTTP

Niets heeft een SDK nodig.Elke eindpunt is JSON over HTTPS, behalve de bestand uploads, die multipart formulieren zijn.Elke taal of tool die een HTTP-verzoek kan maken, kan de API gebruiken:

  • Stuur de sleutel als Authorization: Bearer sk-nymbot-….
  • Stuur JSON-lichamen met Content-Type: application/json.
  • Voor streaming, lees de reactie als server verzonden gebeurtenissen; met cURL, voeg -N Zo drukken ze op als ze aankomen.
  • Lees de kosten van de X-Nymbot-Cost-Sats header, en houd de X-Request-Id header als u misschien een verzoek moet stellen.

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