Farðu yfir í innihaldið
Aftur til Nymbot

Þekkingargrunnur Framleiðendur

Chat, svör og skilaboð

Þrír leiðir til að spyrja líkan eitthvað, í þremur sniðum sem viðskiptavinir eru þegar að tala, allt að keyra á sömu líkanum og reiknað á sama hátt.

Chat fullnægingar

The OpenAI spjall snið, og einn sem nánast hvert verkfæri styður. Sendu samtalið þangað til og fá næsta skilaboð aftur.

POST https://nymbot.ai/api/v1/chat/completions Þarf að nota API lykil.

Aðeins model og messages A sýningartilvik sem valinn líkan tekur ekki er kastað án mistök, þannig að einn beiðni líkaminn virkar á milli líkanna. supported_parametersÞað sem neitað er frekar en kastað er það sem líkan getur ekki gert alls: myndir fyrir líkan sem getur ekki séð, verkfæri fyrir líkan sem getur ekki kallað þá.

Fieldstegundnauðsynlegtlýsingu
modelStrengiðJánymbot/auto (eða auto) fyrir leiðbeiningu Nymbots á staðlaða jafnvægi, eða söfnunartími, eins og anthropic/claude-sonnet-5 á Pro jafnvægi. Skammt nöfn og smásögur forritsins eru einnig samþykktar. Getur endað í nægir.
messagesArrayJáSamskipti - hlutverk system, developer (Það er notað sem kerfi) user, assistant og toolInnihald er röð eða lista af text og image_url hluti; myndir aðeins í notandi skilaboðum. input_audio og skrá hluti eru hafnað.
streamBooleanNei ekkiSendu svarið eins og það er skrifað.Sjá Streaming.
stream_optionsObjektumNei ekki{"include_usage": true} bætir við endanlega stykki með token reikningum og kostnaði.
max_tokens
max_completion_tokens
ÍtrekaðNei ekkiFlest tokens til að skrifa. Læst niður til hámarks líkanarinnar ef hærri. Einnig setur upp hversu mikið er haldið frá jafnvægi þínu, þannig að minni fjöldi þarf minna kredit til að byrja.
temperature
top_p
FjöldiNei ekkiSampling eftirlitsreglur: temperature frá 0 til 2, top_p frá 0 til 1.
stopString eða ArrayNei ekkiText sem endar svarið: Stringa eða hámarks 4 stringa, hámarks 256 stafir hver. nymbot/auto.
seedÍtrekaðNei ekkiTil endurtekinna sýningar, þar sem líkan styður það.
presence_penalty
frequency_penalty
FjöldiNei ekkiHreyfingartölur, hver frá -2 til 2.
response_formatObjektumNei ekki{"type": "json_object"} eða {"type": "json_schema", "json_schema": {…}}, þar sem líkan styður það. Ekki notað af nymbot/auto.
tools
tool_choice
parallel_tool_calls
Array, String eða Object, BooleanNei ekkiRáðstefnumót. sjá Tölvuleiðir• A web_search Tólin snúast á Vefsíða leitarAð hámarki 128 verkfæri og 512 KB skilgreiningar, hnistuð á hámarki 64 stigum dýpt; meira er 400.
reasoning_effort
reasoning
Strengur og ObjectNei ekki"minimal", "low", "medium" eða "high"eða {"effort": "high"}. "none" eða {"enabled": false} Endurtakið það. sjá Hugsanir.
pluginsArrayNei ekki[{"id": "web", "max_results": 5}] alltaf leitar á netinu fyrst. Hingað til 10 niðurstöður.
nÍtrekaðNei ekki1. allt annað kemur aftur 400.
logit_bias
user
metadata
Object, String og ObjectNei ekkisamþykkt og ekki send. logit_bias kort á hámarki 300 token ids til tölur frá -100 til 100; user Það eru allt að 256 stafir. metadata Hægt er að nota hámarks 16 stringa gildi, lykla hámarks 64 stafi og gildi hámarks 512.

