Base de coneixement Desenvolupadors
Eines i SDK
Qualsevol cosa que pugui parlar amb OpenAI o Anthropic pot parlar amb Nymbot. En gairebé tots els casos és una URL de base, una clau i un nom de model.
Aquesta pàgina està traduïda automàticament per comoditat. L'original en anglès és la versió que s'aplica.
Cada instal·lació a continuació necessita una clau d'API, feta a l'aplicació. El foc El menú (veure
Claus de foc), i un model d'identificació de
La llista de modelsEls exemples utilitzats
anthropic/claude-sonnet-5 A favor de l’equilibri. nymbot/auto és l'opció més barata en l'equilibri estàndard per a xat simple, però no pot trucar a eines, que Goose necessita; per a això, tria un model de catàleg amb capabilities.tools.
La configuració per a agents de codificació com Claude Code, Codex, Cline, Kilo Code i Continue està en la seva pròpia pàgina: Eines de codificació.
Els agents de codificació fan moltes trucades de model per a una tasca, i una tapa a la clau és la manera més senzilla de saber el màxim que una eina pot gastar.
Obre el SDK
Les biblioteques oficials de Python i JavaScript funcionen sense canvis. base_url a Nymbot i passar la seva clau. Completions de xat, respostes, imatges, àudio i embeddings tots treballen a través d'ells.
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);
Els camps propis de Nymbot, com plugins Per accedir a la web, entreu extra_body
en Python i directament a l'objecte de la sol·licitud en JavaScript. nymbot Objecte de cost en una resposta reply.model_extra["nymbot"] En Python i
reply.nymbot en JavaScript. Biblioteques que llegeixen el OPENAI_BASE_URL
i OPENAI_API_KEY Les variables ambientals es poden apuntar a Nymbot amb aquelles soles.
Antropologia SDK
Les biblioteques antropogèniques utilitzen https://nymbot.ai/api com a URL de base, sense
/v1Perquè afegeixen /v1/messages Qualsevol model de catàleg funciona, no només 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);
Ajuts
L'ajudant parla a qualsevol servidor compatible amb OpenAI. Defineix l'URL de base i la clau, i posa
openai/ davant del model id de manera que Aider sap quin tipus de servidor és:
Shell
export OPENAI_API_BASE=https://nymbot.ai/api/v1
export OPENAI_API_KEY=sk-nymbot-...
aider --model openai/anthropic/claude-sonnet-5
L'ajudant pot advertir que no coneix la mida del context o el preu del model.
--no-show-model-warnings Ho amaguen
Obert a la web
En Open WebUI, obert Panell d'adminLlavors ConfiguracióLlavors Connexions, i afegir una connexió OpenAI API:
- La URL:
https://nymbot.ai/api/v1 - Títol: La teva clau
Open WebUI llegeix la llista de models de l'API, de manera que cada model de xat apareix en el seu picker.
OPENAI_API_BASE_URL i OPENAI_API_KEY.
Open WebUI manté les vostres converses en el seu propi servidor. Nymbot no les emmagatzema, però Open WebUI ho fa, sigui on l'executeu.
gossos
Córrer goose configureEscolliu Configuració de proveïdorsEl pic
obert, i donar-li aquests valors quan se li demani. El mateix es pot establir en l'entorn:
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 crida eines en gairebé cada pas, així que tria un model amb capabilities.tools a la llista de models; nymbot/auto Rebutja els instruments.
Línia HTTP
Res necessita un SDK. Cada punt final és JSON sobre HTTPS, a excepció de les càrregues de fitxers, que són formularis multiparts. Qualsevol idioma o eina que pugui fer una sol·licitud HTTP pot utilitzar l'API:
- Envia la clau com
Authorization: Bearer sk-nymbot-…. - Enviar cossos JSON amb
Content-Type: application/json. - Per a streaming, llegiu la resposta com a esdeveniments enviats pel servidor; amb cURL, afegiu
-NAixí que els imprimeix quan arriben. - Llegeix el cost de la
X-Nymbot-Cost-SatsHeader, i mantenir elX-Request-IdHeader si necessiteu demanar una sol·licitud.
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);