علم کی بنیاد ڈویلپرز
چیٹ، جوابات اور پیغامات
کسی ماڈل سے کچھ پوچھنے کے تین طریقے، تین فارمیٹس میں کلائنٹ پہلے ہی بولتے ہیں، سب ایک ہی ماڈل پر چلتے ہیں اور اسی طرح بل دیتے ہیں۔
یہ صفحہ سہولت کے لیے مشین سے ترجمہ کیا گیا ہے۔ انگریزی اصل وہ ورژن ہے جو لاگو ہوتا ہے۔
CHAT مکمل کریں
اوپن اے آئی چیٹ فارمیٹ، اور تقریبا ہر ٹول سپورٹ کرتا ہے۔ اب تک کی گفتگو بھیجیں اور اگلا پیغام واپس حاصل کریں۔
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_tokensmax_completion_tokens | پورے | نہیں | لکھنے کے لیے سب سے زیادہ ٹوکن۔ اگر زیادہ ہے تو ماڈل کے زیادہ سے زیادہ تک کم کیا جاتا ہے۔ یہ بھی طے کرتا ہے کہ آپ کے بیلنس سے کتنا رکھا گیا ہے، لہذا ایک چھوٹی تعداد کو شروع کرنے کے لیے کم کریڈٹ کی ضرورت ہوتی ہے۔ |
temperaturetop_p | نمبر | نہیں | نمونے لینے کے کنٹرول: temperature 0 سے 2 تک، top_p 0 سے 1 تک |
stop | سٹرنگ یا صف | نہیں | جواب کے اختتام پر متن: ایک string یا زیادہ سے زیادہ 4 string، ہر ایک زیادہ سے زیادہ 256 حروف. nymbot/auto. |
seed | پورے | نہیں | دہرائے جانے والے نمونے لینے کے لیے، جہاں ماڈل اس کی حمایت کرتا ہے۔ |
presence_penaltyfrequency_penalty | نمبر | نہیں | تکرار کنٹرول، ہر ایک-2 سے 2 تک۔ |
response_format | اشیاء | نہیں | {"type": "json_object"} یا {"type": "json_schema", "json_schema": {…}}، جہاں ماڈل اس کی حمایت کرتا ہے۔ استعمال نہیں کیا گیا nymbot/auto. |
toolstool_choiceparallel_tool_calls | صف، سٹرنگ یا آبجیکٹ، بولین | نہیں | فنکشن کالنگ۔ دیکھیں ٹول کالزاے۔ web_search ٹول آن ہو جاتا ہے ویب تلاشزیادہ سے زیادہ 128 اوزار اور 512 KB تعریفیں، زیادہ سے زیادہ 64 سطحوں پر گہری نیسٹڈ۔ 400. |
reasoning_effortreasoning | زمرہ:Object | نہیں | "minimal", "low", "medium" یا "high"، یا {"effort": "high"}. "none" یا {"enabled": false} اسے بند کر دیں۔ دیکھیں دلائل. |
plugins | صف بندی | نہیں | [{"id": "web", "max_results": 5}] ہمیشہ سب سے پہلے ویب تلاش کرتا ہے. |
n | پورے | نہیں | صرف 1. کچھ اور واپس آتا ہے 400. |
logit_biasusermetadata | Object، String، Object کے بارے میں | نہیں | قبول کیا اور نہیں بھیجا گیا. logit_bias - 100 سے 100 تک کے نمبروں کے لیے زیادہ سے زیادہ 300 ٹوکن آئی ڈیز کے نقشے۔ 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 1 کے علاوہ ؛ 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 اے پر 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، اپنے اسٹیٹس کوڈ کے ساتھ عام جے ایس او این کے طور پر واپس آتا ہے، اسٹریم کے طور پر نہیں۔ اسٹریم شروع ہونے کے بعد ایک غلطی آخری کے طور پر آتی ہےdata: {"error": {…}}ایونٹ، اور اسٹریم بغیر ختم ہوتا ہے[DONE]. - ٹولز کے ساتھ درخواستیں، اور اوپن اے آئی کے رسپانس ٹرانسپورٹ پر ماڈل، فراہم کنندہ سے اسٹریم نہیں ہوتے ہیں۔ وہ پھر بھی ایک درست اسٹریم کے ساتھ جواب دیتے ہیں، جو جواب مکمل ہونے کے بعد بھیجا جاتا ہے۔
cURL
curl -N https://nymbot.ai/api/v1/chat/completions \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nymbot/auto",
"stream": true,
"stream_options": {"include_usage": true},
"messages": [{"role": "user", "content": "Write a haiku about sats."}]
}'
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
stream = client.chat.completions.create(
model="nymbot/auto",
stream=True,
stream_options={"include_usage": True},
messages=[{"role": "user", "content": "Write a haiku about sats."}],
)
for chunk in stream:
if chunk.choices:
print(chunk.choices[0].delta.content or "", end="", flush=True)
elif chunk.usage:
print("\ncost:", chunk.usage.cost)
JavaScript
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const stream = await client.chat.completions.create({
model: "nymbot/auto",
stream: true,
stream_options: { include_usage: true },
messages: [{ role: "user", content: "Write a haiku about sats." }],
});
for await (const chunk of stream) {
if (chunk.choices.length) process.stdout.write(chunk.choices[0].delta.content || "");
else if (chunk.usage) console.log("\ncost:", chunk.usage.cost);
}
ٹول کالز
فنکشن کی وضاحت کریں tools اور ماڈل جواب دینے کے بجائے کال کرنے کے لیے کہہ سکتا ہے۔ آپ فنکشن چلاتے ہیں، اس کا نتیجہ ایک کے طور پر شامل کریں tool ایک ہی پیغام کے ساتھ
tool_call_id، اور بات چیت کو دوبارہ بھیجیں۔ نمبوٹ کبھی بھی آپ کے افعال کو نہیں چلاتا ؛ یہ ماڈل کی درخواست آپ کو واپس بھیجتا ہے۔
tool_choice لیتا ہے "auto", "none",
"required" یا {"type": "function", "function": {"name": "…"}}ماڈل کی فہرست نشان زد کرتی ہے کہ کون سے ماڈل ٹولز کو کال کر سکتے ہیں (capabilities.tools) کے ساتھ ٹولز کو مسترد کر دیا جاتا ہے۔ 400 unsupported_tool پر nymbot/auto اور ان چند کیٹلاگ ماڈلز پر جو اوپن اے آئی کے رسپانسز ٹرانسپورٹ پر چلتے ہیں، جن کو نمبوٹ ٹولز منتقل نہیں کر سکتا۔
کے ساتھ "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, 22 اور تمہارا رفیق کوئی دیوانہ نہیں ہے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 کسی ٹول کو مجبور کرتا ہے، اور جب درخواست ٹول لوپ کو جاری رکھتی ہے (اس کا آخری پیغام ٹول کا نتیجہ ہوتا ہے)، کیونکہ اینتھروپک کو اسے دوبارہ شروع کرنے کے لیے پہلے سے دستخط شدہ سوچ کی ضرورت ہوتی ہے۔ یہی بات جوابات اور پیغامات کے اختتامی نکات پر بھی لاگو ہوتی ہے۔
دلائل واپس آتے ہیں 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 کے ساتھ & ldquo; کوئی اختتامی نقطہ نہیں ملا & rdquo;. |
:nitro, :floor, :exacto, :extended | قبول کیا گیا اور نظر انداز کیا گیا۔ ہر کیٹلاگ ماڈل کا ایک راستہ ہوتا ہے، اس لیے چننے کے لیے کوئی تیز، سستا یا لمبا راستہ نہیں ہے۔ لاحقہ کی اجازت ہے لہذا دوسری خدمات سے نقل کیے گئے ماڈل کے نام اب بھی کام کرتے ہیں۔ |
کسی بھی دوسرے لاحقہ کو نظر انداز کر دیا جاتا ہے۔ پورے نام کو پہلے آزمایا جاتا ہے، لہذا ایک ماڈل جس کی شناخت میں واقعی ایک کالون ہوتا ہے اب بھی کام کرتا ہے۔ ایسا نہ کرنے پر، لاحقہ کو ایک وقت میں آخر سے ہٹا دیا جاتا ہے جب تک کہ ایک ماڈل مماثل نہ ہو۔ ایک ماڈل کا نام زیادہ سے زیادہ 200 حروف لمبا ہو سکتا ہے جس میں زیادہ سے زیادہ 4 لاحقہ ہوتے ہیں۔ ایک طویل نام کے ساتھ انکار کر دیا جاتا ہے۔ 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);
ویب سرچ
کوئی بھی چیٹ ماڈل لائیو ویب سے جواب دے سکتا ہے۔ نمبوٹ آخری صارف کے پیغام (اس کے پہلے 2, 000 حروف) کی تلاش کرتا ہے، بہترین صفحات کو پڑھتا ہے اور انہیں سوال کے ساتھ ماڈل کو دیتا ہے، جسے بیرونی مواد کے طور پر نشان زد کیا گیا ہے جس سے ماڈل کو ہدایات نہیں لینی چاہئیں۔ دو طریقے ہیں:
- ہمیشہ تلاش کریں:
"plugins": [{"id": "web", "max_results": 5}]، یا اے:onlineماڈل پر لاحقہ۔ - تلاش کریں جب یہ مدد کرتا ہے:
"tools": [{"type": "web_search", "parameters": {"max_results": 5}}]کے طور پر بھی قبول کیا گیاweb_search_previewیاopenrouter:web_searchنمبوٹ صرف اس وقت تلاش کرتا ہے جب ایسا لگتا ہے کہ اسے موجودہ معلومات کی ضرورت ہے، وہی ٹیسٹ جو ایپ استعمال کرتا ہے۔
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);
جوابات API
OpenAI کے جدید ترین فارمیٹ، OpenAI ایجنٹس SDK اور کوڈکس کی طرف سے استعمال کیا جاتا ہے. یہ چیٹ مکمل کے ساتھ اسی ماڈل، فیسنگ اور خصوصیات پر چلتا ہے.
POST https://nymbot.ai/api/v1/responses - ایک API کلید کی ضرورت ہے۔
| میدان | قسم | مطلوب | تفصیل |
|---|---|---|---|
model | سٹرنگ | جی ہاں | جہاں تک بات ہے CHAT مکمل کریں، لاحقہ شامل ہیں۔ |
input | سٹرنگ یا صف | جی ہاں | ایک سٹرنگ، یا آئٹمز کی فہرست: پیغامات (کردار) user, assistant, system, developer) کے ساتھ input_text, input_image اور output_text حصے، اور function_call اور function_call_output آلات کے لیے اشیاء۔ input_image ایک لے image_url لنک یا ڈیٹا URL، ایک فائل ID نہیں ہے. reasoning اور web_search_call اشیاء کو چھوڑ دیا جاتا ہے ؛ item_reference انکار کیا گیا ہے |
instructions | سٹرنگ | نہیں | نظام کی ہدایات۔ |
max_output_tokens | پورے | نہیں | سب سے زیادہ ٹوکری لکھنے کے لئے. |
temperaturetop_p | نمبر | نہیں | نمونہ کنٹرول، جہاں ماڈل ان کو لے جاتا ہے. |
toolstool_choiceparallel_tool_calls | صف، سٹرنگ یا آبجیکٹ، بولین | نہیں | فائلوں کے ساتھ کام کرنے کے لئے ({"type": "function", "name": …, "parameters": …}) اے۔ web_search یا web_search_preview ٹول آن ہو جاتا ہے ویب تلاش جب یہ مدد کرتا ہے تو دیگر داخلہ آلات کو رد کیا جاتا ہے. |
reasoning | اشیاء | نہیں | {"effort": "minimal" | "low" | "medium" | "high"}. xhigh اور max معنی high; none اسے بند کر دیں |
text.formatresponse_format | اشیاء | نہیں | ایک JSON نظام کے طور پر، یا json_object. |
metadata | اشیاء | نہیں | جواب میں تبدیل نہیں کیا گیا۔ زیادہ سے زیادہ 16 سیڑھیوں کے اعداد و شمار پر، زیادہ سے زیادہ 64 حروف اور زیادہ سے زیادہ 512 اعداد و شمار. |
stream | بولین | نہیں | اسٹریم ایونٹس جیسا کہ ذیل میں بیان کیا گیا ہے۔ |
store | بولین | نہیں | نظر انداز کیا گیا۔ کچھ بھی محفوظ نہیں ہے، اور جواب ہمیشہ کہتا ہے "store": false. |
previous_response_idconversationbackground | String، 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: لائن اور اے 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 پیغام
اینتھروپک کی شکل، اینتھروپک ایس ڈی کے اور کلاڈ کوڈ کے لیے۔ یہ کیٹلاگ کے ہر ماڈل کے ساتھ کام کرتا ہے، نہ صرف کلاڈ: درخواست کا ترجمہ کیا جاتا ہے، اسی پائپ لائن سے چلایا جاتا ہے، اور دوبارہ ترجمہ کیا جاتا ہے۔
POST https://nymbot.ai/api/v1/messages ایک API کلید کی ضرورت ہے، جیسا کہ x-api-key یا Authorization: Bearer.
کے anthropic-version اور anthropic-beta Anthropic ماڈل ناموں کی فہرست کے ساتھ مطابقت کی جاتی ہے، لہذا Claude Code اور SDKs ان ناموں کے ساتھ کام کرتے ہیں جو وہ پہلے سے ہی استعمال کرتے ہیں:
- ایک نام جس کا کاتالٹ جانتا ہے، جیسے
claude-sonnet-5یاanthropic/claude-opus-5استعمال کیا جاتا ہے جیسا ہے. - ایک تاریخ (
-20260514),-latest، ایک ورژن ٹیگ جیسے-v1، ایک بریکٹڈ ٹیگ جیسے[1m]اور ایکanthropic/یاanthropic.سابقہ کو ہٹا دیا جاتا ہے، اور ورژن میں ڈاٹس اور ڈیش دونوں طریقوں سے آزمائے جاتے ہیں (claude-haiku-4-5تلاش کریںclaude-haiku-4.5). - اگر یہ اب بھی کچھ بھی نہیں ملتا ہے، تو خاندان (اوپس، سونٹ یا ہائیکو) استعمال کیا جاتا ہے، جب تک کہ کیٹلاگ کا ورژن وہی ہو یا اس سے نیا ہو جس کے لیے کہا گیا ہو۔
- ایک نام جو کچھ بھی نہیں ملتا ہے واپس آتا ہے
404not_found_error.
| میدان | قسم | مطلوب | تفصیل |
|---|---|---|---|
model | سٹرنگ | جی ہاں | کیٹلاگ ماڈل آئی ڈی، یا اینتھروپک ماڈل کا نام۔ |
max_tokens | پورے | جی ہاں | سب سے زیادہ ٹوکری لکھنے کے لئے. |
messages | صف بندی | جی ہاں | user اور assistant کے ساتھ مڑ جاتا ہے text, image (بیس 64 یا یو آر ایل ماخذ)، tool_use اور tool_result بلاکس۔ thinking پہلے کے موڑ کے بلاکس کو قبول کیا جاتا ہے اور گرا دیا جاتا ہے۔ |
system | سٹرنگ یا صف | نہیں | سٹرنگ یا ٹیکسٹ بلاکس کے طور پر سسٹم پرامپٹ۔ |
temperaturetop_p | نمبر | نہیں | نمونہ کنٹرول، جہاں ماڈل ان کو لے جاتا ہے. top_k قبول اور چھوڑ دیا گیا ہے. |
stop_sequences | Strings کے مترادفات | نہیں | متن جو جواب کو ختم کرتا ہے۔ زیادہ سے زیادہ 4 تار، ہر ایک میں زیادہ سے زیادہ 256 حروف۔ |
toolstool_choice | صف، آبجیکٹ | نہیں | Tools کے ساتھ name, description اور input_schemaاے۔ 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، 8192 اوسط سے، 16384 اعلی سے. output_config.effort، یا اونچا۔ |
stream | بولین | نہیں | Anthropic کے ایونٹ فارمیٹ میں ریلیز کریں. |
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 پر
CHAT مکمل کریں; stop_sequence ہمیشہ ہوتا ہے
null، یہاں تک کہ جب ایک سٹاپ سیکوینس جواب ختم کرتا ہے۔ input_tokens صرف تازہ داخلات کا حساب کرتا ہے؛ کیچ انٹرویو دو کیچ فیلڈز میں ہے.
nymbot آبجیکٹ اور X-Nymbot-Cost-Sats ہیڈر
اسٹریمڈ، واقعات اینتھروپک کے ہیں: message_start,
content_block_start, ping, content_block_delta
(text_delta, input_json_delta یا thinking_delta),
content_block_stop, message_delta استعمال کی وجہ سے، استعمال اور nymbot لاگت آبجیکٹ، اور message_stopاے۔ ping یہ بھی ہر 15 سیکنڈ میں بھیج دیا جاتا ہے جبکہ ماڈل کام کرتا ہے.
tool_use اس کے پورے ان پٹ کو ایک میں بلاک کریں input_json_delta.
اس اختتامی نقطہ پر غلطیاں اینتھروپک کی شکل کا استعمال کرتی ہیں:
{"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);
Token کا حساب
اس بات کا تخمینہ کہ پیغامات کی درخواست میں کتنے ان پٹ ٹوکن استعمال ہوں گے، تاکہ کلائنٹ بھیجنے سے پہلے چیک کر سکے۔ یہ مفت ہے، لیکن پھر بھی ایک کلید کی ضرورت ہے۔
POST https://nymbot.ai/api/v1/messages/count_tokens - ایک اے پی آئی کلید درکار ہے۔ مفت۔
جسم وہی ہے جس کے لیے پیغاماتکے بغیر max_tokens، ماڈل کا نام حل کرنے کی ضرورت ہے. شمار ایک اندازہ ہے: سسٹم پائلٹ، پیغامات، آلے کالز اور آلے کی تعریفیں چار سے تقسیم کی جاتی ہیں، اس کے علاوہ ہر تصویر کے لئے 1,600. یہ سپلائر کے اپنے tokenizer نہیں ہے، لہذا حقیقی شمار مختلف ہوسکتا ہے.
جوابات
{ "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. |
قیمتیں وہی ہیں جو آپ ادا کرتے ہیں، فیس اور مارجن کے ساتھ پہلے سے ہی، ڈالر میں اور موجودہ Bitcoin قیمت پر sats میں. balance یہ بتاتا ہے کہ ماڈل کون سا توازن خرچ کرتا ہے۔
nymbot_key ایپ میں ماڈل کا مختصر نام ہے. created ہمیشہ 0 ہے، کیونکہ کیتالیف نہیں ریکارڈ کرتا ہے جب ایک ماڈل شامل کیا گیا تھا. per_request اس کے بجائے
nymbot/auto ہمیشہ سب سے پہلے ہے، قیمت کے طور پر variable، اے کے ساتھ
routes فہرست ہر معیاری راستے کی شرح فراہم کرتا ہے. یہ نقطہ نظر اور منطق کی فہرست ہے، لیکن اوزار نہیں.
GET /api/v1/models/{id} درخواست کے طور پر وہی نام اور عرفیت قبول کرتا ہے، اور اس ماڈل کے لیے اندراج واپس کرتا ہے جسے وہ حل کرتے ہیں۔
جوابات
{
"object": "list",
"data": [
{
"id": "anthropic/claude-sonnet-5",
"object": "model",
"type": "chat",
"owned_by": "anthropic",
"name": "Claude Sonnet 5",
"created": 0,
"context_length": 1000000,
"max_output_tokens": 64000,
"architecture": { "input_modalities": ["text", "image"], "output_modalities": ["text"] },
"supported_parameters": ["max_tokens", "temperature", "tools", "tool_choice", "reasoning", "response_format", "stop"],
"capabilities": { "vision": true, "video": false, "tools": true, "reasoning": true, "web_search": true },
"balance": "pro",
"pricing": {
"type": "per_token",
"currency": "USD",
"input_per_1M_tokens": 4.725,
"output_per_1M_tokens": 23.625,
"cache_read_per_1M_tokens": 0.4725,
"sats_input_per_1M_tokens": 4038,
"sats_output_per_1M_tokens": 20192
},
"description": "...",
"nymbot_key": "claude-sonnet"
}
]
}
دیگر اقسام:
- تصویر اندراجات ہیں
capabilities(accepts_image_url,requires_image_url,edit) اور ایک قیمتper_generation. - ویڈیو اندراجات ہیں
max_duration_secondsاورresolutions، اور ایک قیمتper_secondہر قرارداد کے لیے۔ - آڈیو اندراجات ہیں
audio_typespeechیا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);