বিষয়বস্তু এড়িয়ে যান
ফিরে আসুন Nymbot

জ্ঞানের ভিত্তি বিকাশকারী

চ্যাট, উত্তর এবং বার্তা

একটি মডেলকে কিছু জিজ্ঞাসা করার তিনটি উপায়, তিনটি ফরম্যাটে গ্রাহকরা ইতিমধ্যে কথা বলছেন, সবগুলি একই মডেলগুলিতে চলছে এবং একই ভাবে চার্জ করে।

চ্যাট সম্পন্ন

OpenAI চ্যাট ফরম্যাট, এবং প্রায় প্রতিটি টুল সমর্থন করে. এখন পর্যন্ত কথোপকথন পাঠান এবং পরবর্তী বার্তাটি ফিরে পেতে।

POST https://nymbot.ai/api/v1/chat/completions একটি API চাবি দরকার।

শুধুমাত্র model এবং messages একটি নমুনা প্যারামিটার যে নির্বাচিত মডেলটি গ্রহণ করে না একটি ত্রুটি ছাড়াই পড়ে যায়, তাই একটি অনুরোধ শরীর মডেলগুলির মধ্যে কাজ করে। supported_parametersযা প্রত্যাখ্যান করা হয় বরং ফেলে দেওয়া হয় তা মডেল যা করতে পারে না: একটি মডেলের জন্য ছবি যা দেখতে পারে না, একটি মডেলের জন্য সরঞ্জাম যা তাদের ডাকতে পারে না।

মাঠপ্রকারপ্রয়োজন।বর্ণনা
modelস্ট্রিংহ্যাঁnymbot/auto (অথবা auto) স্ট্যান্ডার্ড ব্যালেন্সে নিম্বটের রাউটিংয়ের জন্য, অথবা একটি ক্যাটালগ মডেল আইডি যেমন anthropic/claude-sonnet-5 প্রো ভারসাম্য. অ্যাপ্লিকেশনের সংক্ষিপ্ত নাম এবং অ্যাডভান্সগুলিও গ্রহণ করা হয়। যথেষ্ট.
messagesঅ্যারেহ্যাঁকথোপকথন। ভূমিকা system, developer (সিস্টেম হিসাবে বিবেচিত), user, assistant এবং toolবিষয়বস্তু হল একটি স্ট্রিং বা একটি তালিকা text এবং image_url অংশ; শুধুমাত্র ব্যবহারকারীর বার্তায় ছবি। input_audio ফাইলের কিছু অংশ অস্বীকার করা হয়েছে।
streamবোলিংনাউত্তরটি যেভাবে লেখা আছে সেভাবেই পাঠিয়ে দিন। দেখুন। স্ট্রিমিং.
stream_optionsউপাদাননা{"include_usage": true} টোকেন হিসাব এবং খরচ সঙ্গে একটি শেষ টুকরা যোগ করে।
max_tokens
max_completion_tokens
অন্তর্ভুক্তনাসর্বাধিক টোকেন লিখতে. মডেলের সর্বোচ্চ পর্যন্ত নিম্নলিখিত যদি উচ্চতর হয়. এছাড়াও আপনার ভারসাম্য থেকে কতটা রাখা হয় তা নির্ধারণ করে, তাই একটি ছোট সংখ্যা শুরু করার জন্য কম ক্রেডিট প্রয়োজন।
temperature
top_p
সংখ্যানানমুনা নিয়ন্ত্রণ: temperature 0 থেকে 2 পর্যন্ত, top_p 0 থেকে 1 পর্যন্ত।
stopস্ট্রিং বা অ্যারেনাউত্তর শেষের টেক্সট: একটি শাখা বা সর্বোচ্চ 4 শাখা, প্রতিটি সর্বোচ্চ 256 চিহ্ন। nymbot/auto.
seedঅন্তর্ভুক্তনাপুনরাবৃত্তিমূলক নমুনা, যেখানে মডেল এটি সমর্থন করে।
presence_penalty
frequency_penalty
সংখ্যানাপুনরাবৃত্তি নিয়ন্ত্রণ, প্রতিটি -2 থেকে 2.
response_formatউপাদাননা{"type": "json_object"} অথবা {"type": "json_schema", "json_schema": {…}}, যেখানে মডেলটি এটি সমর্থন করে। দ্বারা ব্যবহৃত হয় না nymbot/auto.
tools
tool_choice
parallel_tool_calls
Array, String or Object, বোলিয়াননাডাউনলোড করুন. দেখুন টুল কলA web_search টুল বদলে যাচ্ছে ওয়েব অনুসন্ধানসর্বোচ্চ 128 টুল এবং 512 KB সংজ্ঞা, সর্বোচ্চ 64 স্তরের গভীর; আরো একটি 400.
reasoning_effort
reasoning
স্ট্রিং, অবজেক্টনা"minimal", "low", "medium" অথবা "high"অথবা {"effort": "high"}. "none" অথবা {"enabled": false} বেরিয়ে আসুন, দেখুন যুক্তি.
pluginsঅ্যারেনা[{"id": "web", "max_results": 5}] সবসময় প্রথম ওয়েবসাইট অনুসন্ধান করে. সর্বোচ্চ 10 ফলাফল।
nঅন্তর্ভুক্তনা১. সবকিছুই ফিরে আসে 400.
logit_bias
user
metadata
Object, String এবং Objectনাপাঠানো হয়েছে এবং পাঠানো হয়নি। logit_bias সর্বোচ্চ 300 টোকেন আইডি থেকে -100 থেকে 100 পর্যন্ত সংখ্যার মানচিত্র; user সর্বাধিক 256 অক্ষর; metadata সর্বোচ্চ 16 স্ট্রিং মূল্য, 64 চিহ্ন এবং 512 পর্যন্ত মূল্য রাখে।

উত্তরটি একটি সাধারণ chat.completionখরচ সহ usage.cost (একটি টাকার মধ্যে) এবং nymbot বস্তু। model একটি সংক্ষিপ্ত নামটি পূর্ণ নাম হিসাবে ফিরে আসে. যদি মডেলটি উত্তর দেওয়ার আগে বিবেচনা করে, তার বিবেচনাটি message.reasoning_contentউত্তর থেকে আলাদা।

প্রতিক্রিয়া