Svarið er venjulegt chat.completionMeð kostnaði í usage.cost (í dollara) og í nymbot Ástæðan er model er leystur líkan id, þannig að stutt nafn kemur aftur sem fullan. Ef líkan reyndist áður en svarað er, þá er message.reasoning_contentAðskilja sig frá svarið.

Svarið

{
  "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 er unnið út úr því sem kom aftur, þar sem birgir tilkynna það öðruvísi: tool_calls Þegar maður bað um verkfæri, length þegar svarið notaði hverja leyfilegan tákn (eða líkan eyðaði þeim öllum hugsun og skrifaði ekkert svar), content_filter þegar vefurinn neitaði og stop Annars er usage.completion_tokens_details.reasoning_tokens er alltaf 0: falið rökfræði tokens eru talin, og tekin, í completion_tokens.

StaðsetningÞegar
400Nei ekki model eða messages (missing_required_parameter); hljóð eða skrá hluti, eða myndir fyrir líkan sem getur ekki séð þá (unsupported_content); meira en 20 myndir (too_many_images); sýningartími mismunandi tegund eða út af sviði (invalid_value); mynd tengil sem er ekki opinber (invalid_image_url); verkfæri á líkan sem ekki getur kallað þá (unsupported_tool); n annað en 1; a :thinking á formi sem ekki getur lýst (model_not_found); eða vefurinn hafnaði beiðni (upstream_rejected).
402The jafnvægi sem líkan eyðir getur ekki náð haldi.
403Sérsta málið er ekki að passa lykillinn (key_limit_reached• Lágmarki max_tokens eða hækka höfuðið.
404(Ekki neitt með þessu nafni)model_not_found).
429Hægt er að setja upp hættu á lykilinn, eða þjónustuveitanda (upstream_rate_limited).
502, 503Þátttakandinn var ekki til (upstream_error) eða er yfirgefið (upstream_overloaded, með Retry-AfterEkkert er borgað nema veitirinn gjaldði fyrir tilraunina.

Staðsetningarkóðirnir fyrir hvert endapunkt hlutverk eru listar undir Mistök.

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

með "stream": true Svarið kemur sem atburður sem sendur er á þjónustunni á meðan líkan skrifar það. chat.completion.chunk á a data: lína, og flæði endar með data: [DONE]Hugsanir koma í delta.reasoning_contentSvarið er í delta.content.

Stream allt sem getur tekið meira en um 100 sekúndur, svo sem langan svör, stór max_tokens A beiðni sem er ekki flutt sendir ekkert fyrr en svarið er lokið, og net milli þín og Nymbot getur lokað óþarfa tengingu eftir um 100 sekúndur; líkan er enn lokið og það sem hún skrifaði er hlaðið, en svarið er misst.

Streymið

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]
  • Línur sem hefjast með : eru lifandi athugasemdir, sendar á hverjum 15 sekúndum meðan líkan er að hugsa.
  • Spyrja fyrir "stream_options": {"include_usage": true} til að fá síðasta stykki ofan, með tómum choices, táknið telur, kostnaður og nymbot Ástæðan er
  • Ef þú lokað tengslunni snemma, er líkan ekki stöðvað: Nymbot les restina af flæði þjónustuveitanda, í allt að 25 sekúndur, til að fá tákn reikning, og þú greiðir það sem þjónustuveitandi tilkynnt.
  • mistök áður en fyrri stykki, svo sem 401 eða 402, kemur aftur sem venjulegur JSON með stöðu kóði sínum, ekki sem flæði. Erfiða eftir að flæði hefur byrjað kemur sem síðasta data: {"error": {…}} viðburður, og flæði endar án þess að [DONE].
  • Spurningar með verkfærum og módelum á OpenAI Responses flutningi fljúga ekki frá birgja. Þeir svara enn með gildri flæði, sent þegar svarið er lokið.

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

Tölvuleiðir

Skrifaðu hlutverk í tools og líkan getur beðið um að hringja í stað þess að svara. Þú keyrir hlutann, bætir niðurstöður hans sem tool Skilaboð með sömu tool_call_id, og senda samtalið aftur. Nymbot keyrir aldrei aðgerðir þínar; það sendir beiðni módelsins aftur til þín.

tool_choice Taktu "auto", "none", "required" eða {"type": "function", "function": {"name": "…"}}Hugbúnaðurinn getur notað tækni til að nota tækni (capabilities.toolsTólin eru hafnað með 400 unsupported_tool er nymbot/auto og á nokkrum söfnunarmódelum sem keyra á OpenAI Responses flutningi, sem Nymbot getur ekki gefið verkfæri til.

með "stream": true, beiðni með verkfæri gengur í einum stykki og er síðan sent sem eðlilegt stykki röð: hlutverk, einn stykki sem ber hvert verkfæri kalla með vísitölum sínum, id, nafn og atriði, og lokið stykki.

Svarið, að hluta

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

Myndir í beiðni

Hugmyndir með capabilities.vision Getur lesið myndir. bæta við image_url part til notanda skilaboð, með annaðhvort almenning https:// Link eða A data:image/…;base64, Sérstaklega er hægt að taka þátt í því að taka þátt í samskiptum sem eru í samskiptum sem eru í samræmi við samskiptum sem eru í samskiptum og eru í samræmi við samskiptum sem eru í samræmi við samskiptum og samskiptum sem eru í samskiptum (400 invalid_image_url) er valfrjáls detail er auto, low eða high.

með nymbot/auto, beiðni með mynd í henni er beint til venjulegs líkan sem getur séð. capabilities.vision hafna myndum með 400 unsupported_contentMyndir geta aðeins verið í notandi skilaboðum. tengil þarf að leggja til almennings gestgjafa; Nymbot sendir myndina til framleiðanda líkanarinnar og geymir það ekki.

Myndir eru teknar upp sem inngöngutóknir sem veitirinn telur fyrir það, eins og restin af beiðni.

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

Ástæður

Hugmyndir með capabilities.reasoning geta hugsað áður en þeir svara. biðja um meira eða minna af því með reasoning_effort ("minimal", "low", "medium" eða "high") eða "reasoning": {"effort": "high"}eða bæta við :thinking að nafn líkanna, sem þýðir mikla viðleitni. Á líkanum án ástæðu er stillingin horfin. Með nymbot/auto, :thinking sendir beiðni til venjulegs ástæðu leiðarinnar.

Á Anthropic gerum viðleitni hugsanlega fjárhagsáætlun um 1.000, 2.000, 8.000 eða 16.000 tokens, aldrei meira en max_tokens Hugsað er, hugsað er þegar tool_choice þvinga verkfæri, og þegar beiðni heldur áfram verkfæri loop (síðasta skilaboð hennar er verkfæri niðurstöðu), vegna þess að Anthropic þarf fyrri undirritað hugsun til að endurnýja það.

Hugmyndin kemur aftur í message.reasoning_contenteða delta.reasoning_content þegar streymir, aldrei blandað inn í svarið. Ákvörðun er útgangur og er hlaðið sem svo, innan completion_tokensSumir veitir ekki endurgreiðslu texta alls, og það er enn að borga.

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

Myndavél suffixes

Hlutverk á nafn líkanna breytir því hvernig beiðnið er meðhöndlað, án annars sviðsins. Þeir vinna á fullum ID og stuttum nöfnum eins og í anthropic/claude-sonnet-5:online.

nægirÁhrif
:onlineLeitaðu fyrst á netinu, eins og plugins: [{"id": "web"}]sjá Vefsíða leitar.
:thinkingmikill skynsemi; á nymbot/auto, rökréttarferð. Á líkan sem getur ekki rökrétt, 400 model_not_found með “ engin endpoints found”.
:nitro, :floor, :exacto, :extendedSérhver listamálið hefur einn leið, þannig að það er engin hraðar, ódýrari eða lengri leið til að velja; fylgihlutir eru leyfðar þannig að nafn líkanna sem copied frá öðrum þjónustu enn virkar.

Öll nafn er prófað fyrst, þannig að líkan sem ID í raun inniheldur þunglyndi virkar enn; ef það er ekki gert, eru þunglyndi teknar frá endanum einn í einu þar til líkan samsvarar. 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 leitar eftir síðasta notanda skilaboðinu (fyrstu 2.000 stafi), les bestu síðurnar og gefur þeim til líkanar með spurningunni, merkt sem utan efni sem líkan ætti ekki að taka leiðbeiningar frá.

  • Alltaf að leita: "plugins": [{"id": "web", "max_results": 5}]eða a :online Nánari á líkanum.
  • Leitaðu þegar það hjálpar: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}]Einnig samþykkt sem web_search_preview eða openrouter:web_searchNymbot leitar aðeins þegar spurningin virðist þurfa núverandi upplýsingar, sama próf sem forritið notar.

