Saltar al contenido
Volver a Nymbot

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.

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.

Dale a cada herramienta su propia clave

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 -N Así que los imprime a medida que llegan.
  • Lea el costo de la X-Nymbot-Cost-Sats Header, y mantenga el X-Request-Id Header 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);