{
  "id": "chatcmpl-5f1c0a9e27d84b3c",
  "object": "chat.completion",
  "created": 1790726400,
  "model": "anthropic/claude-sonnet-5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "A Lightning invoice is a one-time payment request..."
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1240,
    "completion_tokens": 380,
    "total_tokens": 1620,
    "prompt_tokens_details": { "cached_tokens": 0 },
    "completion_tokens_details": { "reasoning_tokens": 0 },
    "cost": 0.01895
  },
  "nymbot": {
    "balance": "pro",
    "charged_credits": 0.162,
    "charged_sats": 16.2,
    "balance_credits": 412.425,
    "balance_sats": 41242.5
  }
}

finish_reason যা ফিরে এসেছে তা থেকে কাজ করা হয়, যেহেতু সরবরাহকারীরা এটি ভিন্নভাবে রিপোর্ট করে: tool_calls যখন মডেলটি সরঞ্জামের জন্য অনুরোধ করে, length যখন উত্তরটি অনুমোদিত প্রতিটি টোকেন ব্যবহার করে (অথবা মডেলটি তাদের সবকিছু বিবেচনা করে এবং কোনও উত্তর লিখে না), content_filter যখন সে অস্বীকার করে এবং stop অন্যথায় usage.completion_tokens_details.reasoning_tokens সবসময় 0: লুকানো যুক্তি টোকেন হিসাব করা হয়, এবং চার্জ করা হয়, completion_tokens.

অবস্থানযখন
400না model অথবা messages (missing_required_parameter); একটি অডিও বা ফাইল অংশ, অথবা একটি মডেলের জন্য ছবি যা তাদের দেখতে পারে না (unsupported_content); 20টিরও বেশি ছবি (too_many_images); নমুনা প্যারামিটার ভুল টাইপ বা বহিরাগত (invalid_value); একটি ছবি লিঙ্ক যা পাবলিক নয় (invalid_image_url); একটি মডেলের সরঞ্জাম যা তাদের ডাকতে পারে না (unsupported_tool); n ১ এর বাইরে; a :thinking একটি মডেলের উপর একটি স্ফীতি যা বুদ্ধিমান নয় (model_not_found) অথবা সরবরাহকারী অনুরোধ প্রত্যাখ্যান করেছে (upstream_rejected).
402মডেলের ব্যয়বহুল ব্যয়বহুল ব্যয়বহুল ব্যয়বহুল ব্যয়বহুল ব্যয়বহুল ব্যয়বহুল।
403সবচেয়ে খারাপ ক্ষেত্রে, চাবি ক্যাপটি উপযুক্ত নয় (key_limit_reachedনিম্ন max_tokens অথবা মাথা উঁচু করে নিন।
404(এই নামে কোন মডেল নেই)model_not_found).
429চাবিটির হারের সীমা, অথবা প্রদানকারীর (upstream_rate_limited).
502, 503প্রদানকারী ব্যর্থ (upstream_error) অথবা অতিরিক্ত পরিমাণে (upstream_overloaded, সঙ্গে Retry-After) সরবরাহকারী ব্যতীত কোনও জরিমানা করা হয় না চেষ্টা।

স্ট্যাটাস কোডগুলি প্রতিটি এন্ডপয়েন্ট শেয়ারের নীচে তালিকাভুক্ত ভুল.

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "messages": [
      {"role": "system", "content": "Answer in one short paragraph."},
      {"role": "user", "content": "What is a Lightning invoice?"}
    ],
    "max_tokens": 400
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

reply = client.chat.completions.create(
    model="anthropic/claude-sonnet-5",
    messages=[
        {"role": "system", "content": "Answer in one short paragraph."},
        {"role": "user", "content": "What is a Lightning invoice?"},
    ],
    max_tokens=400,
)
print(reply.choices[0].message.content)
print(reply.usage.cost)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const reply = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5",
  messages: [
    { role: "system", content: "Answer in one short paragraph." },
    { role: "user", content: "What is a Lightning invoice?" },
  ],
  max_tokens: 400,
});
console.log(reply.choices[0].message.content);
console.log(reply.usage.cost);

স্ট্রিমিং

সঙ্গে "stream": true উত্তরটি সার্ভার পাঠানো ইভেন্ট হিসাবে আসে যখন মডেল এটি লিখে। chat.completion.chunk এ A data: লাইন, এবং প্রবাহ শেষ data: [DONE]বুদ্ধিমত্তা আসে delta.reasoning_contentএর জবাবের মধ্যে delta.content.

স্ট্রিম করুন যা প্রায় 100 সেকেন্ডের বেশি সময় লাগতে পারে, যেমন একটি দীর্ঘ উত্তর, একটি বড় max_tokens একটি অনুরোধ যা স্ট্রিম করা হয় না উত্তরটি সম্পূর্ণ না হওয়া পর্যন্ত কিছু পাঠায় না, এবং আপনার এবং Nymbot এর মধ্যে নেটওয়ার্কটি প্রায় 100 সেকেন্ডের পরে একটি খালি সংযোগ বন্ধ করতে পারে; মডেলটি এখনও শেষ হয় এবং এটি যা লিখেছে তা চার্জ করা হয়, কিন্তু উত্তরটি হারিয়ে যায়।

স্ট্রিম

data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null}]}

data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[{"index":0,"delta":{"content":"A Lightning invoice"},"finish_reason":null}]}

: keep-alive

data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: {"id":"chatcmpl-5f1c0a9e27d84b3c","object":"chat.completion.chunk","created":1790726400,"model":"anthropic/claude-sonnet-5","choices":[],"usage":{"prompt_tokens":1240,"completion_tokens":380,"total_tokens":1620,"cost":0.01895},"nymbot":{"balance":"pro","charged_credits":0.162,"charged_sats":16.2,"balance_credits":412.425,"balance_sats":41242.5}}

