Ir ao contido
Volver a Nymbot

Base de coñecemento desenvolvedores

Ferramentas e SDK

Calquera cousa que poida falar con OpenAI ou Anthropic pode falar con Nymbot. En case todos os casos é unha URL de base, unha clave e un nome de modelo.

Cada instalación a continuación necesita unha clave de API, feita na aplicación. fogueira Menú (ver chaves de lume), e un modelo de ID de A listaxe de modelosOs exemplos de uso anthropic/claude-sonnet-5 A favor do equilibrio. nymbot/auto é a opción máis barata no saldo estándar para chat simple, pero non pode chamar ferramentas, que Goose necesita; para iso, elixe un modelo de catálogo con capabilities.tools.

A configuración para axentes de codificación como Claude Code, Codex, Cline, Kilo Code e Continue está na súa propia páxina: Ferramentas de codificación.

Dar a cada ferramenta a súa propia chave

Os axentes de codificación fan moitas chamadas de modelo para unha tarefa, e unha tapa na clave é a forma máis sinxela de saber o máximo que unha ferramenta pode gastar.

Inicio SDK

As bibliotecas oficiais de Python e JavaScript funcionan sen cambios. base_url Chat Completions, Respostas, imaxes, audio e embeddings todo o traballo a través deles.

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);

campos propios de Nymbot, como plugins Para buscar na web, vaia extra_body en Python e directamente ao obxecto de solicitude en JavaScript. nymbot Obxecto de custo nunha resposta reply.model_extra["nymbot"] En Python e reply.nymbot en JavaScript. bibliotecas que lean o OPENAI_BASE_URL e OPENAI_API_KEY As variables ambientais pódense apuntar a Nymbot con aquelas soas.

Antropoloxía SDK

As bibliotecas antropolóxicas utilizan https://nymbot.ai/api como a base URL, sen /v1porque se engade /v1/messages Calquera modelo de catálogo funciona, non 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);

Axudas

O axudante fala con calquera servidor compatible con OpenAI. Configure a URL básica e a clave, e coloque openai/ diante do modelo id para que Aider saiba que tipo de servidor é:

Shell

export OPENAI_API_BASE=https://nymbot.ai/api/v1
export OPENAI_API_KEY=sk-nymbot-...
aider --model openai/anthropic/claude-sonnet-5

O axudante pode advertir que non coñece o tamaño de contexto ou o prezo do modelo. --no-show-model-warnings que o esconda.

Abre unha web

En Open WebUI, abre Admin PáxinaEntón configuraciónsEntón conexións, e engade unha conexión OpenAI API:

  • A súa URL: https://nymbot.ai/api/v1
  • A túa chave de API

Open WebUI le a lista de modelos da API, de xeito que cada modelo de chat aparece no seu selector. Cando se executa en Docker, pódese definir o mesmo coas variables ambientais OPENAI_API_BASE_URL e OPENAI_API_KEY.

Nymbot non os almacena, pero Open WebUI fai, onde queira que o execute.

Gozo

Rúa goose configureEscolle unha Configuración de provedoresPick máis abriño, e dándolle estes valores cando se lle solicite.O mesmo pode ser establecido no 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 chama ferramentas en case todos os pasos, así que elixe un modelo con capabilities.tools na listaxe de modelos; nymbot/auto Rexeitar as ferramentas.

Páxina HTTP

Nada necesita un SDK. Cada punto final é JSON sobre HTTPS, agás as cargas de ficheiros, que son formularios multipartes. Calquera linguaxe ou ferramenta que poida facer unha solicitude HTTP pode usar a API:

  • Envía a clave como Authorization: Bearer sk-nymbot-….
  • Enviar corpos JSON con Content-Type: application/json.
  • Para a transmisión, lea a resposta como eventos enviados polo servidor; con cURL, engade -N Así que os imprime cando chegan.
  • Escribe o custo da X-Nymbot-Cost-Sats cabaleiro, e manteña a X-Request-Id Header se precisas preguntar sobre unha solicitude.

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);