Jya ku bikubiyemo
Kongera muri Nymbot

Ubumenyi shingiro Abakora porogaramu

Ibikoresho na SDKs

Icyo ari cyo cyose gishobora kuvugana na OpenAI cyangwa Anthropic gishobora kuvugana na Nymbot. Mu bihe birenze byose ni URL y'ibanze, urufunguzo (key), n'izina ry'icyogajuru (model name).

Imiyoboro yo hasi yose ikenera umukandida wa API, wakozwe muri porogaramu API menu (reba Amakuru y'ibanga ya API), n'ideli ya mofeli ivuye kuri urutonde rw'amashushoIngero zikoresha anthropic/claude-sonnet-5 ku mubare wa Pro. nymbot/auto ni yo ihitamo rito ku bw'uburyo bwa standard bwo kuganira bisanzwe, ariko ntishobora gukoresha ibikoresho (tools), ibyo Goose akenera; ku bijyanye na byo, hitamo model iri muri catalog ifite capabilities.tools.

Itegura ry'abakozi b'imikoranire ya coding nk'baka Claude Code, Codex, Cline, Kilo Code na Continue riri ku urupapuro ruruteye: ibikoresho byo gukora coding.

Haherera buri gikoresho urugingo rwayo rwihariye

Tangira fungura urugero rw'urugero rw'ibintu buri kintu kigira ikintu cyihariye, ufite n'urugero rw'ingaruka. Abagenzi b'imikoranire y'imashini (Coding agents) bakora ubuhingi bw'uburyo bwo guhamagara imashini (model calls) ku kazi kamwe, kandi kugira urugero rw'ingaruka ku kintu (cap on the key) ni uburyo bworoshye bwo kumenya urugero rwisanzwe ibintu bishobora gukoresha. Iyo ibintu byakozwe nabi, banamo urugero rw'ibintu (key), kandi ibindi ntibihinduka.

OpenAI SDK

Amashirihari ya Python na JavaScript asanzwe akora nta nyanja. Point base_url kuri Nymbot hanyuma uhawe urufunguzo rwawe. Chat Completions, Responses, images, audio n'embeddings byose bikora binyuze kuri zo.

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

Imirongo ya Nymbot ubwayo, nk'uko n'ubundi plugins ku ishakashakashisho rya web, jya muri extra_body muri Python no mu buryo butaziguye muri request object muri JavaScript. Iyo nymbot igiciro ikintu kiri mu gisubizo ni reply.model_extra["nymbot"] mu Python na reply.nymbot mu JavaScript. Amashirahamwe akoresha uburyo bwo gusoma OPENAI_BASE_URL na OPENAI_API_KEY imikoresho y'aho amakuru ahagarariye imiterere y'ikibanza (environment variables) ishobora kwerekeza kuri Nymbot iyo ikoreshejwe iyo mivugire gusa.

Anthropic SDK

Amajura ya Anthropic akoresha https://nymbot.ai/api nk'icyerekezo cya mbere cya URL, nta /v1, kuko barongera /v1/messages ubwabo. Agateganyanyomboni kera kose kora, si Claude gusa.

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

Gufasha

Aider ivugana na serivisi zose zimeze nk'OpenAI. Shyira URL y'ibanze n'imfunguzo, hanyuma ushyire openai/ imbere y'idimension ya model kugira ngo Aider izire kuki ubwoko bw'server ari bwo:

Shell

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

Aider ashobora kwibutsa ko itazi ingano y'amakuru (context size) cyangwa igiciro cy'icyo kintu. Irwo bwibutso ntiribera ikibazo; --no-show-model-warnings biyihisha.

Open WebUI

Muri Open WebUI, fungura Urwego rw'ubuyobozi, none Imiyoboro, none Uhuza, kandi ushyiremo ikubunganya rya OpenAI API:

  • URL: https://nymbot.ai/api/v1
  • Ifunguzo: funguzo yawe ya API

Open WebUI isoma urutonde rw'imimodeli binyuze muri API, bityo buri mashi yose yo kuganira agaragara mu gihitamo cyayo. Iyo uyikoresheje muri Docker, ibyo bishobora gushyirwa mu nkingi z'imikorere (environment variables) OPENAI_API_BASE_URL na OPENAI_API_KEY.

Open WebUI iba itunga ibiganiro byawe kuri serivure yayo bwite. Nymbot ntabitunga, ariko Open WebUI ibikora, aho cyose uyikoresha.

Inyoni y'inkoko

Genda goose configure, hitamo Shyiraho uburyo bwo guhagararira abaterambyi, hitamo OpenAI, hanyuma ugihe ubibaza ukiyubakireho izi nyuguti. Ibyo bishobora no gushyirwa mu miterere y'aho bikorera:

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 ikoresha ibikoresho kuri buri ntambwe, bityo hitamo imiterere ifite capabilities.tools mu rutonde rw'imimodeli; nymbot/auto akeretse ibikoresho.

HTTP isanzwe

Nta kintu gikenera SDK. Buri kagaraza (endpoint) ryose ni JSON binyuze muri HTTPS, uretse izo zikoreshwa mu kuzuza inyandiko (file uploads), zikoresha multipart forms. Ururimi cyangwa igikoresho icyo ari cyo cyose gishobora gukora ubusabe bwa HTTP rishobora gukoresha iyi API:

  • Otera urugero nk'uri Authorization: Bearer sk-nymbot-….
  • Ogera ibice bya JSON ubitse na Content-Type: application/json.
  • Ku bw'itumanaho ry'imivugire (streaming), soma igisubizo nk'ibintu bitoroshye bituruka kuri seriveri (server-sent events); ukoresheje cURL, shyiramo -N nuko ibyandika nk'uko bije.
  • Soma igiciro kuva kuri X-Nymbot-Cost-Sats umutwe, kandi ucyubakire X-Request-Id umutwe niba waba ukeneye kubaza ku kyamuhamye.

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