data: [DONE]
  • লাইন দিয়ে শুরু : প্রতি 15 সেকেন্ডে মডেলটি চিন্তাভাবনা করছে এবং এসএসইর ক্লায়েন্টরা তাদের বাদ দেয়।
  • জিজ্ঞাসা করুন। "stream_options": {"include_usage": true} উপরের শেষ টুকরা পেতে, একটি খালি সঙ্গে choicesযেমন, টোকেন হিসাব, ব্যয় এবং nymbot বস্তু।
  • চার্জটি স্ট্রিম শেষ হওয়ার পরে সঞ্চালিত হয়. যদি আপনি সংযোগটি দ্রুত বন্ধ করেন তবে মডেলটি থামানো হয় না: Nymbot তার টোকেন সংখ্যা পেতে 25 সেকেন্ডের জন্য সরবরাহকারীর স্ট্রিমের বাকি অংশটি পড়েন, এবং আপনি প্রদানকারীর রিপোর্টগুলি পরিশোধ করেন।
  • প্রথম দফার আগে ভুল, যেমন 401 অথবা 402, তার স্ট্যাটাস কোডের সাথে সাধারণ JSON হিসাবে ফিরে আসে, একটি স্ট্রিম হিসাবে নয়। data: {"error": {…}} ঘটনাবলী, এবং প্রবাহ ছাড়া শেষ [DONE].
  • সরঞ্জামগুলির সাথে অনুরোধ এবং OpenAI এর প্রতিক্রিয়া ট্রান্সপোর্টে মডেলগুলি সরবরাহকারীর কাছ থেকে প্রবাহিত হয় না. তারা এখনও একটি বৈধ প্রবাহের সাথে উত্তর দেয়, যখন উত্তর সম্পন্ন হয়।

cURL

curl -N https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nymbot/auto",
    "stream": true,
    "stream_options": {"include_usage": true},
    "messages": [{"role": "user", "content": "Write a haiku about sats."}]
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

stream = client.chat.completions.create(
    model="nymbot/auto",
    stream=True,
    stream_options={"include_usage": True},
    messages=[{"role": "user", "content": "Write a haiku about sats."}],
)
for chunk in stream:
    if chunk.choices:
        print(chunk.choices[0].delta.content or "", end="", flush=True)
    elif chunk.usage:
        print("\ncost:", chunk.usage.cost)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const stream = await client.chat.completions.create({
  model: "nymbot/auto",
  stream: true,
  stream_options: { include_usage: true },
  messages: [{ role: "user", content: "Write a haiku about sats." }],
});
for await (const chunk of stream) {
  if (chunk.choices.length) process.stdout.write(chunk.choices[0].delta.content || "");
  else if (chunk.usage) console.log("\ncost:", chunk.usage.cost);
}

টুল কল

ফাংশন বর্ণনা করুন tools এবং মডেলটি উত্তর দেওয়ার পরিবর্তে একটি কল করার জন্য অনুরোধ করতে পারে. আপনি ফাংশনটি চালান, ফলাফলটি একটি হিসাবে যোগ করুন tool একই সঙ্গে বার্তা tool_call_idNymbot কখনো আপনার ফাংশন চালু করে না; এটি মডেলের অনুরোধটি আপনাকে ফিরিয়ে দেয়।

tool_choice নেয়। "auto", "none", "required" অথবা {"type": "function", "function": {"name": "…"}}মডেল তালিকাটি কোন মডেলগুলি সরঞ্জামগুলি কল করতে পারে (capabilities.tools) সরঞ্জামগুলি প্রত্যাখ্যান করা হয় 400 unsupported_tool আছে nymbot/auto এবং কয়েকটি ক্যাটালগ মডেল যা ওপেনএআই-এর রেসপন্স ট্রান্সপোর্টে চলে, যেগুলিতে নিম্বট সরঞ্জাম পাঠাতে পারে না।

সঙ্গে "stream": trueসরঞ্জাম সহ একটি অনুরোধ একটি অংশে চলে এবং তারপরে একটি স্বাভাবিক খণ্ড ক্রম হিসাবে পাঠানো হয়ঃ ভূমিকা, একটি খণ্ড প্রতিটি সরঞ্জাম কলকে তার সূচক, আইডি, নাম এবং আর্গুমেন্ট সহ বহন করে এবং সমাপ্তি খণ্ড। যে ক্লায়েন্ট স্ট্রিম করা টুল কলগুলি পড়েন তারা যথারীতি এটি পরিচালনা করেন।

প্রতিক্রিয়া, আংশিকভাবে

"choices": [
  {
    "index": 0,
    "message": {
      "role": "assistant",
      "content": null,
      "tool_calls": [
        {
          "id": "call_7d2e",
          "type": "function",
          "function": { "name": "get_invoice_status", "arguments": "{\"invoice_id\":\"a41f\"}" }
        }
      ]
    },
    "finish_reason": "tool_calls"
  }
]

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "messages": [{"role": "user", "content": "Has invoice a41f been paid?"}],
    "tools": [{
      "type": "function",
      "function": {
        "name": "get_invoice_status",
        "description": "Look up whether an invoice is paid.",
        "parameters": {
          "type": "object",
          "properties": {"invoice_id": {"type": "string"}},
          "required": ["invoice_id"]
        }
      }
    }]
  }'

Python

import json, os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

tools = [{
    "type": "function",
    "function": {
        "name": "get_invoice_status",
        "description": "Look up whether an invoice is paid.",
        "parameters": {
            "type": "object",
            "properties": {"invoice_id": {"type": "string"}},
            "required": ["invoice_id"],
        },
    },
}]
messages = [{"role": "user", "content": "Has invoice a41f been paid?"}]

reply = client.chat.completions.create(model="anthropic/claude-sonnet-5", messages=messages, tools=tools)
call = reply.choices[0].message.tool_calls[0]
args = json.loads(call.function.arguments)

messages.append(reply.choices[0].message)
messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps({"paid": True})})

final = client.chat.completions.create(model="anthropic/claude-sonnet-5", messages=messages, tools=tools)
print(final.choices[0].message.content)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const tools = [{
  type: "function",
  function: {
    name: "get_invoice_status",
    description: "Look up whether an invoice is paid.",
    parameters: {
      type: "object",
      properties: { invoice_id: { type: "string" } },
      required: ["invoice_id"],
    },
  },
}];
const messages = [{ role: "user", content: "Has invoice a41f been paid?" }];

const reply = await client.chat.completions.create({ model: "anthropic/claude-sonnet-5", messages, tools });
const call = reply.choices[0].message.tool_calls[0];
const args = JSON.parse(call.function.arguments);

