មូលដ្ឋានចំណេះដឹង អ្នកបង្កើត
Chat, ឆ្លើយតប និង អាសយដ្ឋាន
មានបីវិធីសាស្រ្តដើម្បីសួរគំរូអ្វីមួយ, នៅក្នុងបីទំហំរបស់អតិថិជនដែលបាននិយាយដោយឥឡូវនេះ, ទាំងអស់ដំណើរការនៅលើគំរូដូចគ្នានិងទូទាត់ដូចគ្នានេះ។
ទំព័រនេះត្រូវបានបកប្រែដោយម៉ាស៊ីនសម្រាប់ភាពងាយស្រួល។ ភាសាអង់គ្លេសដើមគឺជាកំណែដែលអនុវត្ត។
ការបញ្ចប់ chat
The OpenAI chat format, and the one almost every tool supports. Send the conversation so far and get the next message back.
POST https://nymbot.ai/api/v1/chat/completions តើអ្នកត្រូវការគោលបំណង API
ដោយតែ model និង messages គំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិតគំនិត supported_parametersអ្វីដែលត្រូវបានគេស្គាល់ជាងត្រូវបានបាត់បង់គឺអ្វីដែលម៉ូដែលមិនអាចធ្វើទេ: រូបថតសម្រាប់ម៉ូដែលដែលមិនអាចមើលឃើញ, ឧបករណ៍សម្រាប់ម៉ូដែលមិនអាចទាក់ទងពួកគេ។
| តំបន់ | ប្រភេទ | តម្រូវការ | ការបោះពុម្ព |
|---|---|---|---|
model | ដំណឹង | បាទ | nymbot/auto (ឬ auto) សម្រាប់ការដំណើរការរបស់ Nymbot នៅលើការកំណត់ធម្មតាឬ ID ម៉ូដែលកាតាឡុកដូចជា anthropic/claude-sonnet-5 នៅលើប្រព័ន្ធប្រតិបត្តិការ Pro ។ អ្នកអាចទទួលបានឈ្មោះទូទាត់និងអេឡិចត្រូនិរបស់កម្មវិធីនេះផងដែរ។ អាចបញ្ចប់នៅក្នុង អាហារ. |
messages | ដំណឹង | បាទ | គោលនយោបាយ - គោលនយោបាយ system, developer (ប្រព័ន្ធដូចជាប្រព័ន្ធ) user, assistant និង toolសម្ភារៈគឺជាសៀវភៅឬសៀវភៅនៃ text និង image_url ផ្នែក: រូបភាពតែនៅក្នុងប្រកាសអ្នកប្រើ។ input_audio and file parts are refused. |
stream | boolean ។ | មិន | សូមបញ្ជាក់ពីរបៀបដែលវាបានសរសេរ។ សូមមើល ការ Streaming. |
stream_options | គោលបំណង | មិន | {"include_usage": true} បានបន្ថែមផ្នែកចុងក្រោយជាមួយនឹងការគណនី token និងតម្លៃ។ |
max_tokensmax_completion_tokens | ដំបូង | មិន | កម្រិតខ្ពស់បំផុតដើម្បីសរសេរ។ កម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់ជាងកម្រិតខ្ពស់។ |
temperaturetop_p | ដំណឹង | មិន | ការត្រួតពិនិត្យគំរូ: temperature ពី 0 ទៅ 2 top_p ពី 0 ទៅ 1 |
stop | string ឬ array ។ | មិន | សៀវភៅដែលបញ្ចប់ការឆ្លើយតប: សៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅ nymbot/auto. |
seed | ដំបូង | មិន | សម្រាប់ការកាត់បន្ថយសំរាប់ដែលម៉ូដែលគាំទ្រវា។ |
presence_penaltyfrequency_penalty | ដំណឹង | មិន | ការត្រួតពិនិត្យជារៀងរាល់ពី -2 ទៅ 2 ។ |
response_format | គោលបំណង | មិន | {"type": "json_object"} ឬ {"type": "json_schema", "json_schema": {…}}, where the model supports it. Not used by nymbot/auto. |
toolstool_choiceparallel_tool_calls | Array, String ឬ Object, boolean | មិន | រូបថត រូបថត រូបថត រូបថត ឧបករណ៍ ទូរស័ព្ទនេះ A web_search ឧបករណ៍បង្វិល ការស្វែងរក WEBអតិបរមា 128 ឧបករណ៍ និង 512 គីឡូក្រាមនៃការកំណត់សម្គាល់ដែលមានទំហំទូលំទូលំទូលំទូលំទូលំទូលំទូលំទូលំទូលំទូលំទូលំទូលំទូលំទូលំទូលំទូល 400. |
reasoning_effortreasoning | ដំបូង, Object | មិន | "minimal", "low", "medium" ឬ "high"ឬ {"effort": "high"}. "none" ឬ {"enabled": false} សូមមើលវា។ សូមមើល គោលនយោបាយ. |
plugins | ដំណឹង | មិន | [{"id": "web", "max_results": 5}] ការស្វែងរកតាមបណ្តាញអ៊ីនធឺណិតជាលើកដំបូង។ រហូតដល់ 10 លទ្ធផល។ |
n | ដំបូង | មិន | កុំព្យូទ័រ - Everything Other Returns 400. |
logit_biasusermetadata | ប្រព័ន្ធ ប្រតិបត្តិការ Object, String, Object | មិន | បានទទួលបាននិងមិនបានផ្ញើ។ logit_bias គំនូរទិន្នន័យ token ទៅកំណត់ចំនួនពី -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 វាគឺជាការពិតប្រាកដដែលជាការពិតប្រាកដដែលជាការពិតប្រាកដដែលជាការពិតប្រាកដដែលជាការពិតប្រាកដដែលជាការពិតប្រាកដ។ 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គ្មានអ្វីដែលត្រូវបានទូទាត់ប៉ុន្តែអ្នកផ្គត់ផ្គង់មិនត្រូវបានទូទាត់សម្រាប់ការព្យាយាម។ |
លេខកូដស្ថានីយ៍ទាំងអស់នៃការផ្លាស់ប្តូរ 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);
ការ Streaming
ជាមួយ "stream": true the answer arrives as server-sent events while the model writes
it. Each event is a chat.completion.chunk នេះ a data: ច្រកច្រកច្រកច្រកច្រកច្រកច្រកច្រកច្រកច្រក data: [DONE]គោលបំណងចូលទៅក្នុង
delta.reasoning_contentឆ្លើយតបនៅក្នុង delta.content.
ការផ្លាស់ប្តូរណាមួយដែលអាចរយៈពេលជាង 100 វិនាទីដូចជាការឆ្លើយតបវែង, ការផ្លាស់ប្តូរ
max_tokens or a reasoning model. A request that is not streamed sends nothing until
the answer is complete, and the network between you and Nymbot may close an idle connection
after about 100 seconds; the model still finishes and what it wrote is charged, but the answer
is lost. A stream sends keep-alives, so it stays open for as long as the model writes.
ដំណឹង
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]
- បន្ទាត់ចាប់ផ្តើមជាមួយ
:ការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរការសរសេរ។ - សូមស្វាគមន៍
"stream_options": {"include_usage": true}ដើម្បីទទួលបានផ្នែកចុងក្រោយបំផុតនៅលើ, ជាមួយនឹងការបិទchoicesការគណនានិងការគណនានិងការnymbotសម្ភារៈ - ប្រសិនបើអ្នកកាត់បន្ថយការតភ្ជាប់មុនពេលវេលាម៉ូដែលមិនត្រូវបានកាត់បន្ថយ: Nymbot ពិនិត្យឡើងវិញការផ្គត់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ
- ដំណោះស្រាយប្រហែលជាមុនពេលចុងក្រោយដូចជា
401ឬ402ទោះជាយ៉ាងណាក៏ដោយវាជា JSON ដែលមានគោលបំណងដើម្បីធ្វើឱ្យប្រាកដថាវាជា JSON ដែលមានគោលបំណងដើម្បីធ្វើឱ្យប្រាកដថាវាជា JSON ដែលមានគោលបំណងដើម្បីធ្វើឱ្យប្រាកដថាវាជា JSON ដែលមានគោលបំណងដើម្បីធ្វើឱ្យប្រាកដថាវាជា JSON ដែលមានគោលបំណងដើម្បីធ្វើឱ្យប្រាកដថាវាជា JSON ដែលមានគោលបំណងដើម្បីធ្វើឱ្យប្រាកដថាវាជា JSON ដែលមានគោលបំណងដើម្បីធ្វើឱ្យប្រាកដថាវាជា JSON ដែលមានគោលបំណង។data: {"error": {…}}event, and the stream ends without[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": "…"}}.
The model list marks which models can call tools (capabilities.tools) ឧបករណ៍ត្រូវបានគេស្គាល់ជាមួយ 400 unsupported_tool អាន nymbot/auto និងនៅលើម៉ូដែលកាតាឡុកមួយចំនួនដែលធ្វើដំណើរលើការដឹកជញ្ជូន Responses នៃ OpenAI ដែល Nymbot មិនអាចផ្ញើឧបករណ៍ទៅ។
ជាមួយ "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:// ប្លុក ឬ A
data:image/…;base64, អាសយដ្ឋាន: អាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋានអាសយដ្ឋាន400 invalid_image_urlលក្ខណៈពិសេស detail ខ្ញុំ
auto, low ឬ high.
ជាមួយ nymbot/autoកម្រងដែលមានរូបថតនៅក្នុងវាត្រូវបានផ្លាស់ប្តូរទៅនឹងម៉ូដែលស្តង់ដារដែលអាចមើលបាន។ ម៉ូដែលកាតាឡុកដោយគ្មាន capabilities.vision ទាញយករូបថតជាមួយ
400 unsupported_contentរូបថតអាចមានតែនៅក្នុងសេចក្តីអធិប្បាយរបស់អ្នកប្រើប្រាស់។ បំណែកគួរតែបង្ហាញទៅជាក្រុមហ៊ុនផ្គត់ផ្គង់របស់ម៉ូដែល។ Nymbot ផ្តល់រូបថតទៅក្រុមហ៊ុនផ្គត់ផ្គង់របស់ម៉ូដែលនិងមិនរក្សាវា។
រូបថតនេះត្រូវបានទូទាត់ដោយសារតែតម្រូវការ input 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",
"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 tokens, មិនមែនច្រើនជាង 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);
ម៉ូដែល suffixes
ការផ្លាស់ប្តូរនៅលើឈ្មោះម៉ូដែលផ្លាស់ប្តូររបៀបដែលទម្រង់នេះត្រូវបានដំណើរការដោយគ្មានកន្លែងផ្សេងទៀត។ ពួកគេធ្វើការនៅលើ ids ទាំងស្រុងនិងឈ្មោះច្បាស់ដូចគ្នា, ដូចជានៅក្នុង anthropic/claude-sonnet-5:online.
| ដំណោះស្រាយ | លទ្ធផល |
|---|---|
:online | សូមស្វែងរកគេហទំព័រជាលើកដំបូងដូចជា plugins: [{"id": "web"}]នេះ ការស្វែងរក WEB. |
:thinking | ការធ្វើតេស្តខ្ពស់; នៅលើ nymbot/autoនៅលើគំរូដែលមិនអាចជឿទុកចិត្ត, 400 model_not_found ជាមួយនឹង “ No Endpoints Found ” ។ |
:nitro, :floor, :exacto, :extended | គំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូគំរូ |
ទោះជាយ៉ាងណាក៏ដោយប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើប្រសិនបើ 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 អនុញ្ញាតឱ្យអ្នកស្វែងរកសេចក្តីអធិប្បាយចុងក្រោយរបស់អ្នកប្រើប្រាស់ (ប្រហែល 2,000 សៀវភៅដំបូងរបស់ខ្លួន) បានអានទំព័រល្អបំផុតនិងផ្តល់ឱ្យវាទៅនឹងម៉ូដែលជាមួយនឹងសំណួរដែលបានបញ្ជាក់ថាជាសម្ភារៈខាងក្រៅដែលម៉ូដែលមិនគួរតែទទួលបានការបង្ហាញពី។ មានរយៈពេលពីរដំណើរការ:
- សូមស្វែងរក:
"plugins": [{"id": "web", "max_results": 5}]ឬ A:onlineទោះជាយ៉ាងណា, suffix នៅលើគំរូនេះ. - សូមស្វែងរកនៅពេលដែលវាជួយ:
"tools": [{"type": "web_search", "parameters": {"max_results": 5}}]វាត្រូវបានគេស្គាល់ថាweb_search_previewឬopenrouter:web_searchNymbot បានស្វែងរកតែនៅពេលដែលសំណួរគួរតែត្រូវការទិន្នន័យបច្ចុប្បន្នដូចគ្នានេះគឺជាការធ្វើតេស្តដែលកម្មវិធីប្រើ។
max_results នេះគឺជា 5 ដោយគោលបំណងនិងជាច្រើនជាង 10 អ្នកផ្គត់ផ្គង់ផ្គត់ផ្គង់ចូលទៅក្នុង
nymbot.web_search.sourcesទាំងអស់ជាមួយ A title, snippet និង
urlហើយដូចជា url_citation យោបល់អំពីសេចក្តីអធិប្បាយ
ការស្វែងរកមួយដែលធ្វើការមានតម្លៃ $ 0.008, ការផ្លាស់ប្តូរទៅ sats, នៅលើ tokens, និងវាជាផ្នែកមួយនៃការរក្សាទុក។ ទំព័រដែលវាបានអានគឺជា tokens ដំណោះស្រាយផងដែរ, ដូច្នេះការឆ្លើយតបពីអ៊ីនធឺណិតមានតម្លៃច្រើនជាងសំណួរដូចគ្នានេះបានគេហៅឆាប់រហ័ស, ពេលវេលាជាច្រើនជាងនេះ.
ឆ្លើយតបជាផ្នែកមួយ
"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 Agents SDK និង Codex ។ វាត្រូវបានដំណើរការនៅលើម៉ូដែលដូចគ្នានៃការទូទាត់និងលក្ខណៈពិសេសដូចជា Chat Completions ។
POST https://nymbot.ai/api/v1/responses តើអ្នកត្រូវការគោលបំណង API
| តំបន់ | ប្រភេទ | តម្រូវការ | ការបោះពុម្ព |
|---|---|---|---|
model | ដំណឹង | បាទ | សម្រាប់ ការបញ្ចប់ chatលក្ខណៈពិសេសរួមបញ្ចូល |
input | string ឬ array ។ | បាទ | សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ user, assistant, system, developer) ជាមួយ input_text, input_image និង output_text ផ្នែក និង function_call និង function_call_output ផលិតផលសម្រាប់ឧបករណ៍ input_image ទទួលបាន image_url link or data URL, not a file id. reasoning និង web_search_call សម្ភារៈនេះត្រូវបានបិទ; item_reference បានគេចាត់។ |
instructions | ដំណឹង | មិន | គោលបំណងប្រព័ន្ធ |
max_output_tokens | ដំបូង | មិន | សៀវភៅជាច្រើនបំផុតដើម្បីសរសេរ។ |
temperaturetop_p | ដំណឹង | មិន | ការត្រួតពិនិត្យគំរូ, នៅពេលដែលម៉ូដែលទទួលបានវា. |
toolstool_choiceparallel_tool_calls | Array, String ឬ Object, boolean | មិន | លក្ខណៈពិសេសនៃការធ្វើតេស្ត ({"type": "function", "name": …, "parameters": …}) និង web_search ឬ web_search_preview ឧបករណ៍បង្វិល ការស្វែងរក WEB នៅពេលដែលវាអាចជួយ។ ឧបករណ៍ផ្សេងទៀតដែលមានទីតាំងស្ថិតត្រូវបានគេស្គាល់។ |
reasoning | គោលបំណង | មិន | {"effort": "minimal" | "low" | "medium" | "high"}. xhigh និង max មានន័យថា high; none បានបាត់បង់។ |
text.formatresponse_format | គោលបំណង | មិន | ប្រព័ន្ធប្រតិបត្តិការ JSON ដែលជាប្រព័ន្ធប្រតិបត្តិការ JSON ឬ json_object. |
metadata | គោលបំណង | មិន | ទោះជាយ៉ាងណាក៏ដោយគ្មានការផ្លាស់ប្តូរនៅក្នុងការឆ្លើយតប។ នៅលើទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំទំហំ 512 ។ |
stream | boolean ។ | មិន | Stream events as described below. |
store | boolean ។ | មិន | គ្មានអ្វីដែលត្រូវបានរក្សាទុក, និងការឆ្លើយតបគឺជាពេលវេលា "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 }
}
A tool request shows up in 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 ដោះស្រាយ max_output_tokens ឬ
content_filterការឆ្លើយតបនេះក៏ជាការឆ្លើយតបទៅនឹងការកំណត់នៃសំណួរ (សីតុណ្ហភាព, ឧបករណ៍, ការជ្រើសរើសឧបករណ៍និងដូច្នេះទៀត) ដូចដែល OpenAI បានធ្វើ។ nymbot តម្លៃ សម្ភារៈ
ហ្វេសប៊ុក - Every event is a 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. Tool calls
come after the message, each as an item with response.function_call_arguments.delta
និង .done.
| សមត្ថភាព | ពេលដែល |
|---|---|
400 | មិន model ឬ input; previous_response_id, conversation, background ឬ item_reference (unsupported_parameter); ឧបករណ៍ឬប្រភេទសម្ភារៈដែលមិនគាំទ្រ។ |
402, 403, 404, 429, 502, 503 | ដូចជាការបញ្ចប់ chat. |
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
វាត្រូវបានធ្វើការជាមួយនឹងម៉ូដែលទាំងអស់នៅក្នុងកាតាឡុក, មិនគ្រាន់តែ Claude: ការចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកចែកច
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សៀវភៅដូចជា Bracketed Tag[1m]និងanthropic/ឬanthropic.ការធ្វើតេស្តនិងការធ្វើតេស្តនៃការធ្វើតេស្តនិងការធ្វើតេស្តនៃការធ្វើតេស្តគឺជាការធ្វើតេស្តទាំងពីរ (claude-haiku-4-5បានរកឃើញclaude-haiku-4.5). - ប្រសិនបើវាមិនត្រឹមត្រូវទេវាត្រូវបានប្រើសម្រាប់ប្រភេទ (Opus, Sonnet ឬ Haiku) ដូច្នេះប្រសិនបើប្រភេទនៃកាតាឡុកគឺដូចគ្នាឬថ្មីជាងប្រភេទដែលអ្នកចង់បាន។
- សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ សៀវភៅ
404not_found_error.
| តំបន់ | ប្រភេទ | តម្រូវការ | ការបោះពុម្ព |
|---|---|---|---|
model | ដំណឹង | បាទ | A catalog model id, or an Anthropic model name. |
max_tokens | ដំបូង | បាទ | សៀវភៅជាច្រើនបំផុតដើម្បីសរសេរ។ |
messages | ដំណឹង | បាទ | user និង assistant ហ្វេសប៊ុកជាមួយ text, image (ប្រព័ន្ធប្រតិបត្តិការ 64 និង URL) tool_use និង tool_result ប្លុក thinking ប្លុកពីជំហានមុនត្រូវបានទទួលបាននិងបាត់បន្ថយ។ |
system | string ឬ array ។ | មិន | ប្រព័ន្ធ prompt, ដូចជា string or text blocks ។ |
temperaturetop_p | ដំណឹង | មិន | ការត្រួតពិនិត្យគំរូ, នៅពេលដែលម៉ូដែលទទួលបានវា. top_k វាត្រូវបានទទួលបាននិងបាត់បង់។ |
stop_sequences | ប្រភេទ Strings | មិន | សៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅសៀវភៅ |
toolstool_choice | អាសយដ្ឋាន, Object | មិន | ឧបករណ៍ជាមួយ name, description និង input_schemaនេះ A web_search ឧបករណ៍បង្វិលបង្វិលបង្វិល ការស្វែងរក WEBការប្រើប្រាស់ឧបករណ៍ផ្សេងទៀតរបស់ Anthropic (bash, text editor, computer use) គឺមិនអាចប្រើបាន unsupported_tool. tool_choice បាន auto, any, tool ឬ noneនិង disable_parallel_tool_use. |
thinking | គោលបំណង | មិន | {"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} ឬ {"type": "disabled"}ការផ្លាស់ប្តូរគោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណងរបស់គោលបំណង។ output_config.effortឬខ្ពស់។ |
stream | boolean ។ | មិន | វាត្រូវបានគេហៅនៅក្នុងប្រព័ន្ធប្រតិបត្តិការ 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 ប្លុក និង A thinking
ប្លុក ដែល signature វាគឺជាការគ្មាន stop_reason ខ្ញុំ
end_turn, max_tokens, tool_use ឬ refusalបានធ្វើការដូចគ្នានេះ finish_reason អាន
ការបញ្ចប់ chat; stop_sequence វាគឺជា
nullដូច្នេះនៅពេលដែលបញ្ចប់បញ្ចប់បញ្ចប់បញ្ចប់បញ្ចប់បញ្ចប់បញ្ចប់បញ្ចប់បញ្ចប់បញ្ចប់ input_tokens ការផ្តល់ជូនដំណោះស្រាយទាំងពីរនេះគឺជាការផ្តល់ជូនដំណោះស្រាយទាំងពីរ។ ការផ្តល់ជូនដំណោះស្រាយទាំងពីរនេះគឺជាការផ្តល់ជូនដំណោះស្រាយទាំងពីរ។
nymbot Object និង X-Nymbot-Cost-Sats លោក Header
ការប្រកួតប្រជែងនេះគឺ Anthropic's: message_start,
content_block_start, ping, content_block_delta
(text_delta, input_json_delta ឬ thinking_delta),
content_block_stop, message_delta ដោយសារតែគោលបំណងនៃការប្រើប្រាស់និង nymbot គោលបំណងតម្លៃ និង message_stopនេះ A ping វាត្រូវបានផ្លាស់ប្តូរនៅពេលដែលម៉ូដែលធ្វើការ 15 វិនាទី។ ការទូរស័ព្ទឧបករណ៍មកដល់បន្ទាប់ពីសៀវភៅមួយ។
tool_use កុំព្យូទ័រជាមួយនឹងការចូលទាំងអស់របស់ខ្លួននៅក្នុងមួយ input_json_delta.
Errors on this endpoint use Anthropic's format ។
{"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 — អ្នកត្រូវការ API key ។ ដោយឥតគិតថ្លៃ។
ប្រព័ន្ធ ប្រតិបត្តិការ ប្រតិបត្តិការ ប្រតិបត្តិការ សៀវភៅដោយគ្មាន 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);
សៀវភៅ Models
ទាំងអស់នៃម៉ូដែលនិងកំណត់ផ្គង់ដែល API បានទទួលបាន, ជាមួយនឹងតម្លៃរបស់វា។ សៀវភៅនេះត្រូវបានអានពីកាតាឡុកផ្ទាល់ដូចគ្នានៅក្នុងកម្មវិធីរបស់អ្នក, ដូច្នេះវាគឺជាការដែលផ្គត់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់ផ្គង់
GET https://nymbot.ai/api/v1/models — មិនចាំបាច់បញ្ចូលគោលបំណង។ បិទរយៈពេល 5 នាទី។
GET /api/v1/models/{id} ជម្រើស 1 entry ។
| តំបន់ | ប្រភេទ | តម្រូវការ | ការបោះពុម្ព |
|---|---|---|---|
type | ប្រព័ន្ធ ប្រតិបត្តិការ string (query) | មិន | chat (ប្រសិនបើមានការបញ្ហានេះទេ) image, video, audio, embedding ឬ allអ្នកអាចរកបានជាច្រើនដូចជា image,video. |
តម្លៃគឺជាអ្វីដែលអ្នកទូទាត់, ជាមួយនឹងការទូទាត់និងលទ្ធផលដែលមាននៅពេលនេះ, ក្នុងដុល្លារនិងនៅក្នុងតម្លៃនៅពេលបច្ចុប្បន្ននៃតម្លៃ Bitcoin ។ balance បាននិយាយអំពីរបៀបដែលគំរូផ្គត់ផ្គង់។
nymbot_key នេះគឺជាឈ្មោះកាត់បន្ថយរបស់ម៉ូដែលនៅក្នុងកម្មវិធី។ created វាត្រូវបានបញ្ជាក់ថាតើគំរូនេះមិនត្រូវបានបង្ហាញនៅពេលដែលគំរូនេះត្រូវបានបន្ថែម។ គំរូដែលមិនមានតម្លៃ token បានបោះពុម្ពគឺមានតម្លៃ 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និងតម្លៃមួយក្នុងមួយគីឡូម៉ែត្រការចូល។
តម្លៃ ស្លាក "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);