Перайсці да зместу
Назад у Nymbot

База ведаў распрацоўшчыкі

Чат, адмовы і паведамлення

Тры спосабы запрашаць мадэль што-небудзь, у трох форматах кліенты ўжо размаўляюць, усе працуюць на тых жа мадэлях і зарабляюць адным і тым жа шляхам.

Чат завершаны

Усё, што вам трэба зрабіць, гэта проста адзначце файлы, і вы ўсё бяспечна.

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_tokens
max_completion_tokens
ІнтэрнэтНеБольшасць токенаў, каб напісаць. Зніжаны да максімальнага мадэлі, калі вышэй. Таксама задае, колькі ўтрымліваецца з вашага балансу, так што меншая колькасць патрабуе менш крэдыту, каб пачаць.
temperature
top_p
нумарНеВыкарыстанне кантролю: temperature З 0 да 2, top_p З 0 да 1.
stopString або ArrayНеТэкст, які заканчвае адказнасць: сцяг або не больш за 4 сцягі, кожная з якіх мае не больш за 256 знакаў. nymbot/auto.
seedІнтэрнэтНеДля распаўсюджанага ўзору, дзе мадэль падтрымлівае яго.
presence_penalty
frequency_penalty
нумарНеПапярэдні Тэкст Колькасць повторений — з 2 да 2.
response_formatаб’ектыНе{"type": "json_object"} або {"type": "json_schema", "json_schema": {…}}Наступным крокам з'яўляецца выбар адпаведнага абсталявання для nymbot/auto.
tools
tool_choice
parallel_tool_calls
Масштаб, строк або аб'ект, булеўскіНеВынікі пошуку - see Тэлефонны звонА web_search Інструменты становяцца Сайт пошукуНа максімальна 128 інструментаў і 512 Кбайт параўнанняў, заснаваных на максімальна 64 узроўнях глыбіні; больш 400.
reasoning_effort
reasoning
Сцяг, аб'ектНе"minimal", "low", "medium" або "high"або {"effort": "high"}. "none" або {"enabled": false} Выключыце іх — глядзіце Разуменне.
pluginsАртыкулыНе[{"id": "web", "max_results": 5}] Усяго на пошту форуму паступіла больш за 350 заявак, і кожны ахвочы змог стаць удзельнікам форуму.
nІнтэрнэтНе1.Усё іншае вернецца 400.
logit_bias
user
metadata
Сцяг, Сцяг, СцягНеПрыняты і не накіраваны. 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СтрынгтакЯк для Чат завершаныІх уключаюць у супфікс.
inputString або 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ІнтэрнэтНеНайбольш падрабязна напісаць.
temperature
top_p
нумарНеВыкарыстоўвайце здымкі там, дзе яны з'яўляюцца.
tools
tool_choice
parallel_tool_calls
Масштаб, строк або аб'ект, булеўскіНеАсноўны артыкул: Асноўны артыкул ({"type": "function", "name": …, "parameters": …}) а web_search або web_search_preview Інструменты становяцца Сайт пошуку Іншыя ўбудаваныя інструменты адмовіліся.
reasoningаб’ектыНе{"effort": "minimal" | "low" | "medium" | "high"}. xhigh і max Значыць high; none Выключы гэта зноў.
text.format
response_format
аб’ектыНеСцягнуты выхад, як схема JSON або json_object.
metadataаб’ектыНеУсяго на пошту форуму паступіла больш за 350 заявак, і кожны ахвочы змог стаць удзельнікам форуму.
streamБолеўскіНеСтыпендыі з'яўляюцца такімі, як описаны ниже.
storeБолеўскіНеНічога не захоўваецца, і адказ заўсёды кажа: "store": false.
previous_response_id
conversation
background
Стрынг, аб'ект, булеўскіНеНе падтрымліваюцца: 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), паколькі версія каталога такая ж або новая, як запрашаная.
  • Імя, якое не адпавядае нічога, вяртаецца 404 not_found_error.
ПолеТыппатрабаванаОпис
modelСтрынгтакКаталог ідэнтыфікацыі мадэляў або назва антрапічнай мадэлі.
max_tokensІнтэрнэттакНайбольш падрабязна напісаць.
messagesАртыкулытакuser і assistant Трэба, каб з text, image (base64 або крыніца URL), tool_use і tool_result Блокі thinking Блокі з папярэдніх тураў прымаюцца і знішчаюцца.
systemString або ArrayНеПапярэдні Тэкст Як зрабіць строк або блокі тэксту
temperature
top_p
нумарНеВыкарыстоўвайце здымкі там, дзе яны з'яўляюцца. top_k Прыняты і выпушчаны.
stop_sequencesАрыгінал StringsНеТэкст, які заканчвае адказнасць. На максімальна 4 стрункі, кожная з якіх максімальна 256 знакаў.
tools
tool_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_type speech або 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);