messages.push(reply.choices[0].message);
messages.push({ role: "tool", tool_call_id: call.id, content: JSON.stringify({ paid: true }) });

const final = await client.chat.completions.create({ model: "anthropic/claude-sonnet-5", messages, tools });
console.log(final.choices[0].message.content);

একটি অনুরোধে ছবি

সঙ্গে মডেল capabilities.vision ছবিগুলো পড়তে পারবেন. যোগ করুন image_url একটি ব্যবহারকারী বার্তার অংশ, একটি সর্বজনীন সহ https:// লিঙ্ক অথবা একটি data:image/…;base64, ইউ. আর. এল। প্রতি অনুরোধে 20টি পর্যন্ত ছবি। এস. ভি. জি ছবি প্রত্যাখ্যান করা হয়, এবং একইভাবে 4,096 অক্ষরের বেশি একটি লিঙ্ক বা ব্যবহারকারীর নাম বা পাসওয়ার্ড সহ একটি লিঙ্ক (400 invalid_image_url)। একটি ঐচ্ছিক detail হল। auto, low অথবা high.

সঙ্গে nymbot/auto, একটি ছবি সহ একটি অনুরোধ একটি স্ট্যান্ডার্ড মডেলে পাঠানো হয় যা দেখতে পারে। একটি ক্যাটালগ মডেল ছাড়া capabilities.vision ছবিতে অস্বীকার করুন 400 unsupported_contentএকটি লিঙ্ক একটি পাবলিক হোস্টকে নির্দেশ করতে হবে; Nymbot মডেলের সরবরাহকারীকে ছবিটি প্রেরণ করে এবং এটি সংরক্ষণ করে না।

একটি ছবি চার্জ করা হয় কারণ ইনপুট টোকেন সরবরাহকারী এটির জন্য গণনা করে, বাকি অনুরোধের মতো।

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "What is in this picture?"},
        {"type": "image_url", "image_url": {"url": "https://example.com/receipt.jpg"}}
      ]
    }]
  }'

Python

import base64, os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

with open("receipt.jpg", "rb") as f:
    data_url = "data:image/jpeg;base64," + base64.b64encode(f.read()).decode()

reply = client.chat.completions.create(
    model="anthropic/claude-sonnet-5",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "What is in this picture?"},
            {"type": "image_url", "image_url": {"url": data_url}},
        ],
    }],
)
print(reply.choices[0].message.content)

JavaScript

import { readFile } from "node:fs/promises";
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const dataUrl = "data:image/jpeg;base64," + (await readFile("receipt.jpg")).toString("base64");

const reply = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5",
  messages: [{
    role: "user",
    content: [
      { type: "text", text: "What is in this picture?" },
      { type: "image_url", image_url: { url: dataUrl } },
    ],
  }],
});
console.log(reply.choices[0].message.content);

কারণ

সঙ্গে মডেল capabilities.reasoning তারা উত্তর দেওয়ার আগে ভাবতে পারে। এর সাথে কমবেশি জিজ্ঞাসা করুন reasoning_effort ("minimal", "low", "medium" অথবা "high") অথবা "reasoning": {"effort": "high"}অথবা যোগ করুন :thinking মডেলের নামে, যা উচ্চ প্রচেষ্টা মানে। একটি মডেলে কোনও কারণ ছাড়াই সেটিং অবহেলা করা হয়। nymbot/auto, :thinking অনুরোধটি স্ট্যান্ডার্ড রিজনিং রুটে পাঠায়।

অ্যান্ট্রোপিক মডেলগুলিতে, প্রচেষ্টা প্রায় 1,000, 2,000, 8,000 বা 16,000 টোকেনের একটি চিন্তা বাজেট হয়ে যায়, কখনোই বেশি নয়। max_tokens চিন্তা-ভাবনা বন্ধ হয়ে যায় যখন tool_choice একটি সরঞ্জামকে বাধ্য করে, এবং যখন অনুরোধটি একটি সরঞ্জাম লুকে অব্যাহত থাকে (এটির শেষ বার্তাটি একটি সরঞ্জামের ফলাফল), কারণ Anthropic এর এটি পুনরায় চালু করার জন্য পূর্বে স্বাক্ষরিত চিন্তাভাবনা প্রয়োজন।

যুক্তি ফিরে আসে message.reasoning_contentঅথবা delta.reasoning_content যখন স্ট্রিমিং, কখনো উত্তর মধ্যে মিশ্রিত হয় না. যুক্তি উত্পাদন এবং এরকম হিসাবে চার্জ করা হয়, মধ্যে completion_tokensকিছু সরবরাহকারীগুলি কোনও ধারণা টেক্সট ফেরত দেয় না, এবং এটি এখনও চার্জ করা হয়।

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "reasoning_effort": "high",
    "messages": [{"role": "user", "content": "Is 2^61 - 1 prime? Show why."}]
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

reply = client.chat.completions.create(
    model="anthropic/claude-sonnet-5",
    reasoning_effort="high",
    messages=[{"role": "user", "content": "Is 2^61 - 1 prime? Show why."}],
)
message = reply.choices[0].message
print(getattr(message, "reasoning_content", None))
print(message.content)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const reply = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5",
  reasoning_effort: "high",
  messages: [{ role: "user", content: "Is 2^61 - 1 prime? Show why." }],
});
console.log(reply.choices[0].message.reasoning_content);
console.log(reply.choices[0].message.content);

মডেল প্রত্যয়

মডেলের নামে একটি স্লিফিক্স অনুরোধটি কীভাবে পরিচালিত হয় তা পরিবর্তন করে, অন্য কোন ক্ষেত্র ছাড়া। anthropic/claude-sonnet-5:online.

যথেষ্টপ্রভাব।
:onlineপ্রথমে ওয়েবে অনুসন্ধান করে, যেমন plugins: [{"id": "web"}]দেখুন ওয়েব অনুসন্ধান.
:thinkingউচ্চ যুক্তিসঙ্গত প্রচেষ্টা; উপর nymbot/autoএকটি মডেলের উপর, যা বুদ্ধিমান নয়, 400 model_not_found “ কোনও ফাইনাল পয়েন্ট পাওয়া যায়নি”।
:nitro, :floor, :exacto, :extendedগৃহীত এবং উপেক্ষা করা হয়েছে। প্রতিটি ক্যাটালগ মডেলের একটি রুট থাকে, তাই বেছে নেওয়ার জন্য কোনও দ্রুত, সস্তা বা দীর্ঘতর নেই; প্রত্যয়গুলি অনুমোদিত যাতে অন্যান্য পরিষেবা থেকে অনুলিপি করা মডেলের নামগুলি এখনও কাজ করে।