max_results er 5 fyrirfram og að hámarki 10. uppspretta koma aftur í nymbot.web_search.sourcesHver með a title, snippet og urlog eins og url_citation Skilaboð á skilaboðinu.

Hvert leit sem hlaut kostar $ 0,008, breytt í sats, ofan á tokens, og það er hluti af haldi. síðurnar sem hún les eru innflutnings tokens líka, svo svör frá vefnum kostar meira en sama spurning spurði kaldur, stundum nokkrum sinnum meira.

Svarið, að hluta

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

Svör við eldur

Nýjari snið OpenAI, notað af OpenAI Agents SDK og Codex. Það hlaupa á sömu módelum, reikning og aðgerðir eins og Chat Completions.

POST https://nymbot.ai/api/v1/responses Þarf að nota API lykil.

Fieldstegundnauðsynlegtlýsingu
modelStrengiðJáEins og fyrir Chat fullnægingarÞær fylgjast með suffixes.
inputString eða ArrayJáStringa, eða lista yfir atriði: skilaboð (hlutverk user, assistant, system, developer) með input_text, input_image og output_text hluta, og function_call og function_call_output Vörur fyrir verkfæri. input_image Taktu einn image_url tengil eða gögn URL, ekki skrá id. reasoning og web_search_call atriði eru skipt; item_reference Það er hafnað.
instructionsStrengiðNei ekkiLeiðbeiningar um kerfið.
max_output_tokensÍtrekaðNei ekkiMeirihluti til að skrifa.
temperature
top_p
FjöldiNei ekkiSampling stjórn, þar sem líkan tekur þá.
tools
tool_choice
parallel_tool_calls
Array, String eða Object, BooleanNei ekkiHugbúnaðurinn er í samræmi við viðbrögð ({"type": "function", "name": …, "parameters": …}) a web_search eða web_search_preview Tólin snúast á Vefsíða leitar Þegar það hjálpar eru aðrar innbyggðar verkfæri hafnað.
reasoningObjektumNei ekki{"effort": "minimal" | "low" | "medium" | "high"}. xhigh og max þýðir high; none Endurtakið það.
text.format
response_format
ObjektumNei ekkiStýrt útgáfa, eins og JSON skipulagi eða json_object.
metadataObjektumNei ekkiReturned óbreytt í svari. Á hámarks 16 stringa gildi, lykla allt að 64 stafi og gildi allt að 512.
streamBooleanNei ekkiStream atburðir eins og lýst er hér að neðan.
storeBooleanNei ekkiEkkert er geymt, og svarið segir alltaf "store": false.
previous_response_id
conversation
background
String, Object og BooleanNei ekkiEkki styðjað : 400 unsupported_parameterSvör eru ekki geymdar, þannig að senda alla samtalinu í input Í hvert sinn.

