Ruka hadi yaliyomo
Kurudi kwa Nymbot

Msingi wa maarifa Watengenezaji

Chat, majibu na ujumbe

Njia tatu za kuuliza mfano kitu, katika muundo wa tatu wa wateja tayari wanazungumza, wote wanaendesha mifano sawa na kulipwa kwa njia sawa.

Mwisho wa Chat

OpenAI chat format, na moja ambayo karibu kila chombo inasaidia. kutuma mazungumzo hadi sasa na kupata ujumbe ujao.

POST https://nymbot.ai/api/v1/chat/completions Unahitaji kifungo cha API.

tu ya model na messages Parameta ya sampuli ambayo model iliyochaguliwa haina kuchukua huanguka bila makosa, hivyo mwili wa ombi moja hufanya kazi kati ya mifano. orodha ya mifano inatoa supported_parametersKitu ambacho kinachukuliwa badala ya kuondolewa ni kitu ambacho mfano hauwezi kufanya kabisa: picha kwa mfano ambaye hawezi kuona, zana kwa mfano ambaye hawezi kuita.

Uwanja waaina yaMahitaji yaMaelezo ya
modelString yaNdiyonymbot/auto (au ya auto) kwa njia ya Nymbot kwenye usawa wa kiwango, au id ya mfano wa orodha kama vile anthropic/claude-sonnet-5 kwenye uwiano wa Pro. Majina ya muda mfupi na alama za akaunti pia zinakubaliwa. Inaweza kuishia katika ya kutosha.
messagesya arrayNdiyoMaoni yako, majukumu system, developer (Kwa mujibu wa mfumo huo, user, assistant na toolMaudhui ni mstari au orodha ya text na image_url sehemu; picha tu katika ujumbe wa mtumiaji. input_audio Baadhi ya nyaraka zilizopigwa marufuku.
streamBoolean yaHakunaTafadhali soma jibu kama ilivyoandikwa. Mchakato wa streaming.
stream_optionsMaana yaHakuna{"include_usage": true} huongeza kipande cha mwisho na hesabu ya token na gharama.
max_tokens
max_completion_tokens
Uwepo waHakunaIdadi kubwa ya tokens kuandika. Kupunguzwa hadi kiwango cha juu cha mfano ikiwa ni juu. Pia huweka kiasi gani kinachotumika kutoka kwa kiwango chako, hivyo idadi ndogo inahitaji mikopo kidogo kuanza.
temperature
top_p
Idadi yaHakunaUfuatiliaji wa sampuli: temperature kutoka 0 hadi 2, top_p kutoka 0 hadi 1.
stopMstari wa ArrayHakunaMstari wa mwisho wa jibu: string moja au kiwango cha juu cha 4 cha safu, kila kiwango cha juu cha 256 ishara. nymbot/auto.
seedUwepo waHakunaKwa sampuli ya mara kwa mara, ambapo mfano unaunga mkono.
presence_penalty
frequency_penalty
Idadi yaHakunaUtaratibu wa mara kwa mara, kila kutoka -2 hadi 2.
response_formatMaana yaHakuna{"type": "json_object"} au {"type": "json_schema", "json_schema": {…}}, ambapo mfumo unaunga mkono. Haijatumika kwa nymbot/auto.
tools
tool_choice
parallel_tool_calls
mfululizo, string au kitu, booleanHakunaMaombi ya kazi. kutazama Mawasiliano ya simuya A web_search Mchakato wa kurejea Utafutaji wa wavutiZaidi ya 128 zana na 512 KB ya ufafanuzi, kuunganishwa kwa zaidi ya 64 ngazi ya kina; zaidi ni 400.
reasoning_effort
reasoning
Mstari wa juu, ObjectHakuna"minimal", "low", "medium" au "high"au ya {"effort": "high"}. "none" au {"enabled": false} Hebu tuone jinsi vile nyongeza za kazi na jinsi salama kwa kompyuta. kwa Maoni ya.
pluginsya arrayHakuna[{"id": "web", "max_results": 5}] daima utafutaji wa wavuti kwanza. hadi 10 matokeo.
nUwepo waHakuna1.Kila kitu kingine kitatokea 400.
logit_bias
user
metadata
Mstari wa juu, String, ObjectHakunaimewasilishwa na haikuwasilishwa. logit_bias Ramani kwa idadi ya token 300 hadi idadi kutoka -100 hadi 100; user ni juu ya 256 tabia; metadata inahifadhi hadi thamani za safu 16, kifungo hadi 64 na thamani hadi 512.

Jibu lao ni la kawaida chat.completionPamoja na gharama katika usage.cost (kwa dola) na katika nymbot kwa ajili ya Object. model Mstari wa chini: Roho inawakilisha thamani nzuri ya thamani ya thamani ya thamani nzuri. message.reasoning_contentya kujitenga na jibu.

Majibu ya

{
  "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 imefanywa kutoka kwa kile kilichotokea, kwa sababu watoa taarifa tofauti: tool_calls Ikiwa mtumiaji anahitaji vifaa, length wakati jibu lilitumia kila token iliyowezekana (au mfano ulitumia wote kwa kufikiri na kuandika hakuna jibu), content_filter Baada ya mteja kukataa, na stop Vinginevyo usage.completion_tokens_details.reasoning_tokens ni daima 0: tokens siri mawazo ni kuhesabiwa, na kuhesabiwa, katika completion_tokens.

Hali yaWakati wa
400Hakuna model au messages (missing_required_parameter); sehemu ya sauti au faili, au picha kwa mfano ambayo haiwezi kuona (unsupported_content); zaidi ya picha 20 (too_many_images); kipimo cha sampuli cha aina sahihi au nje ya kiwango (invalid_value); kiungo cha picha ambacho sio umma (invalid_image_url); zana juu ya mfano ambao hawawezi kuita (unsupported_tool); n badala ya 1; a :thinking Mfano wa kiwango ambacho hauwezi kueleweka (model_not_found(Ujumbe huo ulikuwa umekamilika kwa ajili ya kuondolewa)upstream_rejected).
402Malipo ambayo mifano inatumia haiwezi kufunika uhifadhi.
403(Hakuna haja ya kufikiri juu ya kuunda password ya mteja)key_limit_reachedya chini max_tokens au kuongeza kichwa chako.
404Hakuna mfano kwa jina hilo (model_not_found).
429Mkataba baina ya HakiElimu na Radio Kifimbo FM ulikuwa wa kufanyika kwa vipindi 13 (upstream_rate_limited).
502, 503Utaratibu wa kuondoka (upstream_error(Ukiwa na uhakika wa kutosha)upstream_overloadedkwa pamoja na Retry-AfterHakuna kitu kinachohesabiwa isipokuwa mtoa huduma amehesabiwa kwa jaribio.

Kodi za hali kwa kila sehemu ya mwisho zinaorodheshwa chini makosa ya.

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

Streaming ya

kwa ajili ya "stream": true Jibu linakuja kama matukio yaliyotumwa na seva wakati mfano unaandika. chat.completion.chunk ya a data: mstari, na mstari wa mwisho unaendelea na data: [DONE]sababu ya kuingia katika delta.reasoning_contentJibu lao katika delta.content.

Kuendesha kitu chochote ambacho kinaweza kuchukua zaidi ya sekunde 100, kama vile majibu ya muda mrefu, max_tokens au mfano wa mawazo. ombi ambalo haijatumika kuhamisha hakuna chochote mpaka jibu ni kamili, na mtandao kati ya wewe na Nymbot inaweza kufunga uhusiano usio na muda baada ya sekunde 100; mfano bado huishia na kile alichoandika kinafungwa, lakini jibu limepotea.

Mzunguko wa

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]
  • Mstari wa kuanza na : Hizi ni maoni ya kuishi, yaliyotumwa kila sekunde 15 wakati mfano unafikiri.
  • Kuuliza kwa "stream_options": {"include_usage": true} kufikia kipande cha mwisho hapo juu, na tupu choicesKwa mfano, gharama, gharama na nymbot kwa ajili ya Object.
  • Malipo hupangwa baada ya mtiririko wa mwisho. Ikiwa ukifungua uhusiano mapema, mfano haujakamilika: Nymbot anasoma sehemu nyingine ya mtiririko wa mtoa huduma, kwa muda wa sekunde 25, ili kupata hesabu yake ya token, na unapaswa kulipa kile mtoa huduma anasema.
  • Makosa kabla ya chunk ya kwanza, kama 401 au 402, inarejea kama JSON ya kawaida na msimbo wake wa hali, sio kama mtiririko. data: {"error": {…}} tukio, na mtiririko huishia bila [DONE].
  • Maombi na zana, na mifano kwenye usafirishaji wa Jibu wa OpenAI, sio mtiririko kutoka kwa mtoa huduma. Wao bado kujibu na mtiririko sahihi, kutumwa mara moja jibu ni kamili.

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

Mchoro wa simu

Kufafanua kazi katika tools na mfano anaweza kuuliza mtu kuitwa badala ya kujibu. Unaweza kuendesha kazi, kuongeza matokeo yake kama tool Ujumbe wa sawa tool_call_idNymbot kamwe kuendesha kazi zako; inatoa ombi la mfano nyuma kwako.

tool_choice Tumia kwa "auto", "none", "required" au {"type": "function", "function": {"name": "…"}}orodha ya mifano inaonyesha mifano ambayo inaweza kuita zana (capabilities.tools(Tafakari hii inaweza kukataliwa na 400 unsupported_tool ya nymbot/auto na juu ya mifano machache ya orodha ambayo inafanya kazi kwenye usafiri wa Responses wa OpenAI, ambayo Nymbot haiwezi kuhamisha zana.

kwa ajili ya "stream": true, ombi na zana inafanya kazi katika kipande kimoja na kisha inatumwa kama mfululizo wa chunk ya kawaida: jukumu, chunk moja inayochukua kila wito wa zana na index yake, id, jina na maneno, na chunk ya mwisho.

Jibu, kwa sehemu

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

Picha katika maombi

Mfano wa capabilities.vision Unaweza kuunda kazi na uendelee haraka na matumizi ya masanduku image_url sehemu kwa ujumbe wa mtumiaji, kwa umma mmoja au https:// Link ya A data:image/…;base64, URL. hadi picha za 20 kwa ombi. picha za SVG zinachukuliwa, na hivyo ni kiungo cha takwimu zaidi ya 4,096 au moja na jina la mtumiaji au password ndani yake (400 invalid_image_url(Hii ni chaguo detail ya auto, low au high.

kwa ajili ya nymbot/auto, maombi na picha ndani yake yanaongozwa kwa mfano wa kiwango ambacho kinaweza kuona. capabilities.vision Kuzuia picha kwa 400 unsupported_contentPicha inaweza kuwa tu katika ujumbe wa mtumiaji. kiungo kinapaswa kuonyesha mwenyeji wa umma; Nymbot inatoa picha kwa mtoa huduma wa mfano na haina kuhifadhi.

Picha inahesabiwa kama tokens ya kuingia ambayo mtoa huduma anachukua kwa hiyo, kama ilivyokuwa kwa maombi mengine.

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

Maoni ya

Mfano wa capabilities.reasoning wanaweza kufikiri kabla ya kujibu. kuomba zaidi au chini ya reasoning_effort ("minimal", "low", "medium" au "high") au "reasoning": {"effort": "high"}au kuongeza :thinking kwa jina la mfano, ambayo inamaanisha jitihada kubwa. Katika mfano bila sababu, mipangilio inachukuliwa. nymbot/auto, :thinking kuwasilisha ombi kwa njia ya sababu ya kawaida.

Katika mifano ya Anthropic jitihada inakuwa bajeti ya mawazo ya karibu 1,000, 2,000, 8,000 au 16,000 tokens, kamwe zaidi ya max_tokens Kumbuka kwamba kufikiri inaweza kuondolewa wakati tool_choice inachukua chombo, na wakati ombi linaendelea na mzunguko wa zana (jumbe wake wa mwisho ni matokeo ya zana), kwa sababu Anthropic inahitaji mawazo yaliyoandikwa hapo awali ili kuendelea.

Mtazamo wa kurejea katika message.reasoning_contentau ya delta.reasoning_content wakati wa kuhamisha, kamwe kuunganishwa katika jibu. sababu ni output na inahesabiwa kama hiyo, ndani ya completion_tokensBaadhi ya watoa huduma hawana kurudi maandishi ya sababu kabisa, na bado inahesabiwa.

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

Mfano wa suffixes

Suffix juu ya jina la mfano inabadilisha jinsi ombi hutumiwa, bila uwanja mwingine. Wao kazi juu ya ids kamili na majina fupi sawa, kama katika anthropic/claude-sonnet-5:online.

ya kutoshaathari ya
:onlineUnaweza kutafuta tovuti ya kwanza, kama plugins: [{"id": "web"}]ya Utafutaji wa wavuti.
:thinkingUtaratibu wa kiufundi; juu ya nymbot/autoKwenye njia ya kufikiri, juu ya mfano ambao hauwezi kufikiri, 400 model_not_found na “ hakuna matokeo yaliyopatikana”.
:nitro, :floor, :exacto, :extendedKila mfano wa orodha ina njia moja, hivyo hakuna njia ya haraka, nafuu au ya muda mrefu kuchagua; vifungo vinawezekana hivyo majina ya mfano yaliyochapishwa kutoka kwa huduma nyingine bado yanafanya kazi.

Any other suffix is ignored. The jina kamili ni kujaribu kwanza, hivyo mfano ambaye id kweli ina colon bado inafanya kazi; bila hivyo, suffixes ni kuchukuliwa kutoka mwisho mmoja kwa wakati mpaka mfano kukutana. jina la mfano inaweza kuwa juu ya 200 wahusika mrefu na juu ya 4 suffixes; zaidi moja ni kukataliwa na 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);

Modeli yoyote ya mazungumzo inaweza kujibu kutoka kwenye mtandao wa moja kwa moja. Nymbot inatafuta ujumbe wa mwisho wa mtumiaji (maandiko yake ya kwanza ya 2,000), anaona kurasa bora na inatoa kwa mfano na swali, iliyoandaliwa kama maudhui ya nje ambayo mfano haupaswi kuchukua maagizo kutoka.

  • daima kutafuta: "plugins": [{"id": "web", "max_results": 5}]au kwa a :online Mstari wa chini juu ya mfano.
  • Kuangalia wakati inasaidia: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}]Pia alikubaliana kama web_search_preview au openrouter:web_searchNymbot hutafuta tu wakati swali linaonekana kama inahitaji habari ya sasa, mtihani huo unatumia programu.

max_results ni 5 kwa default na kwa kiwango cha juu cha 10. vyanzo kurejea katika nymbot.web_search.sourcesKila mmoja na a title, snippet na urlNa kama url_citation Maoni kwenye ujumbe.

Kila utafutaji unaofanya gharama $ 0.008, kurekodiwa kwa sats, juu ya tokens, na ni sehemu ya kuhifadhi. kurasa anasoma ni tokens input pia, hivyo jibu kutoka mtandao gharama zaidi kuliko swali moja kuuliza baridi, wakati mwingine mara kadhaa zaidi.

Jibu, kwa sehemu

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

Majibu ya API

Muundo mpya wa OpenAI, unaotumika na OpenAI Agents SDK na na Codex. Inaendesha mifano hiyo, malipo na vipengele kama Chat Completions.

POST https://nymbot.ai/api/v1/responses Unahitaji kifungo cha API.

Uwanja waaina yaMahitaji yaMaelezo ya
modelString yaNdiyoKama kwa Mwisho wa ChatVifaa vingine vya kuingizwa.
inputMstari wa ArrayNdiyoA string, au orodha ya vitu: ujumbe (mchezo user, assistant, system, developer) kwa ajili ya input_text, input_image na output_text Baadhi ya sehemu, na function_call na function_call_output Bidhaa kwa ajili ya zana. input_image Alikuwa an image_url link au URL ya data, sio id ya faili. reasoning na web_search_call vifaa vingine vya kuhifadhiwa; item_reference ya kukataliwa.
instructionsString yaHakunaMaelekezo ya mfumo.
max_output_tokensUwepo waHakunaKazi kubwa zaidi ya kuandika.
temperature
top_p
Idadi yaHakunaSampling udhibiti, ambapo mfano huchukua yao.
tools
tool_choice
parallel_tool_calls
mfululizo, string au kitu, booleanHakunaMifano ya Mifano ya Mifano ({"type": "function", "name": …, "parameters": …}(a) ya web_search au web_search_preview Mchakato wa kurejea Utafutaji wa wavuti wakati inasaidia. vifaa vingine vya ndani vinafutwa.
reasoningMaana yaHakuna{"effort": "minimal" | "low" | "medium" | "high"}. xhigh na max maana ya high; none Hivyo kuondoa.
text.format
response_format
Maana yaHakunaMatokeo ya muundo, kama mpango wa JSON au json_object.
metadataMaana yaHakunaKurejeshwa bila mabadiliko katika majibu. Kwa thamani ya 16 ya string, kifungo hadi 64 na thamani hadi 512.
streamBoolean yaHakunaHifadhi matukio kama ilivyoelezwa hapa chini.
storeBoolean yaHakunaHakuna kitu kilichohifadhiwa, na jibu linasema daima "store": false.
previous_response_id
conversation
background
Mstari wa Boolean, BooleanHakunaHakuna msaada wa: 400 unsupported_parameterMajibu hayawezi kuhifadhiwa, kwa hiyo uwasilisha mazungumzo yote input kila wakati

Majibu ya

{
  "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 }
}

Maombi ya chombo hupatikana katika output kama a function_call Sehemu ya call_id, name na argumentskurejesha matokeo kama a function_call_output Sehemu ya moja kwa moja call_idMtazamo, wakati mifano inakuja, ni reasoning Sehemu ya reasoning_text Maudhui ya kwanza, iliyoandikwa kwanza. status ya incomplete Wakati jibu liko kwenye max_output_tokens au mtoa huduma alikataa. incomplete_details.reason Kuweka kwa max_output_tokens au content_filterJibu pia linashuka mipangilio ya ombi (hisa, zana, chaguo la zana na kadhalika) kama OpenAI inavyofanya, na huchukua nymbot gharama ya vitu.

Kila tukio lenyewe ni tukio la event: Mstari wa A data: Mstari wa A sequence_numberKwa mujibu wa utaratibu huu: response.created, response.in_progress, response.output_item.added, response.content_part.addedHata hivyo, idadi yoyote ya response.output_text.delta, response.output_text.done, response.content_part.done, response.output_item.doneNa hatimaye response.completed na matumizi na gharama. Jibu la kukata mwisho mfupi na response.incomplete badala yake, na kushindwa baada ya mtiririko ulianza na response.failedkutafuta mbinu mbadala za kupunguza namba ya samaki aina ya sangara na response.reasoning_text.delta na .donePiga simu za chombo zinakuja baada ya ujumbe, kila mmoja kama kipengele na response.function_call_arguments.delta na .done.

Hali yaWakati wa
400Hakuna model au input; previous_response_id, conversation, background au kwa item_reference (unsupported_parameter); chombo au aina ya maudhui ambayo haipatikani.
402, 403, 404, 429, 502, 503Kama kwa ajili ya kukamilisha chat.

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

Ujumbe wa Anthropic

Aina ya Anthropic, kwa SDKs ya Anthropic na Claude Code. Inafanya kazi na kila mfano katika orodha, sio tu Claude: ombi hutafsiriwa, kuendesha kupitia mtiririko huo, na kutafsiriwa nyuma.

POST https://nymbot.ai/api/v1/messages - unahitaji API key, kama vile x-api-key au Authorization: Bearer.

ya anthropic-version na anthropic-beta Majina ya mifano ya mwanadamu yanafanana na orodha, hivyo Claude Code na SDKs zinafanya kazi na majina ambayo tayari hutumia:

  • Jina ambalo orodha inajua, kama vile claude-sonnet-5 au anthropic/claude-opus-5Inatumika kama ilivyo.
  • Kwa mfano, wakati wa tarehe (-20260514), -latestMfano wa toleo kama vile -v1Kwa mfano, siku ya baridi kama [1m] na moja ya anthropic/ au anthropic. Mifano hii inahusishwa na maonyesho ya awali na maonyesho ya awali na maonyesho ya awali (claude-haiku-4-5 Kupata claude-haiku-4.5).
  • Ikiwa bado haifai, familia (Opus, Sonnet au Haiku) inatumika, ikiwa toleo la orodha ni sawa au jipya kuliko toleo lililopendekezwa.
  • Jina linalofanana na hakuna kitu kinaweza kurudi 404 not_found_error.
Uwanja waaina yaMahitaji yaMaelezo ya
modelString yaNdiyoId ya mfano wa katalogu, au jina la mfano wa Anthropic.
max_tokensUwepo waNdiyoKazi kubwa zaidi ya kuandika.
messagesya arrayNdiyouser na assistant Kuanzishwa, pamoja na text, image (base64 au chanzo cha URL), tool_use na tool_result ya Blok. thinking Blocks kutoka mzunguko wa awali ni kukubaliwa na kuondolewa.
systemMstari wa ArrayHakunaUtaratibu wa mfumo, kama string au vifungu vya maandishi.
temperature
top_p
Idadi yaHakunaSampling udhibiti, ambapo mfano huchukua yao. top_k imechukuliwa na kuondolewa.
stop_sequencesMstari wa StringsHakunaMstari wa mwisho wa majibu: Kwa kiwango cha juu cha 4 na kiwango cha juu cha 256 cha kila kielelezo.
tools
tool_choice
Mifano ya ObjectHakunaZana kwa ajili ya name, description na input_schemaya A web_search Server Tool inakuja kwenye Utafutaji wa wavutiVifaa vingine vya Anthropic (bash, mhariri wa maandishi, matumizi ya kompyuta) vinafutwa na unsupported_tool. tool_choice Tumia kwa auto, any, tool au nonena ya disable_parallel_tool_use.
thinkingMaana yaHakuna{"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} au {"type": "disabled"}Bajeti inachagua kiwango cha juhudi: chini ya 2,048 kiwango cha chini, kutoka 2,048 kiwango cha chini, kutoka 8,192 kiwango cha kati, kutoka 16,384 kiwango cha juu. output_config.effortau kwa kiwango cha juu.
streamBoolean yaHakunaHifadhi katika muundo wa tukio la Anthropic.
metadataMaana yaHakunaya kukubalika na kupuuza.

Majibu ya

{
  "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 Pia unaweza kuhifadhi tool_use Bloki ya A thinking Blogu ya nani signature ni ya tupu. stop_reason ya end_turn, max_tokens, tool_use au refusalalifanya kazi kwa njia sawa na finish_reason ya Mwisho wa Chat; stop_sequence daima kuwa null, hata wakati mfululizo wa kuacha kumaliza jibu. input_tokens Kuanza kucheza katika TopSlotSite , kufuata 2 hatua rahisi kujiandikisha. nymbot Object na ya X-Nymbot-Cost-Sats ya header.

Maonyesho, matukio ni ya Anthropic: message_start, content_block_start, ping, content_block_delta (text_delta, input_json_delta au thinking_delta), content_block_stop, message_delta pamoja na sababu ya kuzuia, matumizi na nymbot gharama ya malipo, na message_stopya A ping pia inatumwa kila sekunde 15 wakati mfano unafanya kazi. Piga simu za zana zinakuja baada ya maandishi, kila mmoja kama tool_use block na input yake yote katika moja input_json_delta.

Makosa kwenye kiwango hiki cha mwisho hutumia muundo wa Anthropic: {"type": "error", "error": {"type": "not_found_error", "message": "…"}}Uwiano wa muda mfupi ni 402 billing_errorMtoa huduma wa kutosha 503 overloaded_errorUharibifu baada ya mtiririko ulianza kutumwa kama error ya tukio.

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

Idadi ya tokens

Takwimu ya kiasi gani cha tokens ya kuingia itatumia ombi la Ujumbe, hivyo mteja anaweza kuangalia kabla ya kutuma.

POST https://nymbot.ai/api/v1/messages/count_tokens Unahitaji kifungo cha API. bure.

Mwili wa mtu ni sawa na Ujumbe waBila ya max_tokens; jina la mfano linahitaji kutatua. hesabu ni makadirio: wahusika wa ujumbe wa mfumo, ujumbe, wito wa zana na ufafanuzi wa zana umegawanywa na nne, pamoja na 1,600 kwa kila picha. Huu sio tokenizer mwenyewe wa mtoa huduma, hivyo hesabu halisi inaweza kutofautiana.

Majibu ya

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

Orodha ya mifano

Orodha inasomwa kutoka orodha hiyo ya moja kwa moja kama picker ya programu, hivyo ni daima ni nini seva itaendesha.

GET https://nymbot.ai/api/v1/models - Hakuna haja ya kichwa. Kuhifadhiwa kwa dakika tano.

GET /api/v1/models/{id} kurejesha moja ya kuingia.

Uwanja waaina yaMahitaji yaMaelezo ya
typeMaelezo ya Query (Query)Hakunachat (Huu ni uharibifu wa image, video, audio, embedding au allBaadhi ya mambo yanaweza kupatikana, kama image,video.

Bei ni nini wewe kulipa, na ada na margin tayari katika, katika dola na katika sats kwa bei ya sasa ya Bitcoin. balance Anasema kiwango ambacho mfano unachotumia. nymbot_key ni jina la mfupi la mfano katika programu. created ni daima 0, kwa sababu orodha haina kumbukumbu wakati mfano uliongezwa. per_request badala yake.

nymbot/auto daima ni ya kwanza, gharama kama variablePamoja na a routes Orodha ambayo inatoa viwango vya kila njia ya kiwango. Ni orodha ya maono na mawazo, lakini si zana.

GET /api/v1/models/{id} kukubali majina na alama sawa kama ombi, na kurudi kuingia kwa mfano ambao wanakubali.

Majibu ya

{
  "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"
    }
  ]
}

Baadhi ya aina nyingine:

  • Picha ya Upatikanaji wa capabilities (accepts_image_url, requires_image_url, edit(Na kwa bei ya per_generation.
  • Video ya Upatikanaji wa max_duration_seconds na resolutionsNa kwa bei ya per_second kwa kila mkataba.
  • ya Audio Upatikanaji wa audio_type speech au transcriptionBei ya per_1k_chars au per_minute.
  • Uingizaji Upatikanaji wa dimensions, context_length, max_inputs na bei ya kila milioni ya tokens ya kuingia.

Bei ya alama "estimated": true ni makadirio ya programu kwa ajili ya jenereta ambayo bei haijachapishwa. type Kurudi kwa 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);