Base de connaissances Développeurs
Outils et SDK
Tout ce qui peut parler à OpenAI ou Anthropic peut parler à Nymbot. Dans presque tous les cas, il s’agit d’une URL de base, d’une clé et d’un nom de modèle.
Cette page est traduite automatiquement pour plus de commodité. La version originale anglaise est la version qui s’applique.
Chaque configuration ci-dessous nécessite une clé API, faite dans l'application Le feu Le menu (voir
Les clés de feud’un modèle d’identité de
La liste des modèlesLes exemples utilisés
anthropic/claude-sonnet-5 Pour le Pro équilibre. nymbot/auto est le choix moins cher sur le solde standard pour simple chat, mais il ne peut pas appeler des outils, dont Goose a besoin; pour cela, choisissez un modèle de catalogue avec capabilities.tools.
La configuration pour les agents de codage tels que Claude Code, Codex, Cline, Kilo Code et Continue est sur sa propre page : Outils de codage.
Créez une clé séparée pour chaque outil, avec un cap. Les agents de codage font de nombreux appels de modèle pour une tâche, et un cap sur la clé est le moyen le plus simple de savoir combien un outil peut dépenser.
Ouverture du SDK
Les bibliothèques officielles de Python et de JavaScript fonctionnent inchangées. base_url Les compléments de chat, les réponses, les images, l'audio et les embeddings travaillent tous à travers eux.
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);
Les champs de Nymbot, tels que plugins Pour une recherche sur le web, entrez extra_body
en Python et directement dans l'objet de requête en JavaScript. nymbot Objet de coût dans une réponse reply.model_extra["nymbot"] En Python et
reply.nymbot en JavaScript. Bibliothèques qui lisent le OPENAI_BASE_URL
et OPENAI_API_KEY Les variables environnementales peuvent être indiquées sur Nymbot avec celles-ci seules.
Le SDK anthropique
Utilisation des bibliothèques anthropiques https://nymbot.ai/api comme l’URL de base, sans
/v1Parce qu’ils ajoutent /v1/messages Tous les modèles de catalogue fonctionnent, pas seulement 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);
Aideur
Aider parle à n'importe quel serveur compatible OpenAI. Définissez l'URL de base et la clé, puis
openai/ en face du modèle id de sorte que Aider sait quel type de serveur il est:
Shell
export OPENAI_API_BASE=https://nymbot.ai/api/v1
export OPENAI_API_KEY=sk-nymbot-...
aider --model openai/anthropic/claude-sonnet-5
L'assistant peut avertir qu'il ne connaît pas la taille contextuelle ou le prix du modèle.
--no-show-model-warnings Le cacher !
Ouverture du web
Dans Open WebUI, ouvert Panneau AdminAlors réglagesAlors Les connexions, et ajoutez une connexion OpenAI API :
- URL :
https://nymbot.ai/api/v1 - Télécharger votre API Key
Open WebUI lit la liste des modèles à partir de l'API, de sorte que chaque modèle de chat apparaisse dans son sélectionneur. Lors de son exécution dans Docker, la même chose peut être définie avec les variables d'environnement
OPENAI_API_BASE_URL et OPENAI_API_KEY.
Open WebUI conserve vos conversations sur son propre serveur. Nymbot ne les stocke pas, mais Open WebUI le fait, où que vous l'exécutiez.
Goûte
courir goose configureChoisissez Configurer les fournisseursà Pick
Ouverture, et donnez-lui ces valeurs lorsqu'il est demandé. La même chose peut être définie dans l'environnement:
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 appelle des outils à presque chaque étape, alors choisissez un modèle avec capabilities.tools dans la liste des modèles ; nymbot/auto Refus des outils.
Le simple HTTP
Rien n'a besoin d'un SDK. Chaque endpoint est JSON sur HTTPS, à l'exception des téléchargements de fichiers, qui sont des formulaires multiparts.
- Envoyer la clé comme
Authorization: Bearer sk-nymbot-…. - Envoyer des corps JSON avec
Content-Type: application/json. - Pour le streaming, lisez la réponse en tant qu'événement envoyé par le serveur; avec cURL, ajoutez
-NIl les imprime alors qu’ils arrivent. - Consultez le coût de la
X-Nymbot-Cost-SatsHeader, et gardez leX-Request-IdHeader si vous avez besoin de demander une demande.
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);