Svarið

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

Tilkynning um verkfæri birtist í output eins og a function_call Atriði með call_id, name og argumentsSendu niðurstöðurnar aftur sem a function_call_output Staðsetning með sömu call_idReasoning, þegar líkan gefur það aftur, er reasoning Atriði með reasoning_text Innihald, listast fyrst status er incomplete Þegar svarið hitti max_output_tokens eða vefurinn hafnaði, með incomplete_details.reason Settu á max_output_tokens eða content_filterSvarið endurspeglar einnig stillingarnar fyrirspurnanna (hitastig, verkfæri, verkfæri val og svo framvegis) eins og OpenAI gerir, og fylgir með nymbot Kostnaður fyrir hlutina.

Áhugaverð, hvert atburður er event: Línu og a data: Línu með a sequence_numberí þessari röð: response.created, response.in_progress, response.output_item.added, response.content_part.addedHver fjöldi af response.output_text.delta, response.output_text.done, response.content_part.done, response.output_item.doneOg að lokum response.completed með notkun og kostnað. svar skera stutt endir með response.incomplete í staðinn, og mistök eftir að flæði byrjaði með response.failedHugleiðsla á strömum sem eigin hlut með response.reasoning_text.delta og .doneTölur koma eftir skilaboðinu, hver sem atriði með response.function_call_arguments.delta og .done.

