Sciobazo Programistoj
Iloj kaj SDK-oj
Ĉio, kio povas paroli kun OpenAI aŭ Anthropic, povas paroli kun Nymbot. Preskaŭ en ĉiu kazo temas pri baza URL, ŝlosilo kaj modelnomo.
Ĉi tiu paĝo estas maŝintradukita por komforto. La angla originalo estas la versio kiu validas.
Ĉiu agordo malsupre bezonas API-ŝlosilon, kreitan en la aplikaĵo de API menuo (vidi
API-ŝlosiloj), kaj modelo-identigilo de
la listo de modeloj. La ekzemploj uzas
anthropic/claude-sonnet-5 sur la Pro-ekvilibro. nymbot/auto estas la
malpli multekosta elekto por la norma ekvilibro por simpla babado, sed ĝi ne povas voki ilojn, kiujn Goose
bezonas; por tio, elektu katalogan modelon kun capabilities.tools.
Agordo por kodaj agentoj kiel Claude Code, Codex, Cline, Kilo Code kaj Continue estas sur sia propra paĝo: programistaj iloj.
Kreu apartan ŝlosilon por ĉiu ilo, kun limigo. Kodaj agentoj faras multajn modelvokojn por unu tasko, kaj limigo de la ŝlosilo estas la plej simpla maniero scii la maksimumon, kiun ilo povas elspezi. Se ilo maloperas, revoku ĝian ŝlosilon kaj nenio alia estas trafata.
OpenAI SDK
La oficialaj Python kaj JavaScript bibliotekoj funkcias sen ŝanĝo. Ponto base_url at
Nymbot kaj pasigu vian ŝlosilon. Chat Completions, Responsoj, bildoj, aŭdio kaj enbedigoj ĉiuj funkcias
tra ili.
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);
La propraj kampoj de Nymbot, kiel ekzemple plugins por retserĉo, eniru extra_body
en Python kaj rekte en la peto-objekton en JavaScript. La nymbot kostujo
objekto en respondo estas reply.model_extra["nymbot"] en Python kaj
reply.nymbot en JavaScript. Bibliotekoj, kiuj legas la OPENAI_BASE_URL
kaj OPENAI_API_KEY medio-variables povas esti direktitaj al Nymbot per tiuj sole.
Anthropic SDK
La Anthropic-bibliotekoj uzas https://nymbot.ai/api kiel la bazaj URL, sen
/v1, ĉar ili aldonas /v1/messages mem si mem. IAny kataloga modelo
funkcias, ne nur 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);
Helpi
Aider parolas kun iu ajn OpenAI-kompatibla servilo. Agordu la bazan URL-on kaj ŝlosilon, kaj metu
openai/ antaŭ la modelo-identigilo tiel ke Aider sciu kion specon de servilo ĝi estas:
Shell
export OPENAI_API_BASE=https://nymbot.ai/api/v1
export OPENAI_API_KEY=sk-nymbot-...
aider --model openai/anthropic/claude-sonnet-5
Aider eble avertos, ke ĝi ne scias la modelan kuntekstan grandecon aŭ prezon. La avertado estas senharmena;
--no-show-model-warnings kaŝas ĝin.
Malfermita Ret-uzantinterfaco
En Open WebUI, malfermu Administra Panelo, tiam Agordoj, tiam Konektadoj, kaj aldonu OpenAI API konekton:
- URL:
https://nymbot.ai/api/v1 - Ŝlosilo: via API-ŝlosilo
Open WebUI legas la modelliston de la API, do ĉiu babila modelo aperas en ĝia elektilo. Kiam oni rulas ĝin en Docker, la sama afero povas esti agordita per la medio-variabloj.
OPENAI_API_BASE_URL kaj OPENAI_API_KEY.
Open WebUI konservas viajn konversaciojn en sia propra servilo. Nymbot ne stokoas ilin, sed Open WebUI stes, kie ajn vi rulumas ĝin.
Gegego
Kursu goose configure, elektu Konfiguri Provizantojn, elektu
OpenAI, kaj donu al ĝi tiujn valorojn kiam petata. La sama povas esti agita en la
medio:
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 vokas ilojn ĉe preskaŭ ĉiu paŝo, do elektu modelon kun capabilities.tools en la
modelaro; nymbot/auto rifuzas ilojn.
Nura HTTP
Neniu bezonas SDK. Ĉiu fino estas JSON super HTTPS, krom la dosierŝarĝoj, kiuj estas multipartaj formularoj. Ĉiu lingvo aŭ ilo, kiu povas fari HTTP-peton, povas uzi la API:
- Sendu la ŝlosilon kiel
Authorization: Bearer sk-nymbot-…. - Sendu JSON-korpojn kun
Content-Type: application/json. - Por fluigo, legu la respondon kiel servon-senditajn eventojn; per cURL, aldonu
-Ntiel ĝi presas ilin kiel ili alvenas. - Legu la koston el la
X-Nymbot-Cost-Satsheadero, kaj konservu laX-Request-Idtitolo se vi eble bezonos demandi pri peto.
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);