Treci la conținut
Înapoi la Nymbot

Baza de cunoștințe Dezvoltatorii

Instrumente și SDK-uri

Orice lucru care poate vorbi cu OpenAI sau Anthropic poate vorbi cu Nymbot. În aproape fiecare caz, este un URL de bază, o cheie și un nume de model.

Fiecare setare de mai jos are nevoie de o cheie API, realizată în aplicația focului Meniul (a se vedea Chei de foc) și un model de ID de la Lista modeluluiExemplele folosite anthropic/claude-sonnet-5 În favoarea echilibrului. nymbot/auto este opțiunea mai ieftină pe soldul standard pentru chat-ul simplu, dar nu poate apela la instrumente, de care are nevoie Goose; pentru aceasta, alegeți un model de catalog cu capabilities.tools.

Setarea pentru agenți de codificare, cum ar fi Claude Code, Codex, Cline, Kilo Code și Continuă este pe pagina sa proprie: Instrumente de codificare.

Fiecare instrument are propria cheie

Agenții de codificare fac mai multe apeluri de model pentru o singură sarcină, iar un cap pe cheie este cel mai simplu mod de a ști cât de mult poate cheltui un instrument.

Deschideți SDK

Bibliotecile oficiale Python și JavaScript funcționează neschimbat. base_url Chat Completări, Răspunsuri, imagini, audio și încorporări toate lucrează prin ele.

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

câmpurile proprii ale lui Nymbot, cum ar fi plugins Pentru a căuta pe site, intră extra_body în Python şi direct în obiectul de solicitare în JavaScript. nymbot Obiectul de cost în răspuns este reply.model_extra["nymbot"] În Python și reply.nymbot în JavaScript. Biblioteci care citesc OPENAI_BASE_URL şi OPENAI_API_KEY Variabilele de mediu pot fi indicate pe Nymbot numai cu acestea.

Antropologie SDK

Bibliotecile antropice folosesc https://nymbot.ai/api ca URL de bază, fără /v1Pentru că se adaugă /v1/messages Orice model de catalog funcționează, nu doar 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);

Ajutor

Asistentul se adresează oricărui server compatibil cu OpenAI. Setați URL-ul de bază și cheia și puneți openai/ în fața modelului id, astfel încât Aider știe ce fel de server este:

Shell

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

Asistentul poate avertiza că nu cunoaște dimensiunea contextului sau prețul modelului. --no-show-model-warnings Îl ascundeți

Deschiderea webului

În Open WebUI, Open Panoul adminApoi setăriApoi conexiuni, și adăugați o conexiune OpenAI API:

  • Urlă : https://nymbot.ai/api/v1
  • Etichetă: API Key

Open WebUI citește lista de modele din API, astfel încât fiecare model de chat să apară în selectorul său. OPENAI_API_BASE_URL şi OPENAI_API_KEY.

Open WebUI păstrează conversațiile pe propriul server. Nymbot nu le stochează, dar Open WebUI o face, oriunde o rulați.

Goşă

Război goose configurealegeţi Configurarea furnizorilorPicături deschisă, și dați-i aceste valori atunci când vi se cere. Același lucru poate fi setat în mediu:

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 cheamă instrumente la aproape fiecare pas, deci alegeți un model cu capabilities.tools în lista de modele; nymbot/auto Refuzul de instrumente.

Simplu HTTP

Nimic nu are nevoie de un SDK. Fiecare punct final este JSON peste HTTPS, cu excepția fișierelor încărcate, care sunt formulare cu mai multe părți. Orice limbă sau instrument care poate face o cerere HTTP poate utiliza API-ul:

  • Trimite cheia ca Authorization: Bearer sk-nymbot-….
  • Trimiteți corpuri JSON cu Content-Type: application/json.
  • Pentru streaming, citiți răspunsul ca eveniment trimis de server; cu cURL, adăugați -N Așa că le imprimă pe măsură ce ajung.
  • Citiți costul de la X-Nymbot-Cost-Sats Header, și să păstreze X-Request-Id Header dacă este necesar să solicitați o cerere.

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