Bilim binýady Programmistler
Chat, Jogaplar we Hatlar
Modelden bir zat sora maglymatyň üç dürli formatda, müşderileriň eýýäm ulanýan üç dürli usulynda sora maglymaty, ählisi hem birmeňzeş modellerde işleýär we birmeňzeş usulda hasaplanýar.
Bu sahypa amatlylyk üçin maşyn terjime edilýär. Iňlis asyl nusgasy ulanylýan wersiýa.
Chat Completions
OpenAI söhbetdeşlik formaty we deýaly ähli gurallar tarapyndan goldanylýan format. Häzirki çaklaşygy iberiň we indiki habary yzyna alyň.
POST https://nymbot.ai/api/v1/chat/completions — API açary gerek.
Diňe model we messages talap edilýär. Saýlanan model tarapyndan kabul edilmeýän nusga parametri ýalňyşlyk bermezden aýrylýar, şonuň üçin bir sany sorat gövdesi ähli modeller üçin işleýär. Model sanawy her bir modeliň supported_parametersTaşlanýan däl-de, ret edilýän zatlar — modeliň hiç zat edip bilmeýän ähli zatlarydyr: görmegi bilmeýän model üçin suratlar, ony çaýyp bilmeýän model üçin gurallar.
| Meýdan | Görüş | Talap edilýär | Beýany |
|---|---|---|---|
model | ýazgy | Hawa | nymbot/auto (ýa auto) Nymbot-yň standart balansynda ugurlandyrmasy üçin ýa-da şu ýaly katalog model ID-si üçin: anthropic/claude-sonnet-5 Pro balansynda. Programmanyň gysga atlary we lakamlary hem kabul edilýär. "a" bilen gutaryp biler goşulma. |
messages | massiw | Hawa | Söhbet. Roller system, developer (system hökmünde kabul edildi), user, assistant we tool. Mazmun setir ýa-da ... sanawy bolup biler text we image_url bölekler; diňe ulanyjy habarlarynda suratlar. input_audio we faýl bölekleri ret edildi. |
stream | boolean | Ýok | Jogaby ýazylan görnüşinde iberiň. Seret strýming. |
stream_options | predmet | Ýok | {"include_usage": true} token sanlary we bahasy bilen iň soňky bölegi goşýar. |
max_tokensmax_completion_tokens | bitin san | Ýok | Ýazmak üçin iň köp tokenler. Eger has ýokary bolsa, modeliň maksimum derejesine düşürildi. Şeýle hem, balansiňizden näçe mukdaryň saklanýandygyny kesgitleýär, şonuň üçin kiçi san başlamak üçin has az kredit talap edýär. |
temperaturetop_p | san | Ýok | Surtlylyk gözegçiligi: temperature 0-dan 2-ä çenli, top_p 0-dan 1-e çenli. |
stop | string ýa-da array | Ýok | Jogaby tamamlaýan tekst: bir setir ýa-da iň köp 4 setir, her biri iň köp 256 belgiden ybarat. Ulanylmaýar nymbot/auto. |
seed | bitin san | Ýok | Model munuň üçin mümkinçilik berýän ýerlerde, gaýtalanýan nusga almak üçin. |
presence_penaltyfrequency_penalty | san | Ýok | Gaýtalanma gözegçilikleri, her biri -2-den 2-ä çenli. |
response_format | predmet | Ýok | {"type": "json_object"} ýa-da {"type": "json_schema", "json_schema": {…}}, model ony goldasa. Ulanylmaýar nymbot/auto. |
toolstool_choiceparallel_tool_calls | massiw, setir ýa-da obýekt, boolean | Ýok | Funksiýany çagyrmak. Seret gurallary çagyrmaklar. A web_search gural işe düşýär web gözlegIň köp 128 gural we 512 KB kesgitleme, iň köp 64 derejeli içki derejeler; köpüsi bolsa 400. |
reasoning_effortreasoning | string, object | Ýok | "minimal", "low", "medium" ýa-da "high", ýa-da {"effort": "high"}. "none" ýa-da {"enabled": false} ol öçürýär. Gör Pikir ýöretme. |
plugins | massiw | Ýok | [{"id": "web", "max_results": 5}] elmydama ilki internetden gözleýär. 10-a çenli netije. |
n | bitin san | Ýok | Diňe 1. Başga zat bolsa gaýtarylar 400. |
logit_biasusermetadata | objekt, string, objekt | Ýok | Kabul edildi we dowam etdirilmedi. logit_bias maksimum 300 token ID-sini -100-den 100-e çenli sanlara öwürýär; user iň azyndan 256 simwol; metadata iň köp 16 sany setir bahany saklaýar, açarlary 64 karaktere çenli we bahalary 512-e çenli. |
Jogap adaty chat.completion, bahasy bilen usage.cost
(dollarda) we ...-da/de nymbot predmet. model resolw edilen model ID-dir,
şonuň üçin gysga at doly görnüşde yzyna gaýdýar. Eger model jogap bermezden ozal pikirlendirise, onuň
pikir ýöretmesi şunda message.reasoning_content, jogabyň aýry.
Jogap
{
"id": "chatcmpl-5f1c0a9e27d84b3c",
"object": "chat.completion",
"created": 1790726400,
"model": "anthropic/claude-sonnet-5",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A Lightning invoice is a one-time payment request..."
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 1240,
"completion_tokens": 380,
"total_tokens": 1620,
"prompt_tokens_details": { "cached_tokens": 0 },
"completion_tokens_details": { "reasoning_tokens": 0 },
"cost": 0.01895
},
"nymbot": {
"balance": "pro",
"charged_credits": 0.162,
"charged_sats": 16.2,
"balance_credits": 412.425,
"balance_sats": 41242.5
}
}
finish_reason gelen maglumatlara esaslanýar, sebäbi üpjünçiler ony dürli görnüşde habar berýärler: tool_calls model gurallary soranyňda, length haçan
jogap rugsat berlen ähli tokenleri ulandygynda (ýa-da model olaryň ählisini pikirlenmäge sarp etdi we hiç hili
jogap ýazmady), content_filter üpjünçi ret etmekde, we stop
başga ýagdaýda. usage.completion_tokens_details.reasoning_tokens elmydama 0: gizlin
pikir ýörediş tokenleri hasaplanýar we tölenilýär, completion_tokens.
| Status | Haçan |
|---|---|
400 | Ýok model ýa-da messages (missing_required_parameter); audio ýa-da faýl bölegi, ýa-da olary görüp bilmeýän model üçin suratlar (unsupported_content); 20-den köp surat (too_many_images); nätapgyy parametriniň ýalňyş görnüşli ýa-da diapazondan daşary bolmagy (invalid_value); açyk däl surat linki (invalid_image_url); olary çagyryp bilmeýän modeldäki gurallar (unsupported_tool); n 1-den başga; a :thinking akyl ýetirip bilmeýän model üçin goşulýan goşulma (model_not_found); ýa-da provayder soragy ret etdi (upstream_rejected). |
402 | Modeliň sarp edýän balansynyň möçberi saklanan möçümi ýetirip bilmeýär. |
403 | Iň erbet ýagdaý açaryň gaby bilen gabat gelmeýär (key_limit_reached). Aşakly max_tokens ýa-da çägi ýokarlandyryň. |
404 | Şol at bilen model ýok (model_not_found). |
429 | Açar hyzmatynyň çäklendirilme derejesi ýa-da üpjünçiniň (upstream_rate_limited). |
502, 503 | Üpjün ediji ýalňyşlyk goýdy (upstream_error) ýa-da aşa ýüklenen (upstream_overloaded, bilen Retry-After). Tertip ediji synanyşyk üçin hasap sormadyk bolsa, hiç zat tölenilmeýär. |
Her bir endpointiň umumy ulanýan status kodlary aşakda sanalýar ýalňyşlyklar.
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": "system", "content": "Answer in one short paragraph."},
{"role": "user", "content": "What is a Lightning invoice?"}
],
"max_tokens": 400
}'
Python
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": "system", "content": "Answer in one short paragraph."},
{"role": "user", "content": "What is a Lightning invoice?"},
],
max_tokens=400,
)
print(reply.choices[0].message.content)
print(reply.usage.cost)
JavaScript
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: "system", content: "Answer in one short paragraph." },
{ role: "user", content: "What is a Lightning invoice?" },
],
max_tokens: 400,
});
console.log(reply.choices[0].message.content);
console.log(reply.usage.cost);
Strýming
Bilelikde "stream": true jogap model ony ýazyp durka server tarapyndan iberilýän wakalar (server-sent events) görnüşinde gelýär. Her waka bir chat.completion.chunk üstünde data: setir, we
akym şular bilen gutarýar data: [DONE]. Netije pikir ýörmek arkaly gelýär
delta.reasoning_content, jogaby delta.content.
Takmynan 100 sekuntdan köp wagt aljak islendik zady, meselem, uzyn jogaby ýa-da uly bir zady akymly görnüşde berip bilersiňiz
max_tokens ýa-da mantiq modeli. Strim edilmeýän sorag, jogap doly tamamlanýança hiç zat ibermez we siziň bilen Nymbot arasyndaky tor takmynan 100 sekundyň geçmeginden soň boş duran birikmäni ýapyp biler; model ýene-de işini tamamlaýar we ýazanlary üçin töleg hasaplanýar, ýöne jogap ýitirilýär. Strim "keep-alive" signallaryny iberýär, şonuň üçin model ýazýan wagtyna çenli birikme açyk galýar.
Akym
data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null}]}
data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[{"index":0,"delta":{"content":"A Lightning invoice"},"finish_reason":null}]}
: keep-alive
data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[],"usage":{"prompt_tokens":1240,"completion_tokens":380,"total_tokens":1620,"cost":0.01895},"nymbot":{"balance":"pro","charged_credits":0.162,"charged_sats":16.2,"balance_credits":412.425,"balance_sats":41242.5}}
data: [DONE]
- Başlanýan setirler
:model pikirlenip durka, her 15 sekundyň birinde iberilýän keep-alive kommentleri. SSE klientleri olary süzüp geçýärler. - Soraň
"stream_options": {"include_usage": true}ýokardaky soňky bölegi almak üçin, boşchoices, token sanlary, bahasy wenymbotpredmet. - Töleg akym tamamlanandan soň hasaplanýar. Eger baglanyşygy wagtyndan öň ýapsaňyz, model duruzulmaýar: Nymbot token sanyny almak üçin üpjünçiniň akymyny 25 sekunda çenli okap dowam edýär we siz üpjünçiniň habar berýän möçberini töleýärsiňiz. Şol san bolmasa, töleg siziň girizýän maglumatyňyzdan we ýazylanlardan, şeýle hem logiki pikirlenýän model üçin ähli çykyş rugsatlandyryşyndan çaklamalar arkaly hasaplanýar.
- Birinji bölekden öňki ýalňyşlyk, mysal üçin
401ýa-da402, stream däl-de, status kody bilen adatdar JSON görnüşinde yzyna gelýär. Stream başlan ýerden soňky ýalňyşlyk soňky görnüşde gelýärdata: {"error": {…}}därpe, we strim bolmazdan gutarýar[DONE]. - Guralar bilen degişli soraglar we OpenAI-nyň Responses transport ulgamyndaky modeller, üpjün edijiden akymly (stream) görnüşde gelmeýärler. Olar jogap doly tamamlanandan soň, degişli akym görnüşinde jogap berýärler.
cURL
curl -N https://nymbot.ai/api/v1/chat/completions \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nymbot/auto",
"stream": true,
"stream_options": {"include_usage": true},
"messages": [{"role": "user", "content": "Write a haiku about sats."}]
}'
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
stream = client.chat.completions.create(
model="nymbot/auto",
stream=True,
stream_options={"include_usage": True},
messages=[{"role": "user", "content": "Write a haiku about sats."}],
)
for chunk in stream:
if chunk.choices:
print(chunk.choices[0].delta.content or "", end="", flush=True)
elif chunk.usage:
print("\ncost:", chunk.usage.cost)
JavaScript
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const stream = await client.chat.completions.create({
model: "nymbot/auto",
stream: true,
stream_options: { include_usage: true },
messages: [{ role: "user", content: "Write a haiku about sats." }],
});
for await (const chunk of stream) {
if (chunk.choices.length) process.stdout.write(chunk.choices[0].delta.content || "");
else if (chunk.usage) console.log("\ncost:", chunk.usage.cost);
}
Gurallar çagyryşlary
...-de funksiýalary beýan ediň tools we modeli jogap bermegiň deregine, biriniň jağlanmagyny sorap biler. Siz funksiýany işletdiňiz, onuň netijesini goşduňyz... tool şol bir habar bilen
tool_call_id, we söhbetdeşligi gaýtadan iberiň. Nymbot siziň funksiýalaryňyzy hiç wagt işletmeýär;
ol modeliň haýyşyny size yzyna ugradýar.
tool_choice alýar "auto", "none",
"required" ýa-da {"type": "function", "function": {"name": "…"}}.
Model sanawy haýsy modeller gurallary çagyryp biljekdigini belläp berýär (capabilities.tools). Gurallar ... bilen ret edilýär 400 unsupported_tool üstünde nymbot/auto we OpenAI-nyň Responses transport ulgamynda işleýän we Nymbot-yň gurallar (tools) ugradyp bilmeýän
az sany katalog modellerinde bolsa.
Bilelikde "stream": true, gural bilen degişli sorag bir bitewi bölek hökmünde işleýär we soňra adaty bölekler yzygiderliligi hökmünde iberilýär: rol, her bir gural çagyryşyny öz indeksi, id, ady we argumentleri bilen alyp barýan bir bölek we tamamlaýjy bölek. Akdyrylýan gural çagyryşlaryny okaýan klientler ony adatky ýaly işleýärler.
Jogap, bölekleýin
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call_7d2e",
"type": "function",
"function": { "name": "get_invoice_status", "arguments": "{\"invoice_id\":\"a41f\"}" }
}
]
},
"finish_reason": "tool_calls"
}
]
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": "Has invoice a41f been paid?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_invoice_status",
"description": "Look up whether an invoice is paid.",
"parameters": {
"type": "object",
"properties": {"invoice_id": {"type": "string"}},
"required": ["invoice_id"]
}
}
}]
}'
Python
import json, os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
tools = [{
"type": "function",
"function": {
"name": "get_invoice_status",
"description": "Look up whether an invoice is paid.",
"parameters": {
"type": "object",
"properties": {"invoice_id": {"type": "string"}},
"required": ["invoice_id"],
},
},
}]
messages = [{"role": "user", "content": "Has invoice a41f been paid?"}]
reply = client.chat.completions.create(model="anthropic/claude-sonnet-5", messages=messages, tools=tools)
call = reply.choices[0].message.tool_calls[0]
args = json.loads(call.function.arguments)
messages.append(reply.choices[0].message)
messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps({"paid": True})})
final = client.chat.completions.create(model="anthropic/claude-sonnet-5", messages=messages, tools=tools)
print(final.choices[0].message.content)
JavaScript
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const tools = [{
type: "function",
function: {
name: "get_invoice_status",
description: "Look up whether an invoice is paid.",
parameters: {
type: "object",
properties: { invoice_id: { type: "string" } },
required: ["invoice_id"],
},
},
}];
const messages = [{ role: "user", content: "Has invoice a41f been paid?" }];
const reply = await client.chat.completions.create({ model: "anthropic/claude-sonnet-5", messages, tools });
const call = reply.choices[0].message.tool_calls[0];
const args = JSON.parse(call.function.arguments);
messages.push(reply.choices[0].message);
messages.push({ role: "tool", tool_call_id: call.id, content: JSON.stringify({ paid: true }) });
const final = await client.chat.completions.create({ model: "anthropic/claude-sonnet-5", messages, tools });
console.log(final.choices[0].message.content);
Sargysynda suratlar
Modeller bilen capabilities.vision suratlary okap bilýär. Bir goşuň image_url
ulanyjy habarynyň bir bölegi, ýa awtorligi açyk bolan https:// link ýa-da a
data:image/…;base64, URL. Her sorat üçin 20 sany çenli surat.
SVG suratlary kabul edilmeýär, şeýle hem 4,096 belgiden köp karakterli ýa-da içine ulanyjy ady ýa-da paroly girizilen linkler kabul edilmeýär
(400 invalid_image_url). Isleg boýunça detail дыр
auto, low ýa-da high.
Bilelikde nymbot/auto, suratly haýyş adaty görme ukyby bolan modele ugradylýar. Katalog modeli bolsa... capabilities.vision suratlara garşy durýar
400 unsupported_contentSuratlar diňe ulanyjynyň habarlarynda bolup biler.
Çakylyk açyk hosta ugramaly; Nymbot suraty model üpjünçisine geçirilýär we ony saklaman galýar.
Surat, soragyň beýleki bölekleri ýaly, üpjün edijiniň hasaplaýan giriş tokenleri hökmünde tölenilýär.
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": [
{"type": "text", "text": "What is in this picture?"},
{"type": "image_url", "image_url": {"url": "https://example.com/receipt.jpg"}}
]
}]
}'
Python
import base64, os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
with open("receipt.jpg", "rb") as f:
data_url = "data:image/jpeg;base64," + base64.b64encode(f.read()).decode()
reply = client.chat.completions.create(
model="anthropic/claude-sonnet-5",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What is in this picture?"},
{"type": "image_url", "image_url": {"url": data_url}},
],
}],
)
print(reply.choices[0].message.content)
JavaScript
import { readFile } from "node:fs/promises";
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const dataUrl = "data:image/jpeg;base64," + (await readFile("receipt.jpg")).toString("base64");
const reply = await client.chat.completions.create({
model: "anthropic/claude-sonnet-5",
messages: [{
role: "user",
content: [
{ type: "text", text: "What is in this picture?" },
{ type: "image_url", image_url: { url: dataUrl } },
],
}],
});
console.log(reply.choices[0].message.content);
Logiki netije çykarmak
Modeller bilen capabilities.reasoning jogap bermezden öň oýlanyp bilýärler. Onuň köp ýa-da azyny ... bilen soraň reasoning_effort ("minimal", "low",
"medium" ýa-da "high") ýa-da "reasoning": {"effort": "high"}, ýa-da
goş :thinking model adyna, bu ýokary çaba diýmekdir. Mantigy bolmadyk modelde sazlama ünsden çykarylyp goýulýar. ... bilen nymbot/auto, :thinking soragy standart düşünme marşrutyna
ýollaýar.
Anthropic modellerinde çalyşma takmynan 1 000, 2 000, 8 000 ýa-da 16 000 tokenlik oýlanmak býujetine öwrülýär, asla ondan köp däl. max_tokens rugsat berýär. Oýlanmak şu ýagdaýda durdurylýar:
tool_choice gural ulanmaga mejbur edýär we sorag dowam edip, gural döwrüni (soňky
habary gural netijesidir) gaýtalaýan bolsa, sebäbi Anthropic öňki gol çekilen oýlanşy dowam etdirmek üçin talap edýär.
Şol bir zat Responses we Messages uçgünleri üçin hem degişlidir.
Pikir ýöretmek gaýta girýär message.reasoning_content, ýa-da
delta.reasoning_content striming edilende, jogaba hiç wagt garyşdyrylmaz. Akyl ýöretmeler netijedir we içeride şonuň ýaly tölenýär. completion_tokens. Käbir üpjünçiler sebäp tekstini hiç gaýtarmadyk ýaly, ýöne töleg bar bolýar.
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",
"reasoning_effort": "high",
"messages": [{"role": "user", "content": "Is 2^61 - 1 prime? Show why."}]
}'
Python
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",
reasoning_effort="high",
messages=[{"role": "user", "content": "Is 2^61 - 1 prime? Show why."}],
)
message = reply.choices[0].message
print(getattr(message, "reasoning_content", None))
print(message.content)
JavaScript
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",
reasoning_effort: "high",
messages: [{ role: "user", content: "Is 2^61 - 1 prime? Show why." }],
});
console.log(reply.choices[0].message.reasoning_content);
console.log(reply.choices[0].message.content);
Model goşulmalary
Model adynyň goşulmasy başga hiç hili meýdançasyz, soragyň nähili işlenilýändigini üýtgedýär. Olar doly ID-ler we gysga atlar bilen deň ýaly işleýärler, mysal üçin anthropic/claude-sonnet-5:online.
| Goşulma | Effekt |
|---|---|
:online | Ilki bilen internetde gözleg et, ýaly plugins: [{"id": "web"}]Gör web gözleg. |
:thinking | Ýokary akyl ýetiriş çabayy; açyk nymbot/auto, akyl ýöretmek ýoly. Akyl ýöretip bilmeýän modelde, 400 model_not_found “hiç hili nokat tapylmady”” bilen. |
:nitro, :floor, :exacto, :extended | Kabul edildi we üns berilmän geçildi. Her katalog modeliniň bir ýoly bar, şonuň üçin saýlamak üçin has çalt, arzan ýa-da uzyn ýol ýok; goşundylar rugsat berilýär, şol sebäpli beýleki hyzmatlardan göçürilen model atlary hem işleýär. |
Başga hiç hili goşulma (suffix) üns berilmezligi sebäpli ignor edilýär. Ilki bilen adyň doly görnüşi barlanylýar, şonuň üçin ID-si hakykatdan hem iki nokatly model hem-de işleýär; ondaky başarşylykly bolmasa, model gabat gelýänçä, goşulmalar birmeňzeş wagtda ahyryndan aýrylyp durylýar; model ady iň köp 200 simwoldan we iň köp 4 sany goşulmadan ybarat bolup biler; has uzyn bolan bolsa, aşakdakylar bilen ret edilýär 400 invalid_value.
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:thinking",
"messages": [{"role": "user", "content": "Plan a three-day trip to Lisbon."}]
}'
Python
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:thinking",
messages=[{"role": "user", "content": "Plan a three-day trip to Lisbon."}],
)
print(reply.choices[0].message.content)
JavaScript
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:thinking",
messages: [{ role: "user", content: "Plan a three-day trip to Lisbon." }],
});
console.log(reply.choices[0].message.content);
Web gözleg
Islendik söhbetdeş model janly webden jogap berip biler. Nymbot iň soňky ulanyjy haty (onuň ilkinji 2,000 belgisi) gözleýär, iň gowy sahypalary okaýar we olary sorag bilen bilelikde modele berýär, bu bolsa modele görkezmeleri kabul etmezligi gerek bolan daşary mazmun hökmünde belligenýär. Iki sany rejim bar:
- Elmydama gözleg ediň:
"plugins": [{"id": "web", "max_results": 5}], ýa-da a:onlinemodeliň goşulmasy. - Kömek edende gözleg ediň:
"tools": [{"type": "web_search", "parameters": {"max_results": 5}}], şeýle hem kabul edilýärweb_search_previewýa-daopenrouter:web_search. Nymbot diňe sorag häzirki maglumatlara mätäç bolan ýaly görünende gözleg edýär, bu programmanyň ulanýan şol bir barlagydyr.
max_results başlangyçda 5 we iň köp 10 bolýar. Çeşmeler şeýle gelýär
nymbot.web_search.sources, her biri bir title, snippet we
url, we ýaly url_citation habar baradaky bellikler.
Her bir işledilýän gözleg, tokenlerden daşary, satlara öwrülen $0.008 möçberinde arzanlyk bilen bolup geçýär we ol saklanyşyň bir bölegidir. Onuň okan sahypalary hem giriş tokenleri bolup durýar, şonuň üçin internetden gelen jogap, şol bir soragyň maglumat alyşman berilýän görnüşinden has gymmatlara, käwagt bolsa birnäçe esse gymmat bolup bilýär.
Jogap, bölekleýin
"nymbot": {
"balance": "pro",
"charged_credits": 0.431,
"charged_sats": 43.1,
"balance_credits": 411.994,
"balance_sats": 41199.4,
"web_search": {
"sources": [
{ "title": "Lightning Network - Wikipedia", "snippet": "The Lightning Network is a payment protocol...", "url": "https://en.wikipedia.org/wiki/Lightning_Network" }
]
}
}
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",
"plugins": [{"id": "web", "max_results": 5}],
"messages": [{"role": "user", "content": "What changed in the latest Bitcoin Core release?"}]
}'
Python
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": "What changed in the latest Bitcoin Core release?"}],
extra_body={"plugins": [{"id": "web", "max_results": 5}]},
)
print(reply.choices[0].message.content)
for source in reply.model_extra["nymbot"]["web_search"]["sources"]:
print(source["url"])
JavaScript
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",
plugins: [{ id: "web", max_results: 5 }],
messages: [{ role: "user", content: "What changed in the latest Bitcoin Core release?" }],
});
console.log(reply.choices[0].message.content);
for (const source of reply.nymbot.web_search.sources) console.log(source.url);
Jogaplar API
OpenAI-nyň täze formaty, OpenAI Agents SDK we Codex tarapyndan ulanylýar. Ol Chat Completions bilen birmeňzeş modeller, töleg we aýratynlyklar esasynda işleýär.
POST https://nymbot.ai/api/v1/responses — API açary gerek.
| Meýdan | Görüş | Talap edilýär | Beýany |
|---|---|---|---|
model | ýazgy | Hawa | Nämä bolsa Chat Completions, goşulmalary hem unflenip, |
input | string ýa-da array | Hawa | Setir ýa-da elementler sanawy: habarlar (rollar user, assistant, system, developer) bilen input_text, input_image we output_text bölekler, we function_call we function_call_output gurallar üçin zatlar. input_image alýar image_url link ýa-da data URL, faýl id-i däl. reasoning we web_search_call elementler geçirilýär; item_reference ret edilýär. |
instructions | ýazgy | Ýok | Ulgam görkezmeleri. |
max_output_tokens | bitin san | Ýok | Ýazmak üçin iň köp tokenler. |
temperaturetop_p | san | Ýok | Nusga almak gözegçilikleri, model olary nireden alýandygy. |
toolstool_choiceparallel_tool_calls | massiw, setir ýa-da obýekt, boolean | Ýok | Funksiýa gurallary, Jogap görnüşinde ({"type": "function", "name": …, "parameters": …}). A web_search ýa-da web_search_preview gural işe düşýär web gözleg kömek edende. Başga built-in gurallar ret edilýär. |
reasoning | predmet | Ýok | {"effort": "minimal" | "low" | "medium" | "high"}. xhigh we max manlamak; ortaça; ýaman high; none onu öçürýär. |
text.formatresponse_format | predmet | Ýok | Gurluşyrylan netije, JSON şemasy ýa-da json_object. |
metadata | predmet | Ýok | Jogapda üýtgedilmän gaýtaryldy. Iň köp 16 string gymmaty, açarlary 64 karaktere çenli we bahalary 512-e çenli. |
stream | boolean | Ýok | Aşakda beýan edilen ýaly wakalary akym görnüşinde geçiriň. |
store | boolean | Ýok | Üstünliksiz. Hiç zat saklanmaýar we jogap elmydama şeýle diýýär "store": false. |
previous_response_idconversationbackground | string, obýekt, boolean | Ýok | Goldap bolmaýan: 400 unsupported_parameterJogaplar saklanmaýar, şonuň üçin tutuş söhbetdeşligi iberiň input her gezek. |
Jogap
{
"id": "resp_8c1e4b0f9a2d4e61",
"object": "response",
"created_at": 1790726400,
"status": "completed",
"model": "anthropic/claude-sonnet-5",
"output": [
{
"type": "message",
"id": "msg_2b7f",
"role": "assistant",
"status": "completed",
"content": [{ "type": "output_text", "text": "A Lightning invoice is...", "annotations": [] }]
}
],
"output_text": "A Lightning invoice is...",
"usage": {
"input_tokens": 1240,
"input_tokens_details": { "cached_tokens": 0 },
"output_tokens": 380,
"output_tokens_details": { "reasoning_tokens": 0 },
"total_tokens": 1620
},
"incomplete_details": null,
"error": null,
"instructions": null,
"store": false,
"previous_response_id": null,
"metadata": {},
"nymbot": { "balance": "pro", "charged_credits": 0.162, "charged_sats": 16.2, "balance_credits": 412.425, "balance_sats": 41242.5 }
}
Gural soraty şunda görünýär output mysal üçin function_call predmet bilen
call_id, name we arguments; netijäni a görnüşinde yzyna ugrat
function_call_output şol bir ... bolan element call_id. Akyl ýöretme, model ony gaýtarylanda, bir reasoning predmet bilen reasoning_text mazmun,
ilki bilen sanalan. status дыр incomplete jogap degende
max_output_tokens ýa-da üpjünçi ret edipdir, bilen
incomplete_details.reason geňeşdirilýär max_output_tokens ýa-da
content_filterJogap, OpenAI-da bolşy ýaly, soragyň sazlamalaryny hem (temperature,
gurallar, gurallary saýlamak we ş.m.) gaýtalaýar we şonuň
bilen birlikde... nymbot gymmatlyk
objekt.
Akymly, her bir waka bir event: çyzgy we a data: a bilen setir
sequence_number, şu tertipde: response.created,
response.in_progress, response.output_item.added,
response.content_part.added, islendik san ýaly response.output_text.delta,
response.output_text.done, response.content_part.done,
response.output_item.done, we ahyrynda response.completed ulanylyşy we çykdajysy bilen. Ýarym galan jogap ... bilen gutarýar response.incomplete özünde, we
akym başlandan soňky ýalňyşlyk bilen response.failed. Akyl ýörediş akymlary özbaşdak element hökmünde bilen response.reasoning_text.delta we .done. Gurallaryň çagyryşlary
habaryň yzyndan gelýär, olaryň her biri element hökmünde response.function_call_arguments.delta
we .done.
| Status | Haçan |
|---|---|
400 | Ýok model ýa-da input; previous_response_id, conversation, background ýa-da item_reference (unsupported_parameter); goldap bolmaýan gural ýa-da mazmun görnüşi. |
402, 403, 404, 429, 502, 503 | Chat Completions barada bolsa. |
cURL
curl https://nymbot.ai/api/v1/responses \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-5",
"instructions": "Answer in one short paragraph.",
"input": "What is a Lightning invoice?"
}'
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
response = client.responses.create(
model="anthropic/claude-sonnet-5",
instructions="Answer in one short paragraph.",
input="What is a Lightning invoice?",
)
print(response.output_text)
JavaScript
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const response = await client.responses.create({
model: "anthropic/claude-sonnet-5",
instructions: "Answer in one short paragraph.",
input: "What is a Lightning invoice?",
});
console.log(response.output_text);
Anthropic Habarlary
Anthropic-yň formaty, Anthropic SDK-leri we Claude Code üçin. Ol diňe Claude bilen däl, eýsem katalogadaky ähli modeller bilen işleýär: sorag terjime edilýär, şol bir turbadan geçirilýär we yzyna terjime edilýär.
POST https://nymbot.ai/api/v1/messages — API açaryny talap edýär, sebäbi x-api-key ýa-da Authorization: Bearer.
Şol anthropic-version we anthropic-beta sarlawglar kabul edilýär we üns berilmeýär. Anthropic modelleriniň atlary kataloga laýyklaşdyrylýar, şonuň üçin Claude Code we SDK-lar eýýäm ulanýan atlary bilen işleýärler:
- Katalada bolan tanalýan at, mysal üçin
claude-sonnet-5ýa-daanthropic/claude-opus-5, öz ýaly ulanylýar. - Ýogsa bolsa bir sene (
-20260514),-latest, ýaly wersiýa belgisi-v1, ýaly mökkeldilen tag <a>[1m]we biranthropic/ýa-daanthropic.prefikslar aýrylýar we wersiýadaky nokatlar hem-de çyzyklar iki usulda hem synaglanylýar (claude-haiku-4-5tapyndylarclaude-haiku-4.5). - Eger bu heniz hiç zat bilen gabat gelmese, katalo gyramasy soraşylanlardan deň ýa-da täjir bolsa, maşgala (Opus, Sonnet ýa-da Haiku) ulanylýar.
- Hiç zat bilen gabat gelmeýän at yzyna gaýdyp gelýär
404not_found_error.
| Meýdan | Görüş | Talap edilýär | Beýany |
|---|---|---|---|
model | ýazgy | Hawa | Katalog modeli ID-si ýa-da Anthropic modeli ady. |
max_tokens | bitin san | Hawa | Ýazmak üçin iň köp tokenler. |
messages | massiw | Hawa | user we assistant öwrümleri, bilen text, image (base64 ýa-da URL çeşmesi), tool_use we tool_result bloklar. thinking öňki gurnamaklardaky bloklar kabul edilýär we taşlanýar. |
system | string ýa-da array | Ýok | System prompt, setir ýa-da tekst bloklary hökmünde. |
temperaturetop_p | san | Ýok | Nusga almak gözegçilikleri, model olary nireden alýandygy. top_k kabul edilýär we düşürilýär. |
stop_sequences | setirleriň massivi | Ýok | Jogaby tamamlaýan tekst. Iň köp 4 maglumat yzygiderligi, her biri iň köp 256 belgiden ybarat. |
toolstool_choice | massiw, objekt | Ýok | Guralalar bilen name, description we input_schema. A web_search serwer guraly işe girýär web gözleg; Anthropic-yň beýleki built-in gurallary (bash, tekst redaktory, kompýuter ulanmak) şu sebäpli ret edilýär: unsupported_tool. tool_choice alýar auto, any, tool ýa-da none, we disable_parallel_tool_use. |
thinking | predmet | Ýok | {"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} ýa-da {"type": "disabled"}. B output_config.effort, ýa-da ýokary. |
stream | boolean | Ýok | Anthropic-yň çäräniň formatynda akym (stream) ediň. |
metadata | predmet | Ýok | Kabul edildi we üýtgeşik bolup galdy. |
Jogap
{
"id": "msg_01c7a2f93e5b4d08",
"type": "message",
"role": "assistant",
"model": "anthropic/claude-sonnet-5",
"content": [{ "type": "text", "text": "A Lightning invoice is..." }],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 1240,
"output_tokens": 380,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0
},
"nymbot": { "balance": "pro", "charged_credits": 0.162, "charged_sats": 16.2, "balance_credits": 412.425, "balance_sats": 41242.5 }
}
content hem saklap bilýär tool_use bloklar we a thinking
blok, haýsy signature boş. stop_reason дыр
end_turn, max_tokens, tool_use ýa-da refusal, şol bir usulda hasaplanan finish_reason üstünde
Chat Completions; stop_sequence elmydama
null, hatda saklama yzygazy jogaby tamamlananda hem. input_tokens sanlar
diňe täze giriş; keşplenen giriş iki keşp meýdançasynda. Bahasy bolsa
nymbot predmet we X-Nymbot-Cost-Sats başlyk.
Strým edilen, wakalar Anthropic-e degişli: message_start,
content_block_start, ping, content_block_delta
(text_delta, input_json_delta ýa-da thinking_delta),
content_block_stop, message_delta durak sebäbi, ulanylyşy we nymbot çykdajy obýekti, we message_stop. A ping model işleýän wagty her 15 sekuntdan
ýollanylýar. Gurallaryň çagyryşlary tekstden soň gelýär, her biri a
tool_use bütin girişini bir blokda input_json_delta.
Bu nokadyndaky ýalňyşlyklar Anthropic-iň formatyny ulanýar:
{"type": "error", "error": {"type": "not_found_error", "message": "…"}}. A
gysga balans şüdür 402 billing_error, aşa ýüklenen üpjünçi
503 overloaded_error. Akym başlandan soňky ýalňyşlyk ... hökmünde iberilýär error wakä.
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": "What is a Lightning invoice?"}]
}'
Python
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": "What is a Lightning invoice?"}],
)
print(message.content[0].text)
JavaScript
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: "What is a Lightning invoice?" }],
});
console.log(message.content[0].text);
Tokenleri hasaplamak
Messages haýyşynyň näçe giriş tokenini ulanjakdygy baradaky çaklama, şeýlelikde klient ony ugratmazdan öň barlap bilýär. Ol mugt, ýöne şeýle hem açar gerek.
POST https://nymbot.ai/api/v1/messages/count_tokens — API açaryny talap edýär. Mugt.
Gövde şularyňkil bilen birmeňzeşdir Habarlar, bolmazdan max_tokens;
model ady anyklanmaly. San çaklamadyr: system prompt,
habarlar, gural çagyryşlary we gural kesgitlemeleri simwol sanlarynyň dörte bölünmeli bahasy, üstüne bolsa her surat üçin 1,600.
Bu üpjünçiniň öz tokenizer-i däl, şonuň üçin hakyky san üýtgäp biler. Çäk derejesine ýeten açar
onuň ulanyşyny dowam etdirip biler.
Jogap
{ "input_tokens": 318 }
cURL
curl https://nymbot.ai/api/v1/messages/count_tokens \
-H "x-api-key: $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "What is a Lightning invoice?"}]
}'
Python
import os
import anthropic
client = anthropic.Anthropic(base_url="https://nymbot.ai/api", api_key=os.environ["NYMBOT_API_KEY"])
count = client.messages.count_tokens(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "What is a Lightning invoice?"}],
)
print(count.input_tokens)
JavaScript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://nymbot.ai/api", apiKey: process.env.NYMBOT_API_KEY });
const count = await client.messages.countTokens({
model: "claude-sonnet-5",
messages: [{ role: "user", content: "What is a Lightning invoice?" }],
});
console.log(count.input_tokens);
Modelleri sanawda
API tarapyndan kabul edilýän her bir model we generator hem, olaryň bahasy bilen bilelikde. Sanaw programmanyň saýlap alyjy (picker) bilen birmeňzeş janly katalogdan okalýar, şonuň üçin ol elmydama serweriň işledjek maglumatlarydyr.
GET https://nymbot.ai/api/v1/models — açar gerek däl. Bäş minut möhlet bilen keşplendi.
GET /api/v1/models/{id} Bir ýazgy gaýtaryýär.
| Meýdan | Görüş | Talap edilýär | Beýany |
|---|---|---|---|
type | setir (sorag) | Ýok | chat (başlangyç), image, video, audio, embedding ýa-da allBirnäçe mysal berip bolar, mysal üçin: image,video. |
Bahalar — bu siziň töleýän sumgaňyz bolup, onda komissiýa we girdeji eýýäm hasaplanyp, häzirki Bitcoin bahasy boýunça dollarda we satlarda görkezilendir. balance modeliň haýsy balansy sarp edýändigini aýdýar.
nymbot_key modeliň gysga ady programmada bar ýa? created elmydama
0, sebäbi katalog model haçan goşulandygyny belläp durmaýar. Dolandyryş token
bahalary ýok bolan model bahalanýar per_request ýerine.
nymbot/auto hemişe birinji, bahasy ... ýaly variable, bilen bir
routes Her bir standart ugryň tariflaryny görkezýän sanaw. Ol görme we pikir ýöretmegi sanawda görkezýär, ýöne gurallary görkezmeýär.
GET /api/v1/models/{id} soragdakydyga meňzeş atlary we lakamlary kabul edýär we olaryň görkezýän model üçin ýazgyny gaýtaryp berýär.
Jogap
{
"object": "list",
"data": [
{
"id": "anthropic/claude-sonnet-5",
"object": "model",
"type": "chat",
"owned_by": "anthropic",
"name": "Claude Sonnet 5",
"created": 0,
"context_length": 1000000,
"max_output_tokens": 64000,
"architecture": { "input_modalities": ["text", "image"], "output_modalities": ["text"] },
"supported_parameters": ["max_tokens", "temperature", "tools", "tool_choice", "reasoning", "response_format", "stop"],
"capabilities": { "vision": true, "video": false, "tools": true, "reasoning": true, "web_search": true },
"balance": "pro",
"pricing": {
"type": "per_token",
"currency": "USD",
"input_per_1M_tokens": 4.725,
"output_per_1M_tokens": 23.625,
"cache_read_per_1M_tokens": 0.4725,
"sats_input_per_1M_tokens": 4038,
"sats_output_per_1M_tokens": 20192
},
"description": "...",
"nymbot_key": "claude-sonnet"
}
]
}
Beýleki görnüşler:
- Surat girmeler bar
capabilities(accepts_image_url,requires_image_url,edit) we bahasyper_generation. - Wideo girmeler bar
max_duration_secondsweresolutions, we bahasyper_secondher bir разрешeniň üçin. - Audio girmeler bar
audio_typespeechýa-datranscription, bahalananper_1k_charsýa-daper_minute. - Gömüleme girmeler bar
dimensions,context_length,max_inputswe million giriş tokeni üçin baha.
Bahalar bellendi "estimated": true bu programmada bahasy
ýazylmadyk generator üçin çaklamadyr. Bilinmeýän type gaýtaryşlar 400.
cURL
curl "https://nymbot.ai/api/v1/models?type=chat"
Python
import requests
models = requests.get("https://nymbot.ai/api/v1/models", params={"type": "chat"}).json()["data"]
for m in models:
print(m["id"], m["balance"], m["pricing"].get("input_per_1M_tokens"))
JavaScript
const res = await fetch("https://nymbot.ai/api/v1/models?type=chat");
const { data } = await res.json();
for (const m of data) console.log(m.id, m.balance, m.pricing.input_per_1M_tokens);