StaðsetningÞegar
400Nei ekki model eða input; previous_response_id, conversation, background eða item_reference (unsupported_parameter); ekki styðjað verkfæri eða efni tegund.
402, 403, 404, 429, 502, 503Hvað um chat fullnægjendur.

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 skilaboð

Anthropic formatið, fyrir Anthropic SDKs og Claude Code. Það virkar með öllum gerðum í söfnuðinum, ekki aðeins Claude: beiðni er þýtt, hlaupið í gegnum sömu pipeline og þýtt aftur.

POST https://nymbot.ai/api/v1/messages - þarf API lykil, eins og x-api-key eða Authorization: Bearer.

The anthropic-version og anthropic-beta Anthropic líkannafn eru samsvarað söfnuðinum, þannig að Claude Code og SDKs vinna með þeim nöfnum sem þeir nota nú þegar:

  • Nafnið sem listinn þekkir, svo sem claude-sonnet-5 eða anthropic/claude-opus-5Það er notað eins og það er.
  • um dagsetningu (-20260514), -latest, útgáfa tag eins og -v1, bracketed dag eins og [1m] og ein anthropic/ eða anthropic. Hugmyndir eru teknar út, og stig og dásir í útgáfunni eru reynt báðar leiðir (claude-haiku-4-5 finnur claude-haiku-4.5).
  • Ef það passa enn ekki, er fjölskyldan (Opus, Sonnet eða Haiku) notað, svo lengi sem útgáfa greinarinnar er sömu eða nýrri en það sem beðið er um.
  • Nafnið sem passa ekki við neitt kemur aftur 404 not_found_error.