অন্য যে কোনও প্রত্যয় উপেক্ষা করা হয়। পুরো নামটি প্রথমে চেষ্টা করা হয়, তাই একটি মডেল যার আইডিতে সত্যিই একটি কোলন রয়েছে তা এখনও কাজ করে; তা না হলে, প্রত্যয়গুলি একবারে শেষ থেকে সরিয়ে ফেলা হয় যতক্ষণ না একটি মডেল মেলে। একটি মডেলের নাম সর্বাধিক 4 টি প্রত্যয় সহ সর্বাধিক 200 অক্ষর দীর্ঘ হতে পারে; একটি দীর্ঘ নাম দিয়ে প্রত্যাখ্যান করা হয়। 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 সর্বশেষ ব্যবহারকারীর বার্তা (যার প্রথম 2,000 চরিত্র) অনুসন্ধান করে, সেরা পৃষ্ঠাগুলি পড়ে এবং তাদের প্রশ্ন দিয়ে মডেলকে দেয়, যা বাইরের সামগ্রী হিসাবে চিহ্নিত করা হয় যে মডেল থেকে নির্দেশ গ্রহণ করা উচিত নয়।

  • সর্বদা অনুসন্ধান করুন: "plugins": [{"id": "web", "max_results": 5}]অথবা A :online মডেলের উপর প্রত্যয়।
  • যখন এটি সাহায্য করে তখন অনুসন্ধান করুন: "tools": [{"type": "web_search", "parameters": {"max_results": 5}}]এছাড়াও যেমন স্বীকৃত web_search_preview অথবা openrouter:web_searchNymbot শুধুমাত্র যখন প্রশ্নটি বর্তমান তথ্য প্রয়োজন বলে মনে হয় তখন অনুসন্ধান করে, একই টেস্ট অ্যাপ্লিকেশন ব্যবহার করে।

max_results 5 ডিফল্ট এবং সর্বোচ্চ 10. উৎস ফিরে আসে nymbot.web_search.sources, প্রতিটি একটি সঙ্গে title, snippet এবং url, এবং হিসাবে url_citation বার্তার উপর টীকা।

প্রতিটি অনুসন্ধানের জন্য $0.008 খরচ হয়, যা টোকেনের উপরে স্যাটে রূপান্তরিত হয় এবং এটি হোল্ডের অংশ। এটি যে পৃষ্ঠাগুলি পড়ে সেগুলিও ইনপুট টোকেন, তাই ওয়েব থেকে একটি উত্তরের জন্য একই প্রশ্নের চেয়ে বেশি খরচ হয়, কখনও কখনও বেশ কয়েকগুণ বেশি।

প্রতিক্রিয়া, আংশিকভাবে

"nymbot": {
  "balance": "pro",
  "charged_credits": 0.431,
  "charged_sats": 43.1,
  "balance_credits": 411.994,
  "balance_sats": 41199.4,
  "web_search": {
    "sources": [
      { "title": "Lightning Network - Wikipedia", "snippet": "The Lightning Network is a payment protocol...", "url": "https://en.wikipedia.org/wiki/Lightning_Network" }
    ]
  }
}

cURL

curl https://nymbot.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "plugins": [{"id": "web", "max_results": 5}],
    "messages": [{"role": "user", "content": "What changed in the latest Bitcoin Core release?"}]
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

reply = client.chat.completions.create(
    model="anthropic/claude-sonnet-5",
    messages=[{"role": "user", "content": "What changed in the latest Bitcoin Core release?"}],
    extra_body={"plugins": [{"id": "web", "max_results": 5}]},
)
print(reply.choices[0].message.content)
for source in reply.model_extra["nymbot"]["web_search"]["sources"]:
    print(source["url"])

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const reply = await client.chat.completions.create({
  model: "anthropic/claude-sonnet-5",
  plugins: [{ id: "web", max_results: 5 }],
  messages: [{ role: "user", content: "What changed in the latest Bitcoin Core release?" }],
});
console.log(reply.choices[0].message.content);
for (const source of reply.nymbot.web_search.sources) console.log(source.url);

অগ্নিকাণ্ডের জবাব

OpenAI এর নতুন ফরম্যাট, OpenAI এজেন্টস এসডিকে এবং কোডেক্স দ্বারা ব্যবহৃত. এটি চ্যাট সম্পূর্ণরূপে একই মডেল, বিলিং এবং বৈশিষ্ট্যগুলিতে কাজ করে।

POST https://nymbot.ai/api/v1/responses একটি API চাবি দরকার।

মাঠপ্রকারপ্রয়োজন।বর্ণনা
modelস্ট্রিংহ্যাঁসম্পর্কে। চ্যাট সম্পন্নঅন্তর্ভুক্ত ফিচার।
inputস্ট্রিং বা অ্যারেহ্যাঁএকটি সার, অথবা আইটেমের তালিকা: বার্তা (রোলের user, assistant, system, developer) সঙ্গে input_text, input_image এবং output_text অংশ, এবং function_call এবং function_call_output সরঞ্জামের জন্য আইটেম। input_image একটি গ্রহণ image_url লিঙ্ক বা ডেটা ইউআরএল, ফাইল আইডি নয়। reasoning এবং web_search_call জিনিসগুলি নষ্ট করা হয়; item_reference অস্বীকার করা হয়েছে।
instructionsস্ট্রিংনাসিস্টেম নির্দেশাবলী।
max_output_tokensঅন্তর্ভুক্তনালেখার জন্য সর্বাধিক টোকেন।
temperature
top_p
সংখ্যানানমুনা নিয়ন্ত্রণ, যেখানে মডেল তাদের নেয়।
tools
tool_choice
parallel_tool_calls
Array, String or Object, বোলিয়াননাফাংশন সরঞ্জাম, উত্তর ফর্ম ({"type": "function", "name": …, "parameters": …})। web_search অথবা web_search_preview টুল বদলে যাচ্ছে ওয়েব অনুসন্ধান যখন এটি সাহায্য করে, অন্য ভিত্তিক সরঞ্জামগুলি অস্বীকার করা হয়।
reasoningউপাদাননা{"effort": "minimal" | "low" | "medium" | "high"}. xhigh এবং max মানে high; none তা বন্ধ করে দিন।
text.format
response_format
উপাদাননাএকটি জে. এস. ও. এন স্কিমা হিসাবে কাঠামোগত আউটপুট বা json_object.
metadataউপাদাননাপ্রতিক্রিয়াতে পরিবর্তনহীন ফেরত দেয়. সর্বোচ্চ 16 স্ট্রিং মানে, সর্বোচ্চ 64 চিহ্ন এবং সর্বোচ্চ 512 মান পর্যন্ত।
streamবোলিংনানীচের মত স্ট্রিমিং ইভেন্ট।
storeবোলিংনাউপেক্ষা করা হয়েছে। কিছুই সংরক্ষণ করা হয় না, এবং প্রতিক্রিয়া সবসময় বলে "store": false.
previous_response_id
conversation
background
স্ট্রিং, Object, Booleanনাসমর্থন না : 400 unsupported_parameterউত্তরগুলি সংরক্ষণ করা হয় না, তাই পুরো কথোপকথনটি পাঠান input প্রতিবারই।

