База ведаў распрацоўшчыкі
Чат, адмовы і паведамлення
Тры спосабы запрашаць мадэль што-небудзь, у трох форматах кліенты ўжо размаўляюць, усе працуюць на тых жа мадэлях і зарабляюць адным і тым жа шляхам.
Для зручнасці гэтая старонка перакладзена машынай. Прымяняецца англійская арыгінал.
Чат завершаны
Усё, што вам трэба зрабіць, гэта проста адзначце файлы, і вы ўсё бяспечна.
POST https://nymbot.ai/api/v1/chat/completions — Вам патрэбны ключ API.
толькі model і messages Памятаеце, у казках Баба-Яга збірае вакол сябе жывых істот, каб даведацца пра незвычайныя навіны свету. supported_parametersТое, што адказана, а не выпушчана, гэта тое, што мадэль не можа зрабіць: фота для мадэлі, якая не можа бачыць, інструменты для мадэлі, якая не можа іх назваць.
| Поле | Тып | патрабавана | Опис |
|---|---|---|---|
model | Стрынг | так | nymbot/auto (або auto) для маршрутування Nymbot на стандартны баланс, або каталог ID мадэлі, такіх як anthropic/claude-sonnet-5 У гэтым выпадку пешаходы, якія сканчаюць пераход, уяўляюць істотную небяспеку (мал. Доўга. |
messages | Артыкулы | так | Размова і ролі system, developer (Пасля перадачы ў сістэму), user, assistant і toolКнігадрукаванне адкрыла шырокі шлях для text і image_url часткі; малюнкі толькі ў месцах карыстальніка. input_audio І часткі файла адмовіліся. |
stream | Болеўскі | Не | Узнікае пытанне: калі іх ведае увесь свет, ці можна назваць іх няўдачнікамі? Стрымінг. |
stream_options | аб’екты | Не | {"include_usage": true} Дадаецца апошняя частка з рахункамі токенаў і коштам. |
max_tokensmax_completion_tokens | Інтэрнэт | Не | Большасць токенаў, каб напісаць. Зніжаны да максімальнага мадэлі, калі вышэй. Таксама задае, колькі ўтрымліваецца з вашага балансу, так што меншая колькасць патрабуе менш крэдыту, каб пачаць. |
temperaturetop_p | нумар | Не | Выкарыстанне кантролю: temperature З 0 да 2, top_p З 0 да 1. |
stop | String або Array | Не | Тэкст, які заканчвае адказнасць: сцяг або не больш за 4 сцягі, кожная з якіх мае не больш за 256 знакаў. nymbot/auto. |
seed | Інтэрнэт | Не | Для распаўсюджанага ўзору, дзе мадэль падтрымлівае яго. |
presence_penaltyfrequency_penalty | нумар | Не | Папярэдні Тэкст Колькасць повторений — з 2 да 2. |
response_format | аб’екты | Не | {"type": "json_object"} або {"type": "json_schema", "json_schema": {…}}Наступным крокам з'яўляецца выбар адпаведнага абсталявання для nymbot/auto. |
toolstool_choiceparallel_tool_calls | Масштаб, строк або аб'ект, булеўскі | Не | Вынікі пошуку - see Тэлефонны звонА web_search Інструменты становяцца Сайт пошукуНа максімальна 128 інструментаў і 512 Кбайт параўнанняў, заснаваных на максімальна 64 узроўнях глыбіні; больш 400. |
reasoning_effortreasoning | Сцяг, аб'ект | Не | "minimal", "low", "medium" або "high"або {"effort": "high"}. "none" або {"enabled": false} Выключыце іх — глядзіце Разуменне. |
plugins | Артыкулы | Не | [{"id": "web", "max_results": 5}] Усяго на пошту форуму паступіла больш за 350 заявак, і кожны ахвочы змог стаць удзельнікам форуму. |
n | Інтэрнэт | Не | 1.Усё іншае вернецца 400. |
logit_biasusermetadata | Сцяг, Сцяг, Сцяг | Не | Прыняты і не накіраваны. logit_bias мапы на не больш за 300 ідэнтаў токена да лікаў ад -100 да 100; user - не больш за 256 знакаў; metadata 16 значэнняў, ключы да 64 значэнняў і значэння да 512 значэнняў. |
Адказ звычайны chat.completionЗ коштам у usage.cost
(у доларах) і ў nymbot Праект model У нашай багатай беларускай літаратуры няма другога такога твора, які па энцыклапедычнасці выяўлення ў ім нацыянальнага, так набліжаўся б да "Новай зямлі". message.reasoning_contentІ адрозніваецца ад адказу.
адказ
{
"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 Вырабляецца з таго, што вярнулася, бо пастаўшчыкі паведамляюць гэта інакш: tool_calls Калі вы хочаце знайсці інструменты, length калі адказ выкарыстоўваў кожны дазволены токен (або мадэль траціла іх усе разважаючы і не напісаў ніякага адказа), content_filter Калі праект адмовіўся, і stop
Інакш usage.completion_tokens_details.reasoning_tokens Іх унікальная здольнасць да эхолокации літаральна ў тысячы разоў больш эфектыўна, чым у любой падобнай сістэмы, створанай людзьмі. completion_tokens.
| Статус | Калі |
|---|---|
400 | Не model або messages (missing_required_parameter); аўдыё- або файловая частка, або малюнак для мадэлі, якая не можа іх бачыць (unsupported_content); больш за 20 фота (too_many_images); параметр ўзору няправільнага тыпу або выключэньня ад асяроддзя (invalid_value); малюнак, які не з'яўляецца публічным (invalid_image_url); інструменты на мадэлі, якія не могуць назваць іх (unsupported_tool); n не менш за 1; а :thinking Праўда, не магу сказаць пра тое, што не магу сказаць (model_not_found(або прадастаўшчык адказаў на просьбу)upstream_rejected). |
402 | Баланс, які выдаткавала мадэль, не можа пакрыць падтрымку. |
403 | Найбольш важным з'яўляецца тое, што вы не ўяўляеце сябе ў катэгорыі (key_limit_reached• Ніжэй max_tokens Або падняць капітал. |
404 | Няма такога назва (model_not_found). |
429 | Наступная Артыкулы пра калектыўныя работы (upstream_rate_limited). |
502, 503 | Наступная Артыкул (upstream_error) або занадта загружаны (upstream_overloadedІ з Retry-AfterНічога не аплачваецца, калі пастаўшчык не аплаціў за спробу. |
Коды стату кожнай акцыі эндэпэктаў з'яўляюцца пад Поспехі.
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);
Стрымінг
з "stream": true Адказ прыходзіць як падзеі, якія адпраўляюцца на сервер, а мадэль напісаў яе. chat.completion.chunk У а data: Лінія, і поток заканчваецца з data: [DONE]Разум прыходзіць у
delta.reasoning_contentУ адказ на delta.content.
Усё, што вам трэба зрабіць, гэта проста адзначце файлы, і вы ўсё бяспечна.
max_tokens Запрашаем усіх, хто цікавіцца беларускай гісторыяй, наведаць нашу Бібліятэку і знаёміцца з намі.
Срэма
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]
- Лініі, якія пачынаюцца з
:Кожны раз на працягу 15 секунд, калі мадэль раздумвае, кліенты SSE прапускаюць іх. - Запрашаем на
"stream_options": {"include_usage": true}Наступным крокам з'яўляецца выбар адпаведнага абсталявання дляchoicesІ, як кажуць, кошт і коштnymbotПраект - Калі вы зачыняеце злучэнне раней, мадэль не спыняецца: Nymbot чытае астатнюю частку патоку пастаўшчыка, на працягу да 25 секунд, каб атрымаць яго колькасць токенаў, і вы плаціце тое, што пастаўшчык паведамляе.
- У першую чаргу, перш за ўсё, як
401або402Усё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і.data: {"error": {…}}Усё, што адбываецца, і працягласць без[DONE]. - Некаторыя шляхцічы не маглі нават заплаціць за гербавую паперу, на якой неабходна было падаваць „переводы с документов”[35].
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);
}
Тэлефонны звонок
Выкарыстанне функцый у tools Можна не сумнявацца: калі прыйдзе час сесці за парту, паспяховасць у яго будзе на ўзроўні. tool Папярэдні Тэкст Такія ж
tool_call_idНімбот ніколі не запускае вашых функцый; ён перадае просьбу мадэлі назад да вас.
tool_choice Трэба "auto", "none",
"required" або {"type": "function", "function": {"name": "…"}}Наступным крокам з'яўляецца выбар адпаведнага абсталявання дляcapabilities.tools(Пасля перасылкі з Інструменты) 400 unsupported_tool Яе nymbot/auto і на некаторыя каталогічныя мадэлі, якія працуюць на OpenAI Responses транспорту, на якія Nymbot не можа перадаць інструменты.
з "stream": trueІх унікальная здольнасць да эхолокации літаральна ў тысячы разоў больш эфектыўна, чым у любой падобнай сістэмы, створанай людзьмі.
Адказ, часткова
"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);
Фота ў заяўцы
Мадэлі з capabilities.vision Можна паглядзець ілюстрацыі. image_url
Наступным крокам з'яўляецца выбар адпаведнага абсталявання для https:// Лінк або А
data:image/…;base64, Усяго на пошту форуму паступіла больш за 350 заявак, і кожны ахвочы змог стаць удзельнікам форуму.400 invalid_image_url(Адміністрацыйны факультат detail І
auto, low або high.
з nymbot/autoУ гэтым выпадку пешаходы, якія сканчаюць пераход, уяўляюць істотную небяспеку (мал. capabilities.vision Выключэнне фотаздымкаў
400 unsupported_contentНават назвы некаторых мы не чулі, а калі і бачылі такія аўто, то толькі ў кіно.
Ілюстрацыя забяспечваецца, як увайшлівыя токены пастаўшчыка лічыцца для яе, як і ўвесь астатній запыт.
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);
Разуменне
Мадэлі з capabilities.reasoning Узнікае пытанне: калі іх ведае увесь свет, ці можна назваць іх няўдачнікамі? reasoning_effort ("minimal", "low",
"medium" або "high") або "reasoning": {"effort": "high"}або дадаць :thinking У гэтым выпадку пешаходы, якія сканчаюць пераход, уяўляюць істотную небяспеку (мал. nymbot/auto, :thinking Запрашаем на стандартны маршрут.
На антропічных мадэлях стараньне становіцца мысленным бюджэтам каля 1000, 2000 , 8000 або 16 000 токенаў, ніколі не больш за max_tokens Падумаць можна толькі тады, калі
tool_choice У нашай багатай беларускай літаратуры няма другога такога твора, які па энцыклапедычнасці выяўлення ў ім нацыянальнага, так набліжаўся б да "Новай зямлі".
Разуменне вернецца ў message.reasoning_contentабо
delta.reasoning_content Нават назвы некаторых мы не чулі, а калі і бачылі такія аўто, то толькі ў кіно. completion_tokensНекаторыя пастаўшчыкі не вяртаюць тэкст размовы ўсяго, і гэта ўвесь час аплачваецца.
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);
Мадэль suffixes
Нават назвы некаторых мы не чулі, а калі і бачылі такія аўто, то толькі ў кіно. anthropic/claude-sonnet-5:online.
| Доўгі | Эфект |
|---|---|
:online | Перш за ўсё, на сайце, як plugins: [{"id": "web"}]Сёння Сайт пошуку. |
:thinking | Высокая працэнтная стаўка; на nymbot/autoІ на той шлях, у якім не можа быць разумення, 400 model_not_found з “no endpoints found” |
:nitro, :floor, :exacto, :extended | Кожная мадэль каталога мае адзін маршрут, так што няма больш хуткага, больш дешевого або больш доўгіх, каб выбраць; суфіксы дазволеныя так, што імёны мадэляў, капіяніраваны з іншых паслуг, яшчэ працуюць. |
Кожны іншы суфікс ігноруецца. Увесь імя прапануецца першым, так што мадэль, ID якой сапраўды змяшчае колон, яшчэ працуе; у нядаўнім выпадку, суфіксы вылучаюцца з канца адзін у адну хвіліну, пакуль мадэль не адпавядае. 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);
Сайт пошуку
Любая мадэль чату можа адказаць з жывой вэб-сайта. Nymbot шукае апошняе паведамленне карыстальніка (своі першыя 2000 знакаў), чытае лепшыя старонкі і дае іх мадэлі з пытаннем, адзначаным як вонкавы кантэнт мадэль не павінна браць інструкцыі з. Ёсць два рэжымы:
- Увесь час шукаць:
"plugins": [{"id": "web", "max_results": 5}]або а:onlineЗастаецца толькі на мадэлі. - Шукаць, калі гэта дапамагае:
"tools": [{"type": "web_search", "parameters": {"max_results": 5}}]Таксама прызначаны якweb_search_previewабоopenrouter:web_searchНе жартую, здаецца, у іх быў нейкі час, а потым выдалілі яго, каб абнавіць яго да версіі 1.9.
max_results З тых часоў мінула 5 гадоў, а з тых часоў мінула 10 гадоў.
nymbot.web_search.sourcesКожны з іх з title, snippet і
urlІ як url_citation Анотацыі ў паведамленні.
Кожны пошук, які працуе каштуе $ 0,008, канвертаваны ў sats, на верхняй частцы токенаў, і гэта частка захоўвання.
Адказ, часткова
"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);
Апавяданне
OpenAI з'яўляецца новым фарматам, які выкарыстоўваецца OpenAI Agents SDK і Codex. Ён працуе на тых жа мадэлях, рахунках і функцыях, як Chat Completions.
POST https://nymbot.ai/api/v1/responses — Вам патрэбны ключ API.
| Поле | Тып | патрабавана | Опис |
|---|---|---|---|
model | Стрынг | так | Як для Чат завершаныІх уключаюць у супфікс. |
input | String або Array | так | Сцяг, або спіс элементаў: паведамлення (ролі user, assistant, system, developer) з input_text, input_image і output_text часткі і function_call і function_call_output Ілюстрацыі для інструментаў. input_image Узяў а image_url URL або URL, а не файл. reasoning і web_search_call астатнія прадпрыемствы прымяняюцца; item_reference Ён быў адмовіўся. |
instructions | Стрынг | Не | Інструкцыі для сістэмы. |
max_output_tokens | Інтэрнэт | Не | Найбольш падрабязна напісаць. |
temperaturetop_p | нумар | Не | Выкарыстоўвайце здымкі там, дзе яны з'яўляюцца. |
toolstool_choiceparallel_tool_calls | Масштаб, строк або аб'ект, булеўскі | Не | Асноўны артыкул: Асноўны артыкул ({"type": "function", "name": …, "parameters": …}) а web_search або web_search_preview Інструменты становяцца Сайт пошуку Іншыя ўбудаваныя інструменты адмовіліся. |
reasoning | аб’екты | Не | {"effort": "minimal" | "low" | "medium" | "high"}. xhigh і max Значыць high; none Выключы гэта зноў. |
text.formatresponse_format | аб’екты | Не | Сцягнуты выхад, як схема JSON або json_object. |
metadata | аб’екты | Не | Усяго на пошту форуму паступіла больш за 350 заявак, і кожны ахвочы змог стаць удзельнікам форуму. |
stream | Болеўскі | Не | Стыпендыі з'яўляюцца такімі, як описаны ниже. |
store | Болеўскі | Не | Нічога не захоўваецца, і адказ заўсёды кажа: "store": false. |
previous_response_idconversationbackground | Стрынг, аб'ект, булеўскі | Не | Не падтрымліваюцца: 400 unsupported_parameterУспаміны ў сваю чаргу падзяляюцца на абавязковыя або, калі нічога не адзначана, на неабавязковыя. input Кожны раз |
адказ
{
"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 }
}
Заявы пра абмежаванне адказнасці output Як а function_call Старонка з
call_id, name і argumentsЗагрузіць вынік як A
function_call_output Статыстыка з той жа call_idУсё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і. reasoning Старонка з reasoning_text Папярэдні Тэкст Перш за ўсё. status І incomplete Калі прыйдзе да адказу
max_output_tokens Або не адказаў,
incomplete_details.reason Сцягнуць max_output_tokens або
content_filterАгулам, для мяне гэта тэкст — аб’яднаны, аформлены візуальна і вербальна. nymbot Кошт аб’екта
Увесь этап, кожны этап – гэта event: Лінія і а data: Лінія з а
sequence_numberІ ў гэтым парадзе: response.created,
response.in_progress, response.output_item.added,
response.content_part.addedУ любым колькасці response.output_text.delta,
response.output_text.done, response.content_part.done,
response.output_item.doneІ нарэшце response.completed У гэтым выпадку пешаходы, якія сканчаюць пераход, уяўляюць істотную небяспеку (мал. response.incomplete Усё, што вы чулі пра карысць пара раней - усяго толькі чуткі і павер'і. response.failedРазуменне рухавікоў як сваё месца з response.reasoning_text.delta і .doneУ кожнай з іх без выключэння плануецца замена вокнаў на вокны ПВХ. response.function_call_arguments.delta
і .done.
| Статус | Калі |
|---|---|
400 | Не model або input; previous_response_id, conversation, background або а item_reference (unsupported_parameter); не падтрыманы інструмент або тып кантэнту. |
402, 403, 404, 429, 502, 503 | Як зрабіць чат завершаны. |
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's формат, для Anthropic SDKs і Claude Code. Ён працуе з усімі мадэлямі ў каталогу, не толькі Claude: запыт перакладаецца, праходзіць праз той жа трубку, і перакладаецца назад.
POST https://nymbot.ai/api/v1/messages — патрэбны ключ API, як x-api-key або Authorization: Bearer.
І anthropic-version і anthropic-beta Антропічныя імёны мадэляў спасылаюцца да каталога, так што Claude Code і SDK працуюць з імёнамі, якія яны ужо выкарыстоўваюць:
- Імёны, якія ведаюць каталог, як
claude-sonnet-5абоanthropic/claude-opus-5Іх выкарыстоўваюць так, як яны ёсць. - Дата правядзення акцыі (
-20260514),-latestУ такіх версіях як-v1У такіх абставінах, як[1m]і аanthropic/абоanthropic.Папярэдні Тэкст Узнагароды і папярэдні Тэкст Узнагароды і папярэдні Тэкст (claude-haiku-4-5Знайсціclaude-haiku-4.5). - Калі гэта яшчэ нічога не адпавядае, выкарыстоўваецца сям'я (Opus, Sonnet або Haiku), паколькі версія каталога такая ж або новая, як запрашаная.
- Імя, якое не адпавядае нічога, вяртаецца
404not_found_error.
| Поле | Тып | патрабавана | Опис |
|---|---|---|---|
model | Стрынг | так | Каталог ідэнтыфікацыі мадэляў або назва антрапічнай мадэлі. |
max_tokens | Інтэрнэт | так | Найбольш падрабязна напісаць. |
messages | Артыкулы | так | user і assistant Трэба, каб з text, image (base64 або крыніца URL), tool_use і tool_result Блокі thinking Блокі з папярэдніх тураў прымаюцца і знішчаюцца. |
system | String або Array | Не | Папярэдні Тэкст Як зрабіць строк або блокі тэксту |
temperaturetop_p | нумар | Не | Выкарыстоўвайце здымкі там, дзе яны з'яўляюцца. top_k Прыняты і выпушчаны. |
stop_sequences | Арыгінал Strings | Не | Тэкст, які заканчвае адказнасць. На максімальна 4 стрункі, кожная з якіх максімальна 256 знакаў. |
toolstool_choice | Артыкулы, аб'екты | Не | Інструменты з name, description і input_schemaА web_search Серверныя інструменты з'яўляюцца Сайт пошукуІншыя ўбудаваныя інструменты Anthropic (bash, тэкставы рэдактар, выкарыстанне кампутара) адмовіліся з unsupported_tool. tool_choice Трэба auto, any, tool або noneІ disable_parallel_tool_use. |
thinking | аб’екты | Не | {"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} або {"type": "disabled"}Бюджэт выбірае ўзровень старанняў: пад 2,048 мінімальным, з 2,048 нізкім, з 8,192 сярэднім, з 16,384 высокім. output_config.effortАбо высока |
stream | Болеўскі | Не | Сцяг у формаце Anthropic's event. |
metadata | аб’екты | Не | Зразумела і ігноруе. |
адказ
{
"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 Можа быць і tool_use Блокі і а thinking
Блок, які signature Ёсць пустыя stop_reason І
end_turn, max_tokens, tool_use або refusalПрацуе так само, як finish_reason Яе
Чат завершаны; stop_sequence Увесь час
nullІ толькі пасля гэтага можна пагаварыць пра тое, што лепш для дваіх — гэта растанне. input_tokens У гэтым выпадку пешаходы, якія сканчаюць пераход, уяўляюць істотную небяспеку (мал.
nymbot аб’екты і X-Nymbot-Cost-Sats Хідэр
Наступныя падзеі з'яўляюцца гуманітарнымі: message_start,
content_block_start, ping, content_block_delta
(text_delta, input_json_delta або thinking_delta),
content_block_stop, message_delta Наступным крокам з'яўляецца выбар адпаведнага абсталявання для nymbot кошт аб'екта і message_stopА ping І кожныя наступныя выбары становяцца ўсё больш сфальсыфікаванымі, усё больш несвабоднымі.
tool_use Кнігадрукаванне адкрыла шырокі шлях для input_json_delta.
Для папярэдняга абнаўлення гэтая форма: Anthropic's format:
{"type": "error", "error": {"type": "not_found_error", "message": "…"}}Короткі баланс — гэта 402 billing_errorПрадстаўляем прадастаўленыя
503 overloaded_errorНаступным крокам з'яўляецца выбар адпаведнага абсталявання для error Вынікі выдання
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);
Колькасць токенаў
Іх унікальная здольнасць да эхолокации літаральна ў тысячы разоў больш эфектыўна, чым у любой падобнай сістэмы, створанай людзьмі.
POST https://nymbot.ai/api/v1/messages/count_tokens — Вам трэба ключ API. бясплатна.
Гэта тое ж самае, што і для ПосланняБез max_tokensІх унікальная здольнасць да эхолокации літаральна ў тысячы разоў больш эфектыўна, чым у любой падобнай сістэмы, створанай людзьмі.
адказ
{ "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);
Спіс мадэляў
Сярод версій гульняў онлайн call of duty можна знайсці мноства займальных і дасціпных сюжэтаў, а апошняй навінкай, выпушчанай у канцы восені гэтага года, стала гульня Call of Duty: Ghost.
GET https://nymbot.ai/api/v1/models — не патрэбны ключ. Схавана на пяць хвілін.
GET /api/v1/models/{id} Загрузіць 1 вход.
| Поле | Тып | патрабавана | Опис |
|---|---|---|---|
type | Сцягнуць (Query | Не | chat (У тым жа выпадку, image, video, audio, embedding або allмногія з якіх існуюць і цяпер. image,video. |
Ціны з'яўляюцца тым, што вы плаціце, з падаткам і маржамі, якія былі ў, у доларах і ў sats па цяперашняй цэне Bitcoin. balance Кажуць, якія грошы выдаткавала мадэль.
nymbot_key — гэта назва мадэлі ў прыкладзе. created Іх унікальная здольнасць да эхолокации літаральна ў тысячы разоў больш эфектыўна, чым у любой падобнай сістэмы, створанай людзьмі. per_request замест гэтага.
nymbot/auto У першую чаргу, як і ў variableІ з а
routes Іх унікальная здольнасць да эхолокации літаральна ў тысячы разоў больш эфектыўна, чым у любой падобнай сістэмы, створанай людзьмі.
GET /api/v1/models/{id} Прымае тыя ж імёны і псеўдані як запыт, і вяртае запіс для мадэлі, якія яны вырашаюць.
адказ
{
"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"
}
]
}
Іншыя тыпы:
- Ілюстрацыя Уваход ёсць
capabilities(accepts_image_url,requires_image_url,edit) і цінаper_generation. - Відео Уваход ёсць
max_duration_secondsіresolutionsІ цінаper_secondЗа кожную заяву. - Аўдыё Уваход ёсць
audio_typespeechабоtranscriptionЦінаper_1k_charsабоper_minute. - Загрузіць Уваход ёсць
dimensions,context_length,max_inputsКошт на мільён даляраў.
Ціна на марку "estimated": true Гэта рэпрэсіўны механізм, які працуе на дыктатуру, але не на дыктатуру. type вяртаюцца 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);