Fieldstegundnauðsynlegtlýsingu
modelStrengiðJáA catalog model id, eða Anthropic modell nafn.
max_tokensÍtrekaðJáMeirihluti til að skrifa.
messagesArrayJáuser og assistant að snúa, með text, image (Base64 eða URL uppspretta) tool_use og tool_result Blokkinn á. thinking Blókar frá fyrri snúningum eru samþykktar og kastaðar.
systemString eða ArrayNei ekkiSystem prompt, eins og string eða texta blokk.
temperature
top_p
FjöldiNei ekkiSampling stjórn, þar sem líkan tekur þá. top_k Það er samþykkt og kastað.
stop_sequencesTölur af StringsNei ekkiText sem endar svarið. Hámarks 4 stringa, hámarks 256 stafi hver.
tools
tool_choice
Áhrif, fyrirbæriNei ekkiverkfæri með name, description og input_schema• A web_search Server Tool fer fram á Vefsíða leitarAðrar innbyggðar verkfæri Anthropic (bash, textaskrá, tölvu notkun) eru hafnað með unsupported_tool. tool_choice Taktu auto, any, tool eða noneog disable_parallel_tool_use.
thinkingObjektumNei ekki{"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} eða {"type": "disabled"}Fjárhagsáætlunin velur áherslu: undir 2.048 lágmarks, frá 2.048 lágmarks, frá 8.192 miðlungs, frá 16.384 hár. output_config.efforteða hár.
streamBooleanNei ekkiStream í viðburðarstigi Anthropic.
metadataObjektumNei ekkiviðurkennd og óþekkt.

Svarið

{
  "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 Einnig er hægt að halda tool_use Blokk og A thinking Blokk, sem signature Það er tómt. stop_reason er end_turn, max_tokens, tool_use eða refusalHann starfaði á sama hátt og finish_reason er Chat fullnægingar; stop_sequence Það er alltaf null, jafnvel þegar hætta sekúndur endaði svarið. input_tokens nýtt inntök telst aðeins; Cached inntök er í tveimur cache sviðum. Kostnaður er í nymbot Object og X-Nymbot-Cost-Sats Heiður

Hljómar, atburðirnar eru Anthropic's: message_start, content_block_start, ping, content_block_delta (text_delta, input_json_delta eða thinking_delta), content_block_stop, message_delta með hættu ástæðu, notkun og nymbot Kostnaður fyrir hlutina og message_stop• A ping er einnig sendur á hverjum 15 sekúndum meðan líkan er í gangi. Tölvuleiðir koma eftir texta, hver sem tool_use blokk með öllu inntakinu í einum input_json_delta.

Mistök á þessum endapunkti nota formátum Anthropic: {"type": "error", "error": {"type": "not_found_error", "message": "…"}}Skortur jafnvægi er 402 billing_error, yfirþreyttur birgir 503 overloaded_errorA mistök eftir að flæði hefur byrjað er sent sem error viðburði .

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

Að telja tokens

Upphæð á því hversu margir inngöngutóknir skilaboð myndi nota, svo að viðskiptavinur geti athugað áður en það sendir.

POST https://nymbot.ai/api/v1/messages/count_tokens — þarf API lykill. Frjáls.

Líkaminn er eins og SkilaboðÁn max_tokens; nafn líkanna þarf að leysa. reikningin er áætlun: stafi kerfisspjall, skilaboð, verkfæri kalla og verkfæri skilgreiningar skipt með fjórum, auk 1,600 fyrir hvert mynd. Það er ekki eigið tokenizer, þannig að raunverulegur reikning getur verið mismunandi. lykill sem hefur náð hámarki sínu getur enn notað það.

Svarið

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

Listið módel

Hver líkan og myndavél sem API samþykkir, með því hvað það kostar. Listið er lesið úr sömu lifandi greininni eins og pickeri forritinu, svo það er alltaf það sem þjónustan mun keyra.

GET https://nymbot.ai/api/v1/models - Engin lykill þarf. Skrifað í fimm mínútur.

GET /api/v1/models/{id} Returns 1 innleiðing.

Fieldstegundnauðsynlegtlýsingu
typeÞátttakendur (QueryNei ekkichat (Það er að minnsta kosti, image, video, audio, embedding eða allNokkrir geta verið veitt, eins og image,video.

Verð eru það sem þú borgar, með gjaldmiðli og margsins þegar í, í dollara og í sats við núverandi Bitcoin verð. balance segir hvaða jafnvægi líkan eyðir. nymbot_key er stutt nafn módelsins í app. created er alltaf 0, þar sem greinin skráir ekki hvenær líkan var bætt við. per_request í staðinn.

nymbot/auto er alltaf fyrst, verðlaun sem variable, með a routes Listi sem gefur hverjum venjulegum leiðarstigum. Það listar sýn og rökfræði, en ekki verkfæri.

GET /api/v1/models/{id} viðurkennir sömu nöfn og smásögur sem beiðni og gefur til baka inntakið fyrir líkan sem þeir ákveða.

Svarið

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

Aðrir tegundir:

  • Myndir Innleiðingar hafa capabilities (accepts_image_url, requires_image_url, edit) og verð per_generation.
  • Vídeó Innleiðingar hafa max_duration_seconds og resolutionsog verð per_second fyrir hverja ákvörðun.
  • Audió Innleiðingar hafa audio_type speech eða transcriptionVerðlaun per_1k_chars eða per_minute.
  • innblástur Innleiðingar hafa dimensions, context_length, max_inputs og verð á milljón innflutnings tokens.

Verð merktar "estimated": true eru áætlanir forritsins fyrir rafall sem verð er ekki birt. óþekkt type Til baka 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);