প্রতিক্রিয়া

{
  "id": "resp_8c1e4b0f9a2d4e61",
  "object": "response",
  "created_at": 1790726400,
  "status": "completed",
  "model": "anthropic/claude-sonnet-5",
  "output": [
    {
      "type": "message",
      "id": "msg_2b7f",
      "role": "assistant",
      "status": "completed",
      "content": [{ "type": "output_text", "text": "A Lightning invoice is...", "annotations": [] }]
    }
  ],
  "output_text": "A Lightning invoice is...",
  "usage": {
    "input_tokens": 1240,
    "input_tokens_details": { "cached_tokens": 0 },
    "output_tokens": 380,
    "output_tokens_details": { "reasoning_tokens": 0 },
    "total_tokens": 1620
  },
  "incomplete_details": null,
  "error": null,
  "instructions": null,
  "store": false,
  "previous_response_id": null,
  "metadata": {},
  "nymbot": { "balance": "pro", "charged_credits": 0.162, "charged_sats": 16.2, "balance_credits": 412.425, "balance_sats": 41242.5 }
}

একটি টুল অনুরোধ প্রদর্শিত হয় output একটি হিসাবে function_call আইটেম সঙ্গে call_id, name এবং argumentsফলাফলটি একটি হিসাবে ফেরত পাঠান function_call_output একই সঙ্গে আইটেম call_idমডেলটি যখন এটি ফেরত দেয়, তখন এটি একটি reasoning আইটেম সঙ্গে reasoning_text প্রথম তালিকা, প্রথম তালিকা status হল। incomplete যখন জবাব আসে max_output_tokens অথবা তিনি অস্বীকার করেছেন। incomplete_details.reason সেট করুন max_output_tokens অথবা content_filterউত্তরটিও অনুরোধের সেটিংস (তাপমাত্রা, সরঞ্জাম, সরঞ্জাম নির্বাচন ইত্যাদি) ইত্যাদি প্রতিক্রিয়া করে, যেমনটি ওপেনআই এর করে, এবং বহন করে nymbot মূল্যবান জিনিস

স্ট্রিমিং, প্রতিটি ঘটনা একটি event: লাইন এবং A data: লাইন A sequence_numberএই আদেশে : response.created, response.in_progress, response.output_item.added, response.content_part.addedযেকোনো সংখ্যা response.output_text.delta, response.output_text.done, response.content_part.done, response.output_item.done, এবং পরিশেষে response.completed খরচ এবং খরচ সঙ্গে একটি উত্তর ছোট শেষ সঙ্গে response.incomplete পরিবর্তে, এবং প্রবাহ শুরু হওয়ার পরে একটি ব্যর্থতা response.failedযুক্তিসঙ্গত স্ট্রিমগুলি তার নিজস্ব আইটেম হিসাবে response.reasoning_text.delta এবং .doneটুল কলগুলি বার্তাটির পর আসে, প্রত্যেকটি একটি আইটেম হিসাবে response.function_call_arguments.delta এবং .done.

অবস্থানযখন
400না model অথবা input; previous_response_id, conversation, background অথবা একটি item_reference (unsupported_parameter); একটি সমর্থিত সরঞ্জাম বা সামগ্রী টাইপ।
402, 403, 404, 429, 502, 503চ্যাট সম্পন্ন করার জন্য

cURL

curl https://nymbot.ai/api/v1/responses \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "instructions": "Answer in one short paragraph.",
    "input": "What is a Lightning invoice?"
  }'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

response = client.responses.create(
    model="anthropic/claude-sonnet-5",
    instructions="Answer in one short paragraph.",
    input="What is a Lightning invoice?",
)
print(response.output_text)

JavaScript

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });

const response = await client.responses.create({
  model: "anthropic/claude-sonnet-5",
  instructions: "Answer in one short paragraph.",
  input: "What is a Lightning invoice?",
});
console.log(response.output_text);

Anthropic বার্তা

Anthropic এর ফরম্যাট, Anthropic SDK এবং Claude কোডের জন্য. এটি ক্যাটালগের প্রতিটি মডেলের সাথে কাজ করে, শুধু Claude নয়: অনুরোধটি অনুবাদ করা হয়, একই পাইপলাইনের মাধ্যমে চালানো হয় এবং ফিরে অনুবাদ করা হয়।

POST https://nymbot.ai/api/v1/messages - একটি এপিআই কী প্রয়োজন, যেমন x-api-key অথবা Authorization: Bearer.

এর anthropic-version এবং anthropic-beta শিরোনামগুলি গ্রহণ করা হয় এবং উপেক্ষা করা হয়। নৃতাত্ত্বিক মডেলের নামগুলি ক্যাটালগের সাথে মিলে যায়, তাই ক্লড কোড এবং এসডিকেগুলি ইতিমধ্যে ব্যবহৃত নামগুলির সাথে কাজ করেঃ

  • একটি ক্যাটালগ যা আপনি জানেন, যেমন claude-sonnet-5 অথবা anthropic/claude-opus-5যেমনটি ব্যবহার করা হয়।
  • এক্ষেত্রে তারিখ (-20260514), -latestযেমন একটি সংস্করণ ট্যাগ -v1যেমন একটি ব্রেকফাস্ট ট্যাগ [1m] এবং একটি anthropic/ অথবা anthropic. উপসর্গ সরিয়ে ফেলা হয়, এবং সংস্করণে বিন্দু এবং ড্যাশ উভয় উপায়ে চেষ্টা করা হয় (claude-haiku-4-5 খুঁজে claude-haiku-4.5).
  • যদি এটি এখনও কোনওভাবে মিলিত না হয়, তাহলে পরিবার (Opus, Sonnet বা Haiku) ব্যবহার করা হয়, যতক্ষণ পর্যন্ত ক্যাটালগের সংস্করণটি অনুরোধকৃত সংস্করণের তুলনায় একই বা নতুন।
  • একটি নাম যা কিছু মিলছে না ফিরে আসে 404 not_found_error.
মাঠপ্রকারপ্রয়োজন।বর্ণনা
modelস্ট্রিংহ্যাঁএকটি ক্যাটালগ মডেল আইডি, বা একটি অ্যানথ্রোপিক মডেলের নাম।
max_tokensঅন্তর্ভুক্তহ্যাঁলেখার জন্য সর্বাধিক টোকেন।
messagesঅ্যারেহ্যাঁuser এবং assistant ঘুরছে, সঙ্গে text, image (base64 বা URL উৎস) tool_use এবং tool_result ব্লক। thinking পূর্ববর্তী মোড় থেকে ব্লকগুলি গ্রহণ করা হয় এবং ফেলে দেওয়া হয়।
systemস্ট্রিং বা অ্যারেনাএকটি স্ট্রিং বা টেক্সট ব্লক হিসাবে সিস্টেম প্রম্পট।
temperature
top_p
সংখ্যানানমুনা নিয়ন্ত্রণ, যেখানে মডেল তাদের নেয়। top_k গ্রহণ করা হয় এবং বাদ দেওয়া হয়।
stop_sequencesস্ট্রিংস এর আকারনাটেক্সট যা উত্তরটি শেষ করে. সর্বোচ্চ 4 শাখা, প্রতিটি সর্বোচ্চ 256 চিহ্ন।
tools
tool_choice
অ্যারে, অবজেক্টনাসরঞ্জামগুলি name, description এবং input_schemaA web_search সার্ভার টুল চালু ওয়েব অনুসন্ধানঅ্যান্ট্রোপিকের অন্যান্য ভিত্তিক সরঞ্জাম (ব্যাশ, টেক্সট এডিটর, কম্পিউটার ব্যবহার) অস্বীকার করা হয় unsupported_tool. tool_choice নেয়। auto, any, tool অথবা none, এবং disable_parallel_tool_use.
thinkingউপাদাননা{"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} অথবা {"type": "disabled"}বাজেট একটি প্রচেষ্টার মাত্রা বেছে নেয়: ন্যূনতম 2,048 এর অধীনে, ন্যূনতম 2,048 থেকে, মধ্যম 8,192 থেকে, উচ্চ 16,384 থেকে। output_config.effort, বা উচ্চ।
streamবোলিংনাঅ্যানথ্রোপিকের ইভেন্ট ফরম্যাটে স্ট্রিম করুন।
metadataউপাদাননাগ্রহণ করা ও অবহেলা করা।

প্রতিক্রিয়া

{
  "id": "msg_01c7a2f93e5b4d08",
  "type": "message",
  "role": "assistant",
  "model": "anthropic/claude-sonnet-5",
  "content": [{ "type": "text", "text": "A Lightning invoice is..." }],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 1240,
    "output_tokens": 380,
    "cache_read_input_tokens": 0,
    "cache_creation_input_tokens": 0
  },
  "nymbot": { "balance": "pro", "charged_credits": 0.162, "charged_sats": 16.2, "balance_credits": 412.425, "balance_sats": 41242.5 }
}

content এছাড়াও রাখতে পারেন tool_use ব্লক এবং এ thinking ব্লক, যার signature খালি আছে। stop_reason হল। end_turn, max_tokens, tool_use অথবা refusal, একই ভাবে কাজ করেছে finish_reason আছে চ্যাট সম্পন্ন; stop_sequence সবসময়ই null, এমনকি যখন একটি স্টপ সিকোয়েন্স উত্তরটি শেষ করে। input_tokens শুধুমাত্র নতুন ইনপুট গণনা করা হয়; ক্যাশে করা ইনপুট দুটি ক্যাশে ক্ষেত্রের মধ্যে থাকে। nymbot বস্তু এবং X-Nymbot-Cost-Sats হেডার।

স্ট্রিমড, ঘটনাগুলি অ্যানথ্রোপিকেরঃ message_start, content_block_start, ping, content_block_delta (text_delta, input_json_delta অথবা thinking_delta), content_block_stop, message_delta ব্যবহারের কারণ, ব্যবহার এবং nymbot মূল্য বস্তু, এবং message_stopA ping মডেলটি কাজ করার সময় প্রতি 15 সেকেন্ডে পাঠানো হয়। টুল কলগুলি পাঠ্যের পরে আসে, প্রতিটি একটি হিসাবে tool_use একটি ব্লক সঙ্গে তার সমস্ত ইনপুট input_json_delta.

এই চূড়ান্ত পয়েন্টে ভুলগুলি Anthropic এর ফরম্যাট ব্যবহার করে: {"type": "error", "error": {"type": "not_found_error", "message": "…"}}একটি সংক্ষিপ্ত ভারসাম্য হল 402 billing_errorঅতিরিক্ত সরবরাহকারী 503 overloaded_errorপ্রবাহ শুরু হওয়ার পরে একটি ব্যর্থতা হিসাবে পাঠানো হয় error অনুষ্ঠান।

cURL

curl https://nymbot.ai/api/v1/messages \
  -H "x-api-key: $NYMBOT_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "What is a Lightning invoice?"}]
  }'

Python

import os
import anthropic

client = anthropic.Anthropic(base_url="https://nymbot.ai/api", api_key=os.environ["NYMBOT_API_KEY"])

message = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "What is a Lightning invoice?"}],
)
print(message.content[0].text)

JavaScript

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({ baseURL: "https://nymbot.ai/api", apiKey: process.env.NYMBOT_API_KEY });

const message = await client.messages.create({
  model: "claude-sonnet-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "What is a Lightning invoice?" }],
});
console.log(message.content[0].text);

টোকেন গণনা করা হচ্ছে

একটি বার্তা অনুরোধে কতগুলি ইনপুট টোকেন ব্যবহার করা হবে তার একটি অনুমান, যাতে একজন ক্লায়েন্ট পাঠানোর আগে পরীক্ষা করতে পারে। এটি বিনামূল্যে, তবে এখনও একটি কী প্রয়োজন।

POST https://nymbot.ai/api/v1/messages/count_tokens - একটি এ. পি. আই কী প্রয়োজন। বিনামূল্যে।

শরীরটা একই রকম বার্তা, ছাড়া max_tokensমডেলের নাম সমাধান করতে হবে। গণনা একটি অনুমানঃ সিস্টেম প্রম্পট অক্ষর, বার্তা, টুল কল এবং টুল সংজ্ঞা চারটি দ্বারা বিভক্ত, প্রতিটি ছবির জন্য 1,600 যোগ করুন। এটি প্রদানকারীর নিজস্ব টোকেনাইজার নয়, তাই আসল গণনা ভিন্ন হতে পারে। একটি কী যা তার ক্যাপ পৌঁছেছে তা এখনও এটি ব্যবহার করতে পারে।

প্রতিক্রিয়া

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

মডেলের তালিকা

প্রতিটি মডেল এবং জেনারেটর এপিআই গ্রহণ করে, তার দামের সাথে। তালিকাটি অ্যাপের পিকারের মতো একই লাইভ ক্যাটালগ থেকে পড়া হয়, তাই এটি সর্বদা সার্ভারটি চালাবে।

GET https://nymbot.ai/api/v1/models - কোন চাবির প্রয়োজন নেই। পাঁচ মিনিটের জন্য ক্যাশে করা।

GET /api/v1/models/{id} একটি এন্ট্রি ফেরত দেয়।

মাঠপ্রকারপ্রয়োজন।বর্ণনা
typeস্ট্রিং (অনুসন্ধান)নাchat (পরের সংবাদ) দুর্বলতা image, video, audio, embedding অথবা allবেশ কয়েকটি দেওয়া যেতে পারে, যেমন image,video.

দামগুলি হল যা আপনি প্রদান করেন, ফি এবং মার্জিন ইতিমধ্যে ডলার এবং বর্তমান বিটকোইন দামে স্যাট-এ রয়েছে। balance মডেলের ব্যয়ের মধ্যে কোন ভারসাম্য রয়েছে তা বলে। nymbot_key অ্যাপে মডেলের সংক্ষিপ্ত নাম। created সবসময় 0 হয়, কারণ ক্যাটালগ কখন একটি মডেল যোগ করা হয় তা রেকর্ড করে না। per_request পরিবর্তে

nymbot/auto সর্বদা প্রথম, মূল্য হিসাবে variableA সঙ্গে routes প্রতিটি স্ট্যান্ডার্ড রুটের হার দেওয়ার তালিকা. এটি দৃষ্টিভঙ্গি এবং যুক্তি তালিকাভুক্ত করে, কিন্তু সরঞ্জামগুলি নয়।

GET /api/v1/models/{id} অনুরোধ হিসাবে একই নাম এবং উপনাম গ্রহণ করে এবং তারা যে মডেলটি স্থির করেছে তার জন্য এন্ট্রি ফেরত দেয়।

প্রতিক্রিয়া

{
  "object": "list",
  "data": [
    {
      "id": "anthropic/claude-sonnet-5",
      "object": "model",
      "type": "chat",
      "owned_by": "anthropic",
      "name": "Claude Sonnet 5",
      "created": 0,
      "context_length": 1000000,
      "max_output_tokens": 64000,
      "architecture": { "input_modalities": ["text", "image"], "output_modalities": ["text"] },
      "supported_parameters": ["max_tokens", "temperature", "tools", "tool_choice", "reasoning", "response_format", "stop"],
      "capabilities": { "vision": true, "video": false, "tools": true, "reasoning": true, "web_search": true },
      "balance": "pro",
      "pricing": {
        "type": "per_token",
        "currency": "USD",
        "input_per_1M_tokens": 4.725,
        "output_per_1M_tokens": 23.625,
        "cache_read_per_1M_tokens": 0.4725,
        "sats_input_per_1M_tokens": 4038,
        "sats_output_per_1M_tokens": 20192
      },
      "description": "...",
      "nymbot_key": "claude-sonnet"
    }
  ]
}

অন্যান্য প্রকারঃ

  • ছবি। অন্তর্ভুক্ত capabilities (accepts_image_url, requires_image_url, edit) একটি মূল্য per_generation.
  • ভিডিও অন্তর্ভুক্ত max_duration_seconds এবং resolutions, এবং একটি দাম per_second প্রতিটি সিদ্ধান্তের জন্য।
  • অডিও অন্তর্ভুক্ত audio_type speech অথবা transcription, দাম per_1k_chars অথবা per_minute.
  • অন্তর্নির্মিত করা হচ্ছে অন্তর্ভুক্ত dimensions, context_length, max_inputs এবং প্রতি মিলিয়ন ইনপুট টোকেনের একটি মূল্য।

লক্ষ্যমাত্রা "estimated": true এমন একটি জেনারেটরের জন্য অ্যাপের অনুমান যার মূল্য প্রকাশিত হয়নি। একটি অজানা type প্রত্যাবর্তন 400.

cURL

curl "https://nymbot.ai/api/v1/models?type=chat"

Python

import requests

models = requests.get("https://nymbot.ai/api/v1/models", params={"type": "chat"}).json()["data"]
for m in models:
    print(m["id"], m["balance"], m["pricing"].get("input_per_1M_tokens"))

JavaScript

const res = await fetch("https://nymbot.ai/api/v1/models?type=chat");
const { data } = await res.json();
for (const m of data) console.log(m.id, m.balance, m.pricing.input_per_1M_tokens);