Saltatu edukira
Nymbot-era bueltan

Ezagutza oinarria Garapitzaileak

Txat, Erantzunak eta Mezuak

Tres modulu bati zerbait galdetzeko bide, bezeroek jada erabiltzen dituzten hiru formatuetan, modelo berdinetan oinarrituta eta modu berean koblatuta.

Txataren betiketak

OpenAI txat formatua, eta tresna gehienek baten onartzenatzen dutena. Bidali arteko elkarrizketa bidali eta hurrengo mezuari erantzuna jaso.

POST https://nymbot.ai/api/v1/chat/completions — API gako bat behar du.

Soilik model eta messages beharrezkoak dira. Aukeratutako modeloak ez duen laguntasun parametru bat errore gabe ezdatzen da, beraz, eskaera-gorru bat modelo guztietan funtzionatzen du. modeloen zerrendak bakoitzaren supported_parametersEz den uzten, baizaldik menurtzen dena, modeloak ezin duen guztia da: ikusten ezin duen modelo baten irudiak, ez inautzi ablean dituen modelo baten tresnak.

KaleaIdatziBeharrezkoaDeskribapena
modelsariaBainymbot/auto (edo auto) Nymboten ibilbide trinko standardean bideratzeko, edo katalogo modelo id baten bezala, adibidez anthropic/claude-sonnet-5 Pro saldoan. Aplikazioaren izen laburrak eta izen-bereziak ere onartzen dira. 'a' zein letra agurtzean amaitu daitezke suffixo.
messagestaldeaBaiElkarrizketa. Paperak system, developer (sistema bezala tratatua), user, assistant eta tool. Edukia testu-saila bat edo zerrenda bat da text eta image_url zatiak; argazkiak soilik erabiltzailearen mezuetan. input_audio eta fitxategi zatiak rejected egiten dira.
streambooleanEzBidali erantzuna idatzita dagoen bezala. Ikusi streaming.
stream_optionsobjektuaEz{"include_usage": true} token kopuruekin eta kostuarekin azken atal bat gehitzen du.
max_tokens
max_completion_tokens
entegeroaEzIdaz ditzakeen token gehienak. Gogoigarriena bada, modeloaren maximo batera jaisten da. Zure saldotik gordetzen den kantitatea ere ezartzen du, beraz, zenbaki txikiagoak hasierako kreditu gutxiago behar du.
temperature
top_p
zenbakiaEzOrezketaren kontrolak: temperature 0 eta 2 arteko, top_p 0-etik 1era.
stopestruna edo taldeaEzErantzuna amaitzen duen testua: esteka bat edo lau esteka gehien, bakoitza 256 karakter gehien. Ez da erabiltzen nymbot/auto.
seedentegeroaEzNeurretan ala nora, modeloak bidea laguntzen duen tokietan, osagarrietan berdetzeko.
presence_penalty
frequency_penalty
zenbakiaEzErrepakzio kontrolak, bakoitza -2 eta 2 artean.
response_formatobjektuaEz{"type": "json_object"} edo {"type": "json_schema", "json_schema": {…}}, non modeloak laguntzen duen. Ez da ... erabiltzen nymbot/auto.
tools
tool_choice
parallel_tool_calls
array, string edo object, booleanEzFunzioi deiak. Ikusi tresna deiak. A web_search tresna켜진다 web bilaketaGutxienez tresna 128 eta definizioen 512 KB, gehienbeste 64 mailako sakonera; gehiago da 400.
reasoning_effort
reasoning
testu-doia, objektuaEz"minimal", "low", "medium" edo "high", edo {"effort": "high"}. "none" edo {"enabled": false} desaktibatzen du. Ikusi arrazoamena.
pluginstaldeaEz[{"id": "web", "max_results": 5}] beti weba bilatzen du lehenik. 10 emaitza arte.
nentegeroaEzSoilik 1. Beste guztia itzultzen da 400.
logit_bias
user
metadata
objektu, estranga, objektuEzOnartu eta ez da aurrera bidali. logit_bias token id gehienez 300 -100 eta 100 arteko zenbakietara mapatzen ditu; user zuk beharraenez 256 karakterera arte da; metadata elabidez 16 ari-testuinguru zenbaki maximo du, giltzak 64 karakter artekoak eta balioak 512 artekoak.

Erantzuna arrunko bat da chat.completion, kostua barne usage.cost (dolaretan) eta nymbot objektua. model resolbiltutako modelo IDa da, beraz izen laburra izen oso gisa itzultzen da. Erantzut baino lehen modeloak pentsatu bada, bere arrazoibidea dago message.reasoning_content, erantzunetik bereizita.

Erantzuna

{
  "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 etorriaren arabera kalkulatuta da, bidezkaileaek modu desberdinean raportatzen dutelako: tool_calls eredkia tresnak eskatu zituenenean, length erantzunak onartutako token guztiak erabili zituenenean (edo modeloak arrazoitzean guztiak gastatu zituen eta ez zuen erantzun bat idatzi), content_filter hornikatza bazitu zenean, eta stop beste ala eta. usage.completion_tokens_details.reasoning_tokens beti 0 da: ezkutuko arrazoibide tokenak kontatzen dira, eta kobratzen, completion_tokens.

EstatusaNoiz
400Ez model edo messages (missing_required_parameter); audio edo fitxategi parte bat, edo irudiak modeloak ezin ditu ikusi ez dituenentzako (unsupported_content); 20 baino gehiago irudi (too_many_images); lagunarpen parametrua mota okerra edo barne-tarte kanterikoa (invalid_value); irudi-esteka ez publikua da (invalid_image_url); ezin dituukan tresnak modelo baten gainean (unsupported_tool); n 1 izan ez den beste; a :thinking arrazoi ezin duen modelo baten sufixua (model_not_found); edo hornitzaileak eskaera ukoitu zuen (upstream_rejected).
402Modeloak gastatzen duen saldoa ezin du erreserba estali.
403Kasualtasun txarronek ez dira tasten estalduraetan egokitzen (key_limit_reached). Txikiago max_tokens edo gehitu gehieneko muga.
404Ez duzu izen horretako modeloa (model_not_found).
429Gakoaren rate limitua, edo hornitzailearenaren (upstream_rate_limited).
502, 503Hornitzailea ez zuen funtzionatu (upstream_error) edo sobrekargatuta dago (upstream_overloaded, ,rekin Retry-After). Ez da ezer kargatzen hornitzaileak saiategi horretarako fakturatu ez bada.

Endpoint bakoitzak partekatzen dituen status kodeak honako hauetan zerrendatzen dira: erroreak.

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

Erekin "stream": true erantzuna server-sent events bezala iristen da modeloak idazten duen bitartean. Prozesu bakoitza da chat.completion.chunk baten""" data: lerra, eta fluxua hemen amaitzen da data: [DONE]. Pentsamenduak iristen da delta.reasoning_content, erantzuna delta.content.

Eskemendu 100 segundu baino gehiago behar dituzten guztia, erantzun luze bat edo erantzun handi bat bezalakoak. max_tokens edo razonamendu modelo bat. Ez fluxualdo (streamed) egiten den eskaierak ez du ezer bidaltzen erantzuna amaitu arte, eta zure eta Nymbot arteko sarea itzali bisaileak 100 segundutik baino gehiago pasatzean konekzio inaktiboa itzali dezake; modeloak lana amaitzen du eta idatzitakoa kobratzen da, baina erantzuna galtzen da. Fluxualdo batek keep-alivesak bidaltzen ditu, beraz, modeloak idazten duen bitartean irekita mantentzen da.

Fluxua

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]
  • Hasiera egiten duten lerroak : keep-alive komentoak dira, 15 segundotan behin bidaltzen direnak modeloa pentsatzen ari den bitartean. SSE bezeroek ez dituzte kontuan hartzen.
  • Gataztu "stream_options": {"include_usage": true} goizeko zati azkena lortzeko, hautsikoan choices, token kopuruak, kostua eta nymbot objektua.
  • Ordainketa fluxua amaitu ondoren finkatzen da. Konektua lehenegiago itutzean, ez da modeloa gelditu: Nymbot-ek hornitzailearen fluxuaren geria irakurtzen du, 25 segundoraino, bere token kopurua lortzeko, eta hornitzaileak raportatzen duena ordaintzen duzu. Kopuru hori gabe, ordainketa zure sarrera eta idatzitakoaren eta, gainera, arrazoitzen duen modelo baten output-ematen guztiaren arteko estimazio bat da.
  • Errore bat lehen zati artean, adibidez 401 edo 402, JSON arrunterat dela bueltatzen da bere egoera-kodearekin, ez fluxu gisa. Fluxua hasi ondoren sortzen den errore bat azken gisa iristen da data: {"error": {…}} ekidea, eta estrea amaitzen da gabe [DONE].
  • Tresnak dituzten eskaerak eta OpenAI-ren Erantzunen garraioan dagoen modeloak ez dute hornitzailearen aldetik fluxu bidez bidaltzen. Hala ere, fluxu baliagarri batekin erantzuten dute, erantzuna amaituta dagoenean bidaltzen dena.

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

Tresna deiak

Deskribatu funtzioak honetan tools eta modeloak erantzun beharrean bat deitzeko eska ditzake. Funzioa exekutatzen duzu, bere emaitza gehieki... tool berdinak den mezuarekin tool_call_id, eta berriro bidali konbertsazioa. Nymbot ez du inoiz zure funtzioak exekutatzen; modelaren eskaera berriro pasatzen dizu.

tool_choice hartzen ditu "auto", "none", "required" edo {"type": "function", "function": {"name": "…"}}. Modelen zerrendak tresnak deitu ditzakekeen modeloak markatzen ditu (capabilities.tools). Tresnak lantzen dira zalearik gabe 400 unsupported_tool bai nymbot/auto eta OpenAIren Responses transportean funtzionatzen dituzten katalogo modelo gutxietan, non Nymbot ezin duen tresnak bidali.

Erekin "stream": true, tresnak dituen eskaera zati bakar batean exekutatzen da eta ondoren lote sekunzia normal gisa bidaltzen da: errolak, indexa, id, izena eta argumentuak duen tresna deia bakoitzeko lote bat, eta amaierako loteak. Tresna deiak streaming bidez irakurtzen dituzten klientek ohiko bezala tratatzen dute.

Euskaraz, zati batean

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

Irudiak eskaera batean

Modeloak ...-rekin capabilities.vision argazkiak irakurri ditzake. Gehitu bat image_url erabiltzaileko mezu baten parte, either publiko bat https:// esteka edo a data:image/…;base64, URL. Galaera 20 arte eskaera bakoitzeko. SVG irudiak Gertatuko dira, eta ez ere 4.096 karakteretik handiagoa den esteka bat edo erabiltzaile izena edo pasadorea duen bat (400 invalid_image_url). Hautatzko bat detail da auto, low edo high.

Erekin nymbot/auto, irudi bat duen eskaera modelo estandar batera bidaltzen da ikusteko gai denena. Katalogo modelo bat gabe capabilities.vision argazkiak uko egiten die eta 400 unsupported_content. Irudiak soilik erabiltzailearen mezuetan izan daitezke. Lotua gordin publiko bateraino joan behar da; Nymbot-ek irudia modeloaren hornitzaileari pasatzen dio eta ez du gordetzen.

Irudi bat horniketa bezala karga egiten da zerbitzarikak eskaera izturgatik kontatzen duen tokenak bezala, eskaeraren gainerakoak bezala.

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

Pentsamendu logikoa

Modeloak ...-rekin capabilities.reasoning erantzut aurretik pentsatu dezakete. Eskatu gehiago edo gutxiago horretaz reasoning_effort ("minimal", "low", "medium" edo "high") edo "reasoning": {"effort": "high"}, edo gehitu :thinking modela izenari, ez esforzu handia esan nahi duena. Pentsapenik gabeko modelo batean, ezarpena ez da kontuan hartzen. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ nymbot/auto, :thinking eskatua bidaltzen du arrazoibide araututako bidera.

Anthropic modeloetan, ahalegua 1.000, 2.000, 8.000 edo 16.000 inguruko tokeneko pentsamendu aurrekontu bihurtzen da, ez dira inoiz gehiago max_tokens uzten du. Pentsatzea utzi egiten da egunean tool_choice tresna bat behartzen du, eta eskaerak tresna-zizklo bat jarraitzen duenean (bere azken mezua tresna-emaitza bat da), Anthropic-ek lehenagoko sinadura duten pentsamendua berresaten behar duelako. Bera dela eza da Responses eta Messages puntueetan ere.

Pentsamenduak berriro bueltatzen dira message.reasoning_content, edo delta.reasoning_content streaming egiten duzunean, inoiz ez da erantzunaren barnean nahastu. Pentsamendua outputa da eta horren arabera kobratzen da, barnean completion_tokensBehin eta bazaten, hornitzaile batzuek ez dute arrazoizko testurik itzultzen, eta hala ere ordaindu egiten da.

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

Modela iragarkinak

Modeloaren izenaren suffix batek eskatza nola kudeatzen den aldatzen du, beste talde batekinik gabe. ID osoekin eta izen laburrekin ere lan egiten dute, adibidez anthropic/claude-sonnet-5:online.

SuffixEfektoa
:onlineLehen weba bilatzen du, bezala plugins: [{"id": "web"}]. Ikusi web bilaketa.
:thinkingArrazoimen errutua handia; gaean nymbot/auto, razonamendu bidea. Ezin razonatzen duen modelo batean, 400 model_not_found “puntu enduruntarik ez aurkitu” idatziarekin.
:nitro, :floor, :exacto, :extendedOnartu eta ezabatu. Katalogo bakoitzak ibilbidea bat du, beraz ez dago aukeratzeko azkarrago, merkeago edo luzeagoa; sufikseak onartzen dira, beste zerbitzu batzuetatik kopiatutako modelo izenak hona ere funtzionatzen izan behar delako.

Suffix beste edozein ez da kontuan hartzen. Izena osoa probatzen da lehen, beraz, id ezagunaak puntu-kolon bat duenean ere funtzionatzen du modelo bat; hori ez bada posible, suffixak amaieratik behin eta akean kentzen dira modelo bat aurkitu arte. Modelo baten izenaren luzea 200 karakterra izan daiteke gehiago, 4 suffix gehien erabiliz; luzeago bat honen bideza errefusatzen da: 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);

Chat modelo guztiek web bizi honetik erantzun dezakete. Nymbot-ek azken erabiltzailearen mezuaren bila egiten du (bere lehen 2.000 karakteretan), onena diren orrialdeak irakurtzen ditu eta galderarekin batera modeloari ematen dizkio, instruktiboak ez dituen kanpoko eduki gisa markatuta. Bi modu daude:

  • Beti bilatu: "plugins": [{"id": "web", "max_results": 5}], edo a :online suffixa modeloan.
  • Bilatu laguntzen denean: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}], baitza onartuta ere web_search_preview edo openrouter:web_search. Nymbot soilak bilatzen ditu galdera informazio egunkotarako behar izaten ari dela diruditzen denean soilik, aplikazioak erabiltzen duen proba bera.

max_results bereziki 5 da eta gehien 10. Iturciak datoz nymbot.web_search.sources, bakoitza baten bidez title, snippet eta url, eta bezala url_citation mezularrean oharrak.

Bilaketa bakoitzak 0,008 $ kostatzen ditu, satsetara bihurkiz, tokenen gainetik, eta gordetzeko parte da. Irakurri dituen orriak sarrera tokenak ere dira, beraz, webetik jasotako erantzun bat token hauek baino gehiago kostatzen du galdera bera lehenengoitakoan egiten den baino, batzuetan behin eta berriz ere gehiago.

Euskaraz, zati batean

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

Erantzun-APIa

OpenAI-ren format berria, OpenAI Agents SDK-ak eta Codex-ek erabiltzen dena. Chat Completions bezalako modelo, fakturazio eta ezaugarri berdinetan funtzionatzen du.

POST https://nymbot.ai/api/v1/responses — API gako bat behar du.

KaleaIdatziBeharrezkoaDeskribapena
modelsariaBai...ri dagokionez Txataren betiketak, sufixak barne.
inputestruna edo taldeaBaiAgiratu bat, edo elementuen lista bat: mezuak (paperoak user, assistant, system, developer) errazten input_text, input_image eta output_text zatiak, eta function_call eta function_call_output tresnaentzako artikuluak. input_image hartzera du image_url esteka edo datu URLa, ez file IDa. reasoning eta web_search_call elementuak saltatuta daude; item_reference Gertatzea errefusatua da.
instructionssariaEzSistemaren argibideak.
max_output_tokensentegeroaEzIdazteko token gehienak.
temperature
top_p
zenbakiaEzSampleko kontrolak, modeloak horiek hartzen dituen tokietan.
tools
tool_choice
parallel_tool_calls
array, string edo object, booleanEzFunzio tool-ak, Erantzunen formaean ({"type": "function", "name": …, "parameters": …}). A web_search edo web_search_preview tresna켜진다 web bilaketa laguntzen denean. Beste tresna integratuak gaitzaturrak dira.
reasoningobjektuaEz{"effort": "minimal" | "low" | "medium" | "high"}. xhigh eta max esan nahi du high; none desaktibatzen du.
text.format
response_format
objektuaEzEgituratutako irtekinak, JSON schema gisa edo json_object.
metadataobjektuaEzErantzunean aldatu gabe itzuli. Begiratu 16 string balio, 64 karakteretaraino klyeak eta 512 karakteretaraino balioak.
streambooleanEzBeheko bezala deskribatzen diren ekitalak estramatu.
storebooleanEzEz jaramonik. Ez da ezer gordetzen, eta erantzunak beti dio... "store": false.
previous_response_id
conversation
background
string, objektua, booleanEzEz da lagunatua: 400 unsupported_parameter. Erantzunak ez dira gordetzen, beraz bidali elkarrizketa osoa input aldi guztietan.

Erantzuna

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

Tresna eskaera bat agertzen da output gisa function_call item batenekin call_id, name eta arguments; bidali emaitza atzera a bezala function_call_output berarekin bera duen elementua call_id. Pentsamena, modeloak itzultzen duenean, da reasoning item batenekin reasoning_text edukiak, lehenengoa zerrendatuta. status da incomplete erantzunaren momentuetan max_output_tokens edo hornitzaileak uko egin luke, incomplete_details.reason ezarri honako hau max_output_tokens edo content_filter. Erantzunak OpenAI-renak egiten duen bezala eskaeraren konfigurazioak ere islatzen ditu (tenperatura, tresnak, tresna-hauterakoa eta abar), eta darama... nymbot kostua objektua.

Transmititua, ekitaldi bakoitza da event: lerra eta a data: a linea duen lerroa sequence_number, honen ordenan: response.created, response.in_progress, response.output_item.added, response.content_part.added, zenbat eta zenbat response.output_text.delta, response.output_text.done, response.content_part.done, response.output_item.done, eta azkenik response.completed erabilera eta kostuarekin. Galdekortasunak amaitutako erantzun bat honen amaiera du response.incomplete alabidean, eta akats bat hasieratik hasi zen fluxua... response.failed. Pentsamendu fluxoak bere berrizko elementu gisa dago response.reasoning_text.delta eta .done. Tresna deiak mezkiaren ondoren etorri egiten dira, bakoitza elementu gisa response.function_call_arguments.delta eta .done.

EstatusaNoiz
400Ez model edo input; previous_response_id, conversation, background edo bat item_reference (unsupported_parameter); ez destekatutako tresna edo edukiaren mota.
402, 403, 404, 429, 502, 503Chat Completions bezalako.

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 Mezuak

Anthropic-en formatua, Anthropic SDK-entzat eta Claude Code-entzat. Katalogo guztiko modelo guztiekin funtzionatzen du, ez bakarrik Claude-rekin: eskaera baino baino itzulitzen da, pipeline beretik igarotzen da eta berriro itzulitzen da.

POST https://nymbot.ai/api/v1/messages — API gako bat behar du, bezala x-api-key edo Authorization: Bearer.

-a anthropic-version eta anthropic-beta tituluak onartzen dira eta ahazten dira. Anthropic modelo izenak katalogoarekin alderatzen dira, beraz Claude Code eta SDKak ojan erabiltzen dituzten izenekin funtzionatzen dute:

  • Katalogak ezagutzen duen izen bat, adibidez claude-sonnet-5 edo anthropic/claude-opus-5, bezala erabiltzen da.
  • Bestela data (-20260514), -latest, bertsio-etiketa bat bezalako -v1, parentesizatuko etiketa bat, adibidez [1m] eta eta anthropic/ edo anthropic. prefixak kentzen dira, eta puntuek eta marraz adarrek berezingo bide biak probatzen dira bertsioan (claude-haiku-4-5 aurkikuntzak claude-haiku-4.5).
  • Hala ere ezer ez batera, familia (Opus, Sonnet edo Haiku) erabiltzen da, katalogoaren bertsioa eskatutakoa baino berria edo bera den bitartean.
  • Ezer ez duen izena itzultzen da. 404 not_found_error.
KaleaIdatziBeharrezkoaDeskribapena
modelsariaBaiKatalogeko modelo ID bat, edo Anthropic modelo izena.
max_tokensentegeroaBaiIdazteko token gehienak.
messagestaldeaBaiuser eta assistant birak, ,rekin text, image (base64 edo URL iturria), tool_use eta tool_result blokeak. thinking lehenagoko txanquetako blokeak onartzen dira eta uzten dira.
systemestruna edo taldeaEzSistema prompta, testu-atzalgi gisa edo testu-bloke gisa.
temperature
top_p
zenbakiaEzSampleko kontrolak, modeloak horiek hartzen dituen tokietan. top_k onartu eta bertan uztean.
stop_sequencestestuinguruko testuingarri arrayaEzErantzuna amaitzen duen testua. Gutxienez 4 esteka, bakoitza 256 karakterera beharra ez duena.
tools
tool_choice
matorea, objektuaEzTresnak name, description eta input_schema. A web_search zerbitzaritza tresna켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜켜 web bilaketa; Anthropic-en beste tresna barnekoak (bash, testu editorea, ordenagailuaren erabilera) baztertzen dira unsupported_tool. tool_choice hartzen ditu auto, any, tool edo none, eta disable_parallel_tool_use.
thinkingobjektuaEz{"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} edo {"type": "disabled"}Aurrekontuak ahalegin maila bat hautatzen du: 2.048 azpian minimoa, 2.048tik baxua, 8.192tik ertaina, 16.384tik handia. Adaptiboak erabiltzen ditu output_config.effort, edo altua.
streambooleanEzEskatua Anthropic-en ekitaldi formatuan.
metadataobjektuaEzOnartu eta ezetsi.

Erantzuna

{
  "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 gainera eutsi dezake tool_use blokeak eta a thinking bloke, norren signature batik eskatzen da. stop_reason da end_turn, max_tokens, tool_use edo refusal, modu berean egin zuen bera bezala finish_reason bai Txataren betiketak; stop_sequence beti da null, erantzukizuna geldialdi-sekuentzia batek amaitu zuenera ere. input_tokens kontuak sartu berriak bakarrik; cache-etan dauden sartuak bi cache-aretan daudela. Kostua hau da nymbot objektua eta X-Nymbot-Cost-Sats goib idea.

Transmitituta, Anthropic-en ekitaldiak hauek dira: message_start, content_block_start, ping, content_block_delta (text_delta, input_json_delta edo thinking_delta), content_block_stop, message_delta geldialdi arrazoarekin, erabilera eta eta nymbot kostu-objektua, eta message_stop. A ping modeloa lan egiten ari den bitartean 15 segundotan behin ere bidaltzen da. Tresna deiak testuaren ondoren iristen dira, bakoitza gisa tool_use blokea bere sarrera osoa bat</h4> input_json_delta.

Hauko endpoint honetako erroreak Anthropic-en formatua erabiltzen dute: {"type": "error", "error": {"type": "not_found_error", "message": "…"}}. A saldoa laburra da 402 billing_error, hornitzaile gehiegi kargatua 503 overloaded_error. Fluxa haseri ondoren meydana datorteko akatsa bidaltzen da bat bezala error ekidea.

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

Tokenak kontatzen

Mezu-eskako baten token sarrera zenbat izangoen kalkulua, bezeroak bidali aurretik egiaztatu sakeko. Doakoa da, baina gako bat behar du ordez.

POST https://nymbot.ai/api/v1/messages/count_tokens — API gako bat behar du. Doan.

Gorputza bera da... bera bezalakoa Mezuak, gabe max_tokens; modeloaren izenaren resolbaidea behar da. Kopurua estimazio bat da: sistema promptaren, mensajeen, tresna deialzien eta tresna definiziozko karakterrak lauetan banatuta, eta irudi bakoitzeko 1.600 gehituz. Ez da hornitzailearen propioa tokenizerra, beraz kopuru benetrak desberdin izan daiteke. Bere limitea iritsi duen gako batek oraindik erabili dezake hori.

Erantzuna

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

Modelak zerrendatzea

APIak onartzen dituen talde eta generatzaile guztiak, haien kostekin. Zerrenda aplikazioaren hautatzaileko katalogo biziarekin soilik irakurtzen da, beraz, beti zerbitzarik exekutatuko duenena da.

GET https://nymbot.ai/api/v1/models — ez da giltzarik behar. Bost minutuz gordeta.

GET /api/v1/models/{id} sarrera bat itzultzen du.

KaleaIdatziBeharrezkoaDeskribapena
typetestuinguru (bilaketa)Ezchat (berezgaia), image, video, audio, embedding edo all. Batzuk eman daitezke, bezala image,video.

Prezioak ordainatzen dituzuna dira, komisioa eta labanategia barne artean, dolarretan eta satseletan Bitcoinren egungo prezioan. balance modeloak zer saldo gastatzen duen esaten du. nymbot_key aplikazioan dago modelaren izen laburra. created beti da 0, katalogoak ez duel erregistroetan gordetzen modelo bat noiz gehitu zen. Token publizatutako tarifarik gabeko modelo bat prezioa du per_request horren ordez.

nymbot/auto beti lehen doa, prezioa hau da variable, baten ariarekin routes ibilbide standard bakoitzaren tarifak ematen dituen zerrenda. Ikusera eta razonamendua azaltzen ditu, baina ez ditu tresnak.

GET /api/v1/models/{id} eskaerako izen eta izen-altuak berak onartzen ditu, eta deskargatzen diren modeloaren sarrera itzultzen du.

Erantzuna

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

Beste motak:

  • Irudi sarrerak dute capabilities (accepts_image_url, requires_image_url, edit) eta prezio bat per_generation.
  • Bideoa sarrerak dute max_duration_seconds eta resolutions, eta prezio bat per_second resoluzio bakoitzentzat.
  • Audio sarrerak dute audio_type speech edo transcription, prezioa markatua per_1k_chars edo per_minute.
  • Embedimentua sarrerak dute dimensions, context_length, max_inputs eta milioi token bakoitzeko prezioa.

Prezioak markatuak "estimated": true aplikazioak estimatzen dituen balioak generator batentzat, ez duela prezioa argitaratzen. Ezaguna gabe bat type itzulpenak 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);