د پوهې بنسټ پراختیا
چیټ، ځوابونه او پیغامونه
درې لارو ته د يو ماډل څه پوهیږو، په درې فارمونو کې مشتریانو اوس هم خبرې کوي، ټول په ورته ماډلونو کې کار کوي او په ورته لاره کې حساب شوي.
دا پاڼه د اسانتیا لپاره ماشین ژباړل شوې ده. انګلیسي اصلي نسخه ده چې پلي کیږي.
چټک بشپړولو
د OpenAI چیټ فارم، او دا چې تقریبا هر وسایلو ملاتړ کوي. د خبرې کولو ته تر اوسه ورکړئ او د بل پیغام ترلاسه کړئ.
POST https://nymbot.ai/api/v1/chat/completions - د API کلید ته اړتیا لري.
یوازې model او messages اړتيا دي. د نمونې پارامتر چې د انتخاب شوي ماډل نه لګوي د غلطۍ له امله د يو غوښتنلیک بدن په مختلفو ماډلونو کې کار کوي. د ماډل لیست د هر ماډل د supported_parametersهغه څه چې د رخصتیدو په پرتله د رخصتیدو په پرتله د ماډل نه کوي: د ماډل لپاره انځورونه چې نه وګورئ، د ماډل لپاره وسایلو چې نه کولی شي دوی راټول کړي.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
model | د String | هو | nymbot/auto یا auto) د Nymbot په معياري توازن کې د لارښوونې لپاره، یا د لابراتوار ماډل ID لکه anthropic/claude-sonnet-5 په پرو بیلابیلو کې. د اپلیکیشن د مختصر نومونه او غیرقانوني نومونه هم قبول شوي دي. ممکن په کافی. |
messages | نندارې | هو | د بحث. نقشې system, developer (د سیسټم په توګه په کارولو سره) user, assistant او tool.Content ده یو string یا د text او image_url برخو؛ انځورونه یوازې د کاروونکي پيغامونو کې. input_audio او د فایل برخو انکار شوي دي. |
stream | بوټان | نه | د ځواب په داسې حال کې وړاندې کړئ لکه څنګه چې ورسوي. وګورئ د انټرنیټ. |
stream_options | د Object | نه | {"include_usage": true} د ټکین شمیره او لګښت سره د پایلې ټکین اضافه کوي. |
max_tokensmax_completion_tokens | انټرنیټ | نه | ډیری ټکینونه کښته کړي. د ماډل په حد کې کم شوی، که لوړ وي. دا هم تنظیم کوي چې ستاسو د توازن څخه کتنه لري، نو د کوچني شمېر لپاره د پیل لپاره لږ کریډیټ اړتیا لري. |
temperaturetop_p | شمیره | نه | د نمونې کنترول: temperature د 0 څخه تر 2، top_p د 0 څخه تر 1 |
stop | String یا Array | نه | متن چې د ځواب پای ته ورسیږي: یو string یا تر ټولو 4 stringونه، هر څخه تر ټولو 256 character. Not used by nymbot/auto. |
seed | انټرنیټ | نه | د تکرار نمونې لپاره، کله چې د ماډل دا ملاتړ کوي. |
presence_penaltyfrequency_penalty | شمیره | نه | د تکرار کنټرولونه، هر -2 څخه 2. |
response_format | د Object | نه | {"type": "json_object"} یا {"type": "json_schema", "json_schema": {…}}، چې د نمونوي ملاتړ کوي. نه کارول nymbot/auto. |
toolstool_choiceparallel_tool_calls | array، string یا object، boolean | نه | د غوښتنلیک کارول. وګورئ نندارتونونهد web_search نښلول په د ویب پاڼهد 128 وسایلو او 512 KB د تعریفونو څخه تر ټولو، تر ټولو 64 کچه عمده ده؛ نور یو 400. |
reasoning_effortreasoning | String، د object | نه | "minimal", "low", "medium" یا "high"او یا {"effort": "high"}. "none" یا {"enabled": false} له دې امله. وګورئ د منطق. |
plugins | نندارې | نه | [{"id": "web", "max_results": 5}] په هر وخت کې لومړی په ویب کې چمتو کوي. تر 10 پایلې. |
n | انټرنیټ | نه | یوازې 1. هر څه نور راځي 400. |
logit_biasusermetadata | Object، String، Object | نه | ترلاسه شوي او نه وړاندې شوي. logit_bias د -100 څخه تر 100 شمیره 300 ټوکن ID کې نقشهونه؛ user د 256 ځانګړنو په حد کې؛ metadata په حد کې د 16 string ارزښتونه، کلیدونه د 64 ځانګړتیاو او ارزښتونه د 512 څخه زیات لري. |
ځواب د عادي chat.completionسره د لګښت په usage.cost
(د ډالرو) او په nymbot د Object. model د حل شوي ماډل id دی، نو یو مختصر نوم به په توګه بشپړ وي. که د ماډل د ځواب څخه دمخه دلیل شوی، د دې دلیل په 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 کله چې د پلورونکي refused، او 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 د نمونې په اړه suffix چې د منطق نه لري (model_not_found)؛ یا د پلورونکي د غوښتنلیک د انکار (upstream_rejected). |
402 | د نمونوي لګښت لګښت کولی شي د لګښت پوښښ نه کړي. |
403 | په بدترین حالت کې د کلید د پوښښ نه کوي (key_limit_reached) د کمولو max_tokens یا د Cap لوړ کړئ. |
404 | د دې نوم په توګه (model_not_found). |
429 | د کلید د نرخ محدودیت، یا د پلورونکي (upstream_rate_limited). |
502, 503 | د پلورونکي ناکام (upstream_error) او یا په لوړه کچه (upstream_overloadedد Retry-After). د کارپوه کارکوونکي د هڅو لپاره په لټه کې نه ده. |
د حالت کوډونه هر Endpoint ټانکونه په زیربنا کې شتون لري د غلطو.
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: line، او د جریان سره پای ته ورسیږي 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 ثانیو کې وړاندې کیږي، په داسې حال کې چې د ماډل فکر کوي. د SSE مشتریانو یې ګټه ورکوي. - پوښتنه
"stream_options": {"include_usage": true}له دې لپاره چې د وروستیو ټوټې څخه ډډه وکړئ، سره یو خالیchoices، د token حساب کوي، د لګښت اوnymbotد Object. - د لګښت د لګښت پای ته ورسیږي. که تاسو د اړیکو مخکې بند کړئ، د ماډل د بندولو نه کوي: 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 او د څو کاتالوژۍ ماډلونو په اړه چې د OpenAI Responses ترانسپورت کې کار کوي، چې Nymbot کولی شي وسایلو ته ورسیږي.
سره "stream": true، د وسایلو سره یو غوښتنلیک په یوه ټوټې کې چلول کیږي او بیا د عادي chunk sequence په توګه لیږد کیږي: د رول، یو chunk د هر وسایلو د تماس سره د انډول، ID، نوم او د انډولونو سره لیږدوي، او د finish chunk. Clients who read streamed tool calls handle it as usual.
ځواب، په برخه کې
"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:// لینک یا A
data:image/…;base64, URL. په هر غوښتنې کې د 20 انځورونو پورې. SVG انځورونه انکار شوي دي، او همدارنګه د 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 د غوښتنلیک ته د معياري منطق کولو ریل ته ورسیږي.
په Anthropic ماډلونو کې، هڅه د 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);
د نمونوي suffixes
د نمونوي نوم کې د بدلون بدلون بدلون کوي چې څنګه د غوښتنلیک په کارولو سره ترسره کیږي، د بل کڅوړې پرته. دوی په بشپړ ids او short names هم کار کوي، لکه څنګه چې په 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);
WEB څیړنه
هر چیټ ماډل کولی شي د لوي ویب څخه ځواب ورکړي. Nymbot د وروستیو کارن پیغام (د لومړي 2000 حروف)، غوره صفحات وګورئ او دوی سره د پوښتنې سره د ماډل ته ورکوي، د دې لپاره چې د ماډل باید د لارښوونې څخه نه واخلئ. دوو موډلونه شتون لري:
- په هر وخت کې:
"plugins": [{"id": "web", "max_results": 5}]یا د:onlineپه ماډل کې suffix. - وګورئ کله چې دا مرسته کوي:
"tools": [{"type": "web_search", "parameters": {"max_results": 5}}]، هم په توګه acceptedweb_search_previewیاopenrouter:web_searchNymbot یوازې کله چې پوښتنه ښکاري چې دا د اوسني معلوماتو ته اړتيا لري، ورته ټسټ چې د اپلیکیشن کاروي.
max_results ده 5 په معياري توګه او په لوړه کچه 10. د سرچینو په
nymbot.web_search.sourcesپه هر کې د A 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 Agents SDK او Codex لخوا کارول کیږي. دا په ورته ماډلونو، حسابونو او ځانګړتیاوو کې کار کوي چې د چیټ بشپړولو لپاره کارول کیږي.
POST https://nymbot.ai/api/v1/responses - د API کلید ته اړتیا لري.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
model | د String | هو | د چټک بشپړولو، suffixes شامل دي. |
input | String یا Array | هو | یو string، یا د توکي لیست: پیغامونه (د نقشې) 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 | د String | نه | د سیستم لارښوونې |
max_output_tokens | انټرنیټ | نه | ترټولو ډیری ټیکنونه لیکل کیږي. |
temperaturetop_p | شمیره | نه | د نمونې کنټرولونه، چې د ماډل یې ترلاسه کوي. |
toolstool_choiceparallel_tool_calls | array، string یا object، boolean | نه | د فابریکې فابریکې، د ځوابونو شکل کې ({"type": "function", "name": …, "parameters": …}) د web_search یا web_search_preview نښلول په د ویب پاڼه کله چې دا مرسته کوي. د نورو داخل شوي وسایلو له لاسه ورکړي. |
reasoning | د Object | نه | {"effort": "minimal" | "low" | "medium" | "high"}. xhigh او max معنی high; none دا بند کړئ. |
text.formatresponse_format | د Object | نه | Structured output، لکه د JSON سیسټم یا json_object. |
metadata | د Object | نه | په ځواب کې د بدلون په لټه کې. تر ټولو 16 string ارزښتونه، تر ټولو 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 د A function_call د موضوع سره
call_id, name او arguments; د پایلو ته د A په توګه رجوع کړئ
function_call_output د ورته موضوع سره call_idد منطق، کله چې د نمونوي دا ته ورسیږي، دا reasoning د موضوع سره reasoning_text د موادو، په لومړي کې لیست. status د incomplete کله چې ځواب
max_output_tokens یا د پلورونکي د انکار سره
incomplete_details.reason د 2 max_output_tokens یا
content_filterد ځواب هم د غوښتنې ترتیباتو (د حرارت درجه، وسایلو، د وسایلو انتخاب او داسې نور) راټول کوي، او د OpenAI کار کوي. nymbot د محصول قیمت.
Streamed، هر واقعې یو 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 د کارولو او لګښت سره. د ځواب سره د short ends cut response.incomplete په ځای کې، او د جریان پیل وروسته د ناکامۍ سره response.failedReasoning streams په توګه د خپل موضوع سره 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);
antropological پیغامونه
د Anthropic SDKs او Claude Code لپاره د Anthropic format. دا د کټګورۍ په هر موډل کې کار کوي، نه یوازې Claude: د غوښتنلیک ترجمه کیږي، په ورته پایپ کې چلند کیږي، او بیا ترجمه کیږي.
POST https://nymbot.ai/api/v1/messages - د API کلید ته اړتيا لري، لکه x-api-key یا Authorization: Bearer.
د anthropic-version او anthropic-beta د انټروپیک ماډل نومونه د کټګورۍ سره مطابقت کوي، نو Claude Code او SDKs د هغه نومونو سره کار کوي چې دوی اوس هم کاروي:
- یو نوم چې د کټګورۍ پوه، لکه
claude-sonnet-5یاanthropic/claude-opus-5لکه څنګه کارول کیږي. - په بل ډول د تاریخ (
-20260514),-latest، یو نسخه tag لکه-v1، لکه څنګه چې د Bracketed Tag[1m]او دanthropic/یاanthropic.د مخکښ کټګوریو څخه واخلئ، او په نسخه کې ټکونه او ډیزاینونه په دوامداره توګه هڅه شوي دي (claude-haiku-4-5ښکارهclaude-haiku-4.5). - که څه هم څه هم نه وي، د کورنۍ (Opus، Sonnet یا Haiku) کارول کیږي، که څه هم د کاتالوژۍ نسخه ورته یا نوي دی چې د پوښتنې لپاره.
- د نوم چې د هر څه سره مطابقت نلري
404not_found_error.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
model | د String | هو | د کاتالوژۍ ماډل ID، یا د Anthropic ماډل نوم. |
max_tokens | انټرنیټ | هو | ترټولو ډیری ټیکنونه لیکل کیږي. |
messages | نندارې | هو | user او assistant تارونه، سره text, image (base64 یا د URL سرچینې)، tool_use او tool_result د بلوکونو thinking د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه د مخکینۍ څخه. |
system | String یا Array | نه | د سیسټم پروپیلن، لکه د string یا متن بلاکونه. |
temperaturetop_p | شمیره | نه | د نمونې کنټرولونه، چې د ماډل یې ترلاسه کوي. top_k راټول شوي او ډک شوي. |
stop_sequences | د Strings Array | نه | متن چې د ځواب په پایله کې وي. په حد کې د 4 string، هر په حد کې د 256 karakters. |
toolstool_choice | Array، Object | نه | د تجهیزاتو سره name, description او input_schemaد web_search د Server Tool په د ویب پاڼه; د Anthropic نورو داخل شوي وسایلو (بش، متن editor، کمپيوټر استعمال) د unsupported_tool. tool_choice په auto, any, tool یا noneاو disable_parallel_tool_use. |
thinking | د Object | نه | {"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} یا {"type": "disabled"}د بودجه د هڅو کچه انتخاب کوي: د 2،048 کمېسيون څخه، د 2،048 کم څخه، د 8،192 متوسط څخه، د 16،384 لوړ څخه. output_config.effortاو یا لوړ. |
stream | بوټان | نه | په Anthropic کې د نندارتون فورمول کې. |
metadata | د Object | نه | په پام کې و او نادره. |
ځواب
{
"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 د بلوکونو او a thinking
د بلاک، چې د signature دا خالی دی. stop_reason د
end_turn, max_tokens, tool_use یا refusalپه ورته ډول کار کوي چې finish_reason د
چټک بشپړولو; stop_sequence همدارنګه
null، که څه هم کله چې د Stop sequence د ځواب پای ته ورسیږي. input_tokens یوازې تازه وارداتو حساب کوي؛ د پیاوړي وارداتو په دوو پیاوړي میدانونو کې دی. د لګښت په
nymbot Object او د X-Nymbot-Cost-Sats د هډر
Streamed، د واقعاتو دي Anthropic's: message_start,
content_block_start, ping, content_block_delta
(text_delta, input_json_delta یا thinking_delta),
content_block_stop, message_delta د Stop دلیل، د کارولو او د nymbot د لګښت object، او message_stopد ping هم په هر 15 ثانیو کې کله چې د ماډل کار کوي. د ټیکټ وروسته د وسایلو تماسونه، هر ډول په توګه
tool_use د بلاک سره د خپل ټول input په یوه input_json_delta.
په دې پایپ کې غلطونه د Anthropic فورمټ کاروي:
{"type": "error", "error": {"type": "not_found_error", "message": "…"}}یو مختصر توازن ده 402 billing_error، یو Overloaded عرضه کوونکي
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 - د API کلید ته اړتيا لري. وړيا.
بدن ورته دی چې د پیغامونهد max_tokens; د نمونوي نوم باید حل شي. د شمیره د اندازې ده: د سیسټم پاملرنې، پیغامونه، وسایلو تماسونه او وسایلو تعریفونه د څلور څخه تقسیم شوي، د هر انځور لپاره د 1600 څخه زیات. دا د سپارلو د خپل 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);
د نمونوي لیست
د API هر موډل او جنراتور، سره هغه څه چې دا لګښت لري. د لیست د اپلیکیشن picker په ورته لویه کټګورۍ څخه وګورئ، نو دا تل دا دی چې د سرور به چمتو کړي.
GET https://nymbot.ai/api/v1/models - نه اړتيا لري. د 5 دقیقې لپاره مخکښ.
GET /api/v1/models/{id} د 1 entrance ته ورسیږي.
| ځمکه | ډول | اړتيا | د نمونې |
|---|---|---|---|
type | String (د پوښتنې) | نه | chat (د فورمه په اړه) image, video, audio, embedding یا all. ډیری کولی شي ورکړل شي، لکه image,video. |
قیمتونه دا دی چې تاسو پیسې ورکړئ، په ډالرو کې، په ډالرو کې او په اوسني Bitcoin قیمت کې sats کې. balance دا بیان کوي چې د نمونوي لګښتونه.
nymbot_key د اپلیکیشن کې د ماډل د مختصر نوم دی. created په هر وخت کې 0 دی، ځکه چې د کاتالوژۍ نه ریکارډ کوي کله چې یو ماډل اضافه شوی. د ماډل پرته د چاپ شوي ټکین نرخونه قیمت شوي دي. per_request پرځای.
nymbot/auto تل لومړی دی، د قیمت په توګه variableد A
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او د 1 میلیونه input tokens لګښت.
قیمتونه نښې "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);