Base di conoscenza sviluppatori
Strumenti e SDK
Tutto ciò che può parlare con OpenAI o Anthropic può parlare con Nymbot. In quasi tutti i casi è un URL di base, una chiave e un nome del modello.
Questa pagina è tradotta automaticamente per comodità. Si applica l'originale inglese.
Ogni impostazione di seguito richiede una chiave API, realizzata nell'app. Fuoco Il menu (vedi
chiavi di fuoco) e un modello di ID da
La lista dei modelliGli esempi usati
anthropic/claude-sonnet-5 Il Pro per l’equilibrio nymbot/auto è la scelta più economica sul saldo standard per la chat semplice, ma non può chiamare strumenti, che Goose ha bisogno; per questo, scegli un modello di catalogo con capabilities.tools.
La configurazione per agenti di codifica come Claude Code, Codex, Cline, Kilo Code e Continua è sulla propria pagina: Strumenti di codifica.
Agenti di codifica fanno molte chiamate di modello per una singola attività, e un cappello sulla chiave è il modo più semplice per sapere quanto più uno strumento può spendere.
Apertura SDK
Le biblioteche ufficiali di Python e JavaScript funzionano inalterate. base_url Chat Completions, Risposte, immagini, audio e embeddings tutti lavorano attraverso di loro.
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);
I campi propri di Nymbot, come plugins per la ricerca web, vai in extra_body
in Python e direttamente nell'oggetto di richiesta in JavaScript. nymbot L'oggetto del costo in una risposta è reply.model_extra["nymbot"] In Python e
reply.nymbot in JavaScript. biblioteche che leggono il OPENAI_BASE_URL
E OPENAI_API_KEY Le variabili ambientali possono essere indicate su Nymbot con quelle solo.
Il SDK antropico
Le biblioteche antropiche usano https://nymbot.ai/api come URL di base, senza
/v1Perché aggiungono /v1/messages Tutti i modelli di catalogo funzionano, non solo 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);
aiuto
L'assistente parla a qualsiasi server compatibile con OpenAI. Impostare l'URL di base e la chiave e impostare
openai/ il modello id in modo che Aider sa che tipo di server è:
Shell
export OPENAI_API_BASE=https://nymbot.ai/api/v1
export OPENAI_API_KEY=sk-nymbot-...
aider --model openai/anthropic/claude-sonnet-5
L'assistente può avvertire che non conosce le dimensioni contestuali o il prezzo del modello.
--no-show-model-warnings Lo nasconde
aperto WEBUI
In Open WebUI, aperto Admin pannelloE poi ImpostazioniE poi Connessioni, e aggiungere una connessione OpenAI API:
- URL di:
https://nymbot.ai/api/v1 - Key: la chiave API
Open WebUI legge l'elenco dei modelli dall'API, quindi ogni modello di chat appare nel suo pick. Quando viene eseguito in Docker, lo stesso può essere impostato con le variabili ambientali
OPENAI_API_BASE_URL E OPENAI_API_KEY.
Nymbot non li memorizza, ma Open WebUI lo fa, ovunque lo esegui.
gozzo
corsa goose configureScegliere Configurare i fornitoridi Pick
apriamo, e dargli questi valori quando chiesto. Lo stesso può essere impostato nell'ambiente:
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 chiama strumenti su quasi ogni passo, quindi scegli un modello con capabilities.tools nell’elenco dei modelli; nymbot/auto Rifiuta gli strumenti.
Il semplice HTTP
Niente ha bisogno di un SDK. Ogni endpoint è JSON su HTTPS, ad eccezione dei file caricati, che sono moduli multipart. Qualsiasi lingua o strumento che può fare una richiesta HTTP può utilizzare l'API:
- Invia la chiave come
Authorization: Bearer sk-nymbot-…. - Invia corpi JSON con
Content-Type: application/json. - Per lo streaming, leggere la risposta come eventi inviati dal server; con cURL, aggiungere
-NQuindi li imprime quando arrivano. - Leggi il costo della
X-Nymbot-Cost-SatsHeader, e mantenere ilX-Request-IdHeader se avete bisogno di chiedere una richiesta.
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);