Passa al contenuto
Torna a Nymbot

Base di conoscenza sviluppatori

Strumenti e SDK

Tutto ciò che può parlare con OpenAI o Anthropic può parlare con Nymbot. In quasi tutti i casi è un URL di base, una chiave e un nome del modello.

Ogni impostazione di seguito richiede una chiave API, realizzata nell'app. Fuoco Il menu (vedi chiavi di fuoco) e un modello di ID da La lista dei modelliGli esempi usati anthropic/claude-sonnet-5 Il Pro per l’equilibrio nymbot/auto è la scelta più economica sul saldo standard per la chat semplice, ma non può chiamare strumenti, che Goose ha bisogno; per questo, scegli un modello di catalogo con capabilities.tools.

La configurazione per agenti di codifica come Claude Code, Codex, Cline, Kilo Code e Continua è sulla propria pagina: Strumenti di codifica.

Ogni strumento ha la sua chiave

Agenti di codifica fanno molte chiamate di modello per una singola attività, e un cappello sulla chiave è il modo più semplice per sapere quanto più uno strumento può spendere.

Apertura SDK

Le biblioteche ufficiali di Python e JavaScript funzionano inalterate. base_url Chat Completions, Risposte, immagini, audio e embeddings tutti lavorano attraverso di loro.

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 propri di Nymbot, come plugins per la ricerca web, vai in extra_body in Python e direttamente nell'oggetto di richiesta in JavaScript. nymbot L'oggetto del costo in una risposta è reply.model_extra["nymbot"] In Python e reply.nymbot in JavaScript. biblioteche che leggono il OPENAI_BASE_URL E OPENAI_API_KEY Le variabili ambientali possono essere indicate su Nymbot con quelle solo.

Il SDK antropico

Le biblioteche antropiche usano https://nymbot.ai/api come URL di base, senza /v1Perché aggiungono /v1/messages Tutti i modelli di catalogo funzionano, non 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);

aiuto

L'assistente parla a qualsiasi server compatibile con OpenAI. Impostare l'URL di base e la chiave e impostare openai/ il modello id in modo che Aider sa che tipo di server è:

Shell

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

L'assistente può avvertire che non conosce le dimensioni contestuali o il prezzo del modello. --no-show-model-warnings Lo nasconde

aperto WEBUI

In Open WebUI, aperto Admin pannelloE poi ImpostazioniE poi Connessioni, e aggiungere una connessione OpenAI API:

  • URL di: https://nymbot.ai/api/v1
  • Key: la chiave API

Open WebUI legge l'elenco dei modelli dall'API, quindi ogni modello di chat appare nel suo pick. Quando viene eseguito in Docker, lo stesso può essere impostato con le variabili ambientali OPENAI_API_BASE_URL E OPENAI_API_KEY.

Nymbot non li memorizza, ma Open WebUI lo fa, ovunque lo esegui.

gozzo

corsa goose configureScegliere Configurare i fornitoridi Pick apriamo, e dargli questi valori quando chiesto. Lo stesso può essere impostato nell'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 chiama strumenti su quasi ogni passo, quindi scegli un modello con capabilities.tools nell’elenco dei modelli; nymbot/auto Rifiuta gli strumenti.

Il semplice HTTP

Niente ha bisogno di un SDK. Ogni endpoint è JSON su HTTPS, ad eccezione dei file caricati, che sono moduli multipart. Qualsiasi lingua o strumento che può fare una richiesta HTTP può utilizzare l'API:

  • Invia la chiave come Authorization: Bearer sk-nymbot-….
  • Invia corpi JSON con Content-Type: application/json.
  • Per lo streaming, leggere la risposta come eventi inviati dal server; con cURL, aggiungere -N Quindi li imprime quando arrivano.
  • Leggi il costo della X-Nymbot-Cost-Sats Header, e mantenere il X-Request-Id Header se avete bisogno di chiedere una richiesta.

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