Base di cunniscenza Sviluppatori
Strumenti è SDK
Qualche cosa chì pò parlà cù OpenAI o Anthropic pò parlà cù Nymbot. In quasi ogni casu hè un URL di basa, una chìave è un nome di mudellu.
Questa pagina hè tradutta in macchina per comodità. L'uriginale in inglese hè a versione chì si applica.
Ogni configurazione sottu hà bisognu di una chìave API, fatta in l'app's API menù (vede
Chiavi API), è un id di mudellu da
a lista di i mudelliI esempi usanu
anthropic/claude-sonnet-5 su u balance Pro. nymbot/auto hè a scelta più economica per u bilanciu standard per a chat semplice, ma ùn pò micca chiamà strumenti, chì Goose
ha bisognu; per isso, sceltu un mudellu di catalughe cù capabilities.tools.
A configurazione per l'agenti di programmazione cum'è Claude Code, Codex, Cline, Kilo Code è Continue hè nantu à una pagina dedicata: strumenti di programmazione.
Fate una chìave separata per ogni strumentu, cù un capu. I agenti di codificazione fàssu assai chiami di mudellu per una sulu task, è un capu nantu à a chìave hè u modu più simplice per sapè u massimu chì un strumentu pò spende. S'un strumentu si comporta male, revucate a so chìave è nenti altrove hè afectatu.
SDK di OpenAI
Ie librerie ufficiali di Python è di JavaScript funzionanu senza cambiamenti. Puntu base_url à
Nymbot è passate a vostra chìave. Chat Completions, Responses, images, audio è embeddings tutti funzionanu
però di meanzu à elli.
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 di Nymbot stessu, cum'è plugins per a ricerca web, andate in extra_body
in Python è diritta in l'oggettu di richiesta in JavaScript. U nymbot u prezzu
di un oggettu in una risposta hè reply.model_extra["nymbot"] in Python è
reply.nymbot in JavaScript. Librerie chì leggenu u OPENAI_BASE_URL
è OPENAI_API_KEY le variabili d'ambiente ponu esse puntate versu Nymbot solu cù quelle.
SDK di Anthropic
I libreria Anthropic usanu https://nymbot.ai/api cum'è l'URL di base, senza
/v1, perchè elli aghjunghjanu /v1/messages elli stessi. Qualunque mudellu di u catalugiu
funziona, micca solu 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);
Aiutà
Aider parla cù qualsiasi server compatibile cù OpenAI. Impostate l'URL di base è a chìave, è mettete
openai/ fronte à l'ID di u mudellu per ch'Aider sappi quale tipu di servitore hè:
Shell
export OPENAI_API_BASE=https://nymbot.ai/api/v1
export OPENAI_API_KEY=sk-nymbot-...
aider --model openai/anthropic/claude-sonnet-5
Aider pò avvisà chì ùn conosce micca a dimensione di u cuntestu o u prezzu di u mudellu. L'avvisu hè innocu;
--no-show-model-warnings u nasconde.
Open WebUI
In Open WebUI, apre Pannellu d'Amministrazione, dopu Impostazioni, dopu Connessioni, è aghjungi una cunnessione à l'API di OpenAI:
- URL:
https://nymbot.ai/api/v1 - Chjave: a vostra chjave API
Open WebUI ritoglia a lista di i mudelli da l'API, dunque ogni mudellu di chat appare in u so selezionatore.
Quandu u runite in Docker, u stessu pò esse settu cù e variabili d'ambiente
OPENAI_API_BASE_URL è OPENAI_API_KEY.
Open WebUI mantiene i vostri conversazioni nantu à u so servitore proprietariu. Nymbot ùn e stocca micca, ma Open WebUI sì, ovunque u runite.
Oca
Corre goose configure, scegli Configurate i Fornitore, pigghia
OpenAI, è dacci sti valori quandu si dumanda. A stessa cosa pò esse setata in l'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 chjamate i strumenti in quasi ogni passi, dunque scigliete un mudellu cù capabilities.tools in a
lista di i mudelli; nymbot/auto rifiuta i strumenti.
HTTP simplici
Niente hà bisognu di un SDK. Ogni endpoint hè JSON sopra HTTPS, eccettu i caricamenti di file, chì sò forme multipart. Qualsiasi linguaghju o strumentu chì pò fà una richiesta HTTP pò usà l'API:
- Mandate a chìave cum'è
Authorization: Bearer sk-nymbot-…. - Mandate i corpi JSON cù
Content-Type: application/json. - Per u streaming, legge a risposta cum'è eventi mandati dal server; cu cURL, aghjungi
-Nquindi ellu i stampa mancu appena arrivanu. - Leggi u prezzu da u
X-Nymbot-Cost-Satstestata, è mantene uX-Request-Idtestata s'avete bisognu di dumandà nantu à una dumanda.
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);