base de conocimientos desarrolladores
Herramientas y SDK
Cualquier cosa que pueda hablar con OpenAI o Anthropic puede hablar con Nymbot. En casi todos los casos es una URL base, una clave y un nombre de modelo.
Esta página está traducida automáticamente para mayor comodidad. La versión original en inglés es la que se aplica.
Cada configuración a continuación necesita una clave de API, realizada en la aplicación. Fuego El menú (ver
Llaves de fuego), y un modelo de identificación de
La lista de modelosLos ejemplos utilizados
anthropic/claude-sonnet-5 En el Pro Balance. nymbot/auto es la opción más barata en el balance estándar para el chat simple, pero no puede llamar herramientas, que Goose necesita; para ello, elija un modelo de catálogo con capabilities.tools.
La configuración de agentes de codificación como Claude Code, Codex, Cline, Kilo Code y Continue está en su propia página: Herramientas de codificación.
Los agentes de codificación hacen muchas llamadas de modelo para una tarea, y una tapa en la clave es la forma más sencilla de saber lo más que una herramienta puede gastar.
Inicio SDK
Las bibliotecas oficiales de Python y JavaScript funcionan sin cambios. base_url Chat Completiones, Respuestas, imágenes, audio y embeddings todos trabajan a través de ellos.
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);
Los campos propios de Nymbot, como plugins Para la búsqueda en la web, ingrese extra_body
en Python y directamente en el objeto de solicitud en JavaScript. nymbot Objeto de coste en una respuesta reply.model_extra["nymbot"] En Python y
reply.nymbot en JavaScript. bibliotecas que leen el OPENAI_BASE_URL
y OPENAI_API_KEY Las variables ambientales se pueden apuntar en Nymbot con las únicas.
Antropología SDK
Las bibliotecas antropogénicas utilizan https://nymbot.ai/api como la URL de base, sin
/v1Porque se añaden /v1/messages Cualquier modelo de catálogo funciona, no 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);
Ayuda
El asistente habla con cualquier servidor compatible con OpenAI. Configure la URL de base y la clave, y coloque
openai/ en frente del modelo id para que Aider sepa qué tipo de servidor es:
Shell
export OPENAI_API_BASE=https://nymbot.ai/api/v1
export OPENAI_API_KEY=sk-nymbot-...
aider --model openai/anthropic/claude-sonnet-5
El asistente puede advertir que no conoce el tamaño de contexto o el precio del modelo.
--no-show-model-warnings y ocultarlo.
Abierto web
En Open WebUI, abierto Panel de adminY entonces ConfiguracionesY entonces Conexión, y agregue una conexión OpenAI API:
- La URL:
https://nymbot.ai/api/v1 - La clave de tu API
Open WebUI lee la lista de modelos de la API, por lo que cada modelo de chat aparece en su picker.
OPENAI_API_BASE_URL y OPENAI_API_KEY.
Open WebUI guarda sus conversaciones en su propio servidor. Nymbot no las almacena, pero Open WebUI lo hace, dondequiera que lo ejecute.
Gozo
Corriendo goose configurey elige Configuración de proveedores¡Pick
abiertas, y darle estos valores cuando se le pida. Lo mismo se puede establecer en el entorno:
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 llama herramientas en casi todos los pasos, así que elija un modelo con capabilities.tools en la lista de modelos; nymbot/auto rechaza las herramientas.
Soluciones HTTP
Nada necesita un SDK. Cada punto final es JSON sobre HTTPS, excepto las cargas de archivos, que son formularios multipartes. Cualquier lenguaje o herramienta que pueda hacer una solicitud HTTP puede usar la API:
- Enviar la clave como
Authorization: Bearer sk-nymbot-…. - Enviar cuerpos JSON con
Content-Type: application/json. - Para la transmisión, lea la respuesta como eventos enviados por el servidor; con cURL, añade
-NAsí que los imprime a medida que llegan. - Lea el costo de la
X-Nymbot-Cost-SatsHeader, y mantenga elX-Request-IdHeader si es necesario preguntar sobre una solicitud.
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);