Βάση γνώσεων Οι προγραμματιστές
Chat, απαντήσεις και μηνύματα
Τρεις τρόποι για να ρωτήσετε ένα μοντέλο κάτι, στις τρεις μορφές οι πελάτες ήδη μιλούν, όλοι τρέχουν στα ίδια μοντέλα και χρεώνονται με τον ίδιο τρόπο.
Αυτή η σελίδα έχει μεταφραστεί μηχανικά για ευκολία. Το αγγλικό πρωτότυπο είναι η έκδοση που ισχύει.
Συμπληρώματα chat
Το OpenAI chat format, και αυτό που σχεδόν κάθε εργαλείο υποστηρίζει. στείλτε τη συνομιλία μέχρι στιγμής και να πάρετε το επόμενο μήνυμα πίσω.
POST https://nymbot.ai/api/v1/chat/completions Χρειάζεστε ένα API κλειδί.
Μόνο model και messages Μια παράμετρος δειγματοληψίας που το επιλεγμένο μοντέλο δεν παίρνει πέφτει χωρίς σφάλμα, έτσι ώστε ένα σώμα αίτησης λειτουργεί σε όλα τα μοντέλα. supported_parametersΑυτό που απορρίπτεται αντί να πέφτει είναι κάτι που το μοντέλο δεν μπορεί να κάνει καθόλου: εικόνες για ένα μοντέλο που δεν μπορεί να δει, εργαλεία για ένα μοντέλο που δεν μπορεί να τα καλέσει.
| Το πεδίο | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
model | Στρογγυλο | Ναί | nymbot/auto (ή auto) για τη δρομολόγηση του Nymbot στο πρότυπο ισοζύγιο, ή ένα αναγνωριστικό μοντέλου καταλόγου όπως anthropic/claude-sonnet-5 στο ισοζύγιο Pro. Τα σύντομα ονόματα και τα ψευδώνυμα της εφαρμογής γίνονται επίσης αποδεκτά. Αρκετά. |
messages | Αρένα | Ναί | Ο ρόλος, οι ρόλοι system, developer (Αντιμετωπίζεται ως σύστημα) user, assistant και toolΤο περιεχόμενο είναι μια σειρά ή μια λίστα text και image_url Μέρη: εικόνες μόνο στα μηνύματα των χρηστών. input_audio Τα αρχεία απορρίπτονται. |
stream | Μπουλάνης | Όχι | Στείλτε την απάντηση όπως είναι γραμμένη. δείτε Streaming. |
stream_options | αντικείμενο | Όχι | {"include_usage": true} προσθέτει ένα τελικό κομμάτι με τους αριθμούς token και το κόστος. |
max_tokensmax_completion_tokens | ΙΝΤΕΡ | Όχι | Οι περισσότερες μάρκες για να γράψετε. Μείωση στο μέγιστο του μοντέλου αν είναι υψηλότερη. επίσης καθορίζει πόσο κρατείται από το υπόλοιπο σας, έτσι ώστε ένας μικρότερος αριθμός χρειάζεται λιγότερη πίστωση για να ξεκινήσει. |
temperaturetop_p | Αριθμός | Όχι | Ο έλεγχος των δειγμάτων: temperature Από το 0 έως το 2, top_p Από το 0 στο 1. |
stop | Σύνδεσμος ή Array | Όχι | Κείμενο που τελειώνει την απάντηση: μια γραμμή ή το πολύ 4 γραμμές, το πολύ 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 | Σειρά ή αντικείμενο, Boolean | Όχι | Οδηγός λειτουργίας. δείτε Εργαλεία κλήσηςΑ Α web_search Το εργαλείο μετατρέπεται WEB ΑναζήτησηΣε 128 εργαλεία και 512 KB ορισμών, ενσωματωμένα σε 64 βαθύτερα επίπεδα. 400. |
reasoning_effortreasoning | Ετικέτα, αντικείμενο | Όχι | "minimal", "low", "medium" ή "high"Ή {"effort": "high"}. "none" ή {"enabled": false} Ανοίξτε το. δείτε Λόγος. |
plugins | Αρένα | Όχι | [{"id": "web", "max_results": 5}] πάντα ψάχνει πρώτα στο διαδίκτυο. έως 10 αποτελέσματα. |
n | ΙΝΤΕΡ | Όχι | 1 - Όλα τα υπόλοιπα επιστρέφουν 400. |
logit_biasusermetadata | Αντικείμενο, Σύνδεσμος, Αντικείμενο | Όχι | Αποδεκτό και δεν αποστέλλεται. logit_bias Χάρτες με έως και 300 token ids σε αριθμούς από -100 έως 100 user Μέγιστο 256 χαρακτήρες. metadata διατηρεί έως 16 τιμές σειράς, κλειδιά έως 64 χαρακτήρες και τιμές έως 512. |
Η απάντηση είναι συνηθισμένη chat.completionΜε το κόστος στο usage.cost
(σε δολάρια) και στο nymbot το αντικείμενο. 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 όταν η απάντηση χρησιμοποίησε κάθε επιτρεπόμενο token (ή το μοντέλο τα ξόδεψε όλα στο σκεπτικό και δεν έγραψε καμία απάντηση), content_filter Όταν ο προμηθευτής αρνείται, και stop
αλλιώς usage.completion_tokens_details.reasoning_tokens είναι πάντα 0: τα κρυμμένα tokens λογικής μετρούνται και χρεώνονται, σε completion_tokens.
| Το καθεστώς | Πότε |
|---|---|
400 | Όχι model ή messages (missing_required_parameter)? ένα μέρος ήχου ή αρχείου, ή εικόνες για ένα μοντέλο που δεν μπορεί να τα δει (unsupported_content(περισσότερες από 20 φωτογραφίες)too_many_images); μια παράμετρος δειγματοληψίας του λανθασμένου τύπου ή εκτός εμβέλειας (invalid_value); ένας σύνδεσμος εικόνας που δεν είναι δημόσια (invalid_image_url); εργαλεία σε ένα μοντέλο που δεν μπορούν να τα καλέσουν (unsupported_tool); n Άλλο από το 1· α :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);
Streaming
Με "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 δευτερόλεπτα, για να πάρει τον αριθμό token του, και πληρώνετε ό, τι αναφέρει ο πάροχος.
- Ένα λάθος πριν από το πρώτο κομμάτι, όπως
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_idΤο Nymbot δεν εκτελεί ποτέ τις λειτουργίες σας, μεταδίδει το αίτημα του μοντέλου πίσω σε εσάς.
tool_choice παίρνει "auto", "none",
"required" ή {"type": "function", "function": {"name": "…"}}Η λίστα μοντέλων επισημαίνει ποια μοντέλα μπορούν να καλέσουν εργαλεία (capabilities.toolsΤα εργαλεία απορρίπτονται 400 unsupported_tool είναι nymbot/auto και στα λίγα μοντέλα καταλόγου που τρέχουν στην μεταφορά Responses του OpenAI, στα οποία το Nymbot δεν μπορεί να περάσει τα εργαλεία.
Με "stream": true, ένα αίτημα με εργαλεία εκτελείται σε ένα κομμάτι και στη συνέχεια αποστέλλεται ως κανονική ακολουθία: ο ρόλος, ένα κομμάτι που φέρει κάθε κλήση εργαλείου με τον δείκτη, το id, το όνομα και τα επιχειρήματα και το τελικό κομμάτι.
Η απάντηση, εν μέρει
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call_7d2e",
"type": "function",
"function": { "name": "get_invoice_status", "arguments": "{\"invoice_id\":\"a41f\"}" }
}
]
},
"finish_reason": "tool_calls"
}
]
cURL
curl https://nymbot.ai/api/v1/chat/completions \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-5",
"messages": [{"role": "user", "content": "Has invoice a41f been paid?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_invoice_status",
"description": "Look up whether an invoice is paid.",
"parameters": {
"type": "object",
"properties": {"invoice_id": {"type": "string"}},
"required": ["invoice_id"]
}
}
}]
}'
Python
import json, os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
tools = [{
"type": "function",
"function": {
"name": "get_invoice_status",
"description": "Look up whether an invoice is paid.",
"parameters": {
"type": "object",
"properties": {"invoice_id": {"type": "string"}},
"required": ["invoice_id"],
},
},
}]
messages = [{"role": "user", "content": "Has invoice a41f been paid?"}]
reply = client.chat.completions.create(model="anthropic/claude-sonnet-5", messages=messages, tools=tools)
call = reply.choices[0].message.tool_calls[0]
args = json.loads(call.function.arguments)
messages.append(reply.choices[0].message)
messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps({"paid": True})})
final = client.chat.completions.create(model="anthropic/claude-sonnet-5", messages=messages, tools=tools)
print(final.choices[0].message.content)
JavaScript
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const tools = [{
type: "function",
function: {
name: "get_invoice_status",
description: "Look up whether an invoice is paid.",
parameters: {
type: "object",
properties: { invoice_id: { type: "string" } },
required: ["invoice_id"],
},
},
}];
const messages = [{ role: "user", content: "Has invoice a41f been paid?" }];
const reply = await client.chat.completions.create({ model: "anthropic/claude-sonnet-5", messages, tools });
const call = reply.choices[0].message.tool_calls[0];
const args = JSON.parse(call.function.arguments);
messages.push(reply.choices[0].message);
messages.push({ role: "tool", tool_call_id: call.id, content: JSON.stringify({ paid: true }) });
const final = await client.chat.completions.create({ model: "anthropic/claude-sonnet-5", messages, tools });
console.log(final.choices[0].message.content);
Φωτογραφίες σε αίτηση
Μοντέλα με capabilities.vision Μπορείτε να διαβάσετε εικόνες.Προσθήκη image_url
μέρος σε ένα μήνυμα χρήστη, με είτε ένα κοινό https:// Σύνδεσμος ή Α
data:image/…;base64, Ο αριθμός των φωτογραφιών που αναρτώνται στην αίτηση είναι μέχρι 20 εικόνες ανά αίτημα. οι εικόνες SVG απορρίπτονται, και έτσι υπάρχει ένας σύνδεσμος άνω των 4.096 χαρακτήρων ή ένας με όνομα χρήστη ή κωδικό πρόσβασης σε αυτό (400 invalid_image_urlΈνα προαιρετικό detail είναι
auto, low ή high.
Με nymbot/auto, ένα αίτημα με μια εικόνα σε αυτό κατευθύνεται σε ένα πρότυπο μοντέλο που μπορεί να δει. capabilities.vision Αρνούνται φωτογραφίες με
400 unsupported_contentΜια σύνδεση πρέπει να δείχνει σε έναν δημόσιο οικοδεσπότη. το Nymbot μεταδίδει την εικόνα στον πάροχο του μοντέλου και δεν τη διατηρεί.
Μια εικόνα χρεώνεται ως τα 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 αποστέλλει το αίτημα στην κανονική διαδρομή συλλογισμού.
Στα ανθρωπογενή μοντέλα η προσπάθεια γίνεται ένας προϋπολογισμός σκέψης περίπου 1.000, 2.000, 8.000 ή 16.000 tokens, ποτέ περισσότερο από max_tokens Σκεφτείτε, η σκέψη είναι κλειστή όταν
tool_choice αναγκάζει ένα εργαλείο, και όταν το αίτημα συνεχίζει μια ροή εργαλείων (το τελευταίο του μήνυμα είναι ένα αποτέλεσμα εργαλείου), επειδή το Anthropic χρειάζεται την προηγούμενη υπογεγραμμένη σκέψη για να το επαναλάβει.
Η λογική επιστρέφει στην message.reasoning_contentΉ
delta.reasoning_content κατά τη διάρκεια της ροής, ποτέ δεν αναμιγνύεται στην απάντηση. Η λογική είναι η έξοδος και χρεώνεται ως τέτοια, μέσα completion_tokensΜερικοί πάροχοι δεν επιστρέφουν το κείμενο συλλογισμού καθόλου και εξακολουθεί να χρεώνεται.
cURL
curl https://nymbot.ai/api/v1/chat/completions \
-H "Authorization: Bearer $NYMBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-5",
"reasoning_effort": "high",
"messages": [{"role": "user", "content": "Is 2^61 - 1 prime? Show why."}]
}'
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])
reply = client.chat.completions.create(
model="anthropic/claude-sonnet-5",
reasoning_effort="high",
messages=[{"role": "user", "content": "Is 2^61 - 1 prime? Show why."}],
)
message = reply.choices[0].message
print(getattr(message, "reasoning_content", None))
print(message.content)
JavaScript
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://nymbot.ai/api/v1", apiKey: process.env.NYMBOT_API_KEY });
const reply = await client.chat.completions.create({
model: "anthropic/claude-sonnet-5",
reasoning_effort: "high",
messages: [{ role: "user", content: "Is 2^61 - 1 prime? Show why." }],
});
console.log(reply.choices[0].message.reasoning_content);
console.log(reply.choices[0].message.content);
Μοντέλο επαρκών
Ένα επίθετο στο όνομα του μοντέλου αλλάζει τον τρόπο χειρισμού του αιτήματος, χωρίς άλλο πεδίο. anthropic/claude-sonnet-5:online.
| Αρκετά | ΕΠΙΠΤΩΣΗ |
|---|---|
:online | Αναζητά πρώτα το διαδίκτυο, όπως plugins: [{"id": "web"}]ΣΕ WEB Αναζήτηση. |
:thinking | Μεγάλες προσπάθειες λογικής, στο nymbot/autoΤο μονοπάτι της λογικής.Σε ένα μοντέλο που δεν μπορεί να λογική, 400 model_not_found με “no endpoints found&rdquo? |
: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}]Ή α:onlineΑρκεί το μοντέλο. - Αναζητήστε όταν βοηθάει:
"tools": [{"type": "web_search", "parameters": {"max_results": 5}}]Επίσης, αποδέχεται ωςweb_search_previewήopenrouter:web_searchΤο Nymbot ψάχνει μόνο όταν η ερώτηση φαίνεται να χρειάζεται τρέχουσες πληροφορίες, το ίδιο τεστ που χρησιμοποιεί η εφαρμογή.
max_results είναι 5 από προεπιλογή και στο μέγιστο 10. οι πηγές επιστρέφουν στο
nymbot.web_search.sourcesΟ καθένας με μια title, snippet και
urlΚαι ως url_citation Σημειώσεις στο μήνυμα.
Κάθε αναζήτηση που τρέχει κοστίζει $ 0,008, μετατρέπεται σε sats, πάνω από τα tokens, και είναι μέρος του hold. οι σελίδες που διαβάζει είναι εισαγωγικά 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);
ΑΠΑΝΤΗΣΗ ΦΩΤΙΑ
Η νεότερη μορφή του OpenAI, που χρησιμοποιείται από το OpenAI Agents SDK και από τον Codex. τρέχει με τα ίδια μοντέλα, τιμολόγηση και χαρακτηριστικά όπως το Chat Completions.
POST https://nymbot.ai/api/v1/responses Χρειάζεστε ένα API κλειδί.
| Το πεδίο | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
model | Στρογγυλο | Ναί | Ως προς Συμπληρώματα chatΣυμπεριλαμβάνονται και τα suffixes. |
input | Σύνδεσμος ή Array | Ναί | Μια γραμμή ή μια λίστα στοιχείων: μηνύματα (Ρόλοι user, assistant, system, developer) με input_text, input_image και output_text Μερικά μέρη και function_call και function_call_output αντικείμενα για τα εργαλεία. input_image Πάρτε ένα image_url σύνδεση ή διεύθυνση URL δεδομένων, όχι ένα αναγνωριστικό αρχείου. reasoning και web_search_call Τα αντικείμενα παραλείπονται. item_reference έχει απορριφθεί |
instructions | Στρογγυλο | Όχι | Οδηγίες του συστήματος. |
max_output_tokens | ΙΝΤΕΡ | Όχι | Οι περισσότερες κουβέντες για να γράψετε |
temperaturetop_p | Αριθμός | Όχι | Δείγμα ελέγχων, όπου το μοντέλο τα παίρνει. |
toolstool_choiceparallel_tool_calls | Σειρά ή αντικείμενο, 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_object. |
metadata | αντικείμενο | Όχι | Επιστρέφεται αμετάβλητη στην απάντηση. σε 16 τιμές σειράς, κλειδιά έως 64 χαρακτήρες και τιμές έως 512. |
stream | Μπουλάνης | Όχι | 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Στείλτε το αποτέλεσμα πίσω ως a
function_call_output Θέμα με το ίδιο call_idΗ λογική, όταν το μοντέλο το επιστρέφει, είναι μια reasoning Θέμα με reasoning_text Περιεχόμενο που αναγράφεται πρώτα. status είναι incomplete Όταν η απάντηση χτυπάει
max_output_tokens Ο προμηθευτής αρνήθηκε, με
incomplete_details.reason Στέλεχος max_output_tokens ή
content_filterΗ απάντηση αντανακλά επίσης τις ρυθμίσεις του αιτήματος (θερμοκρασία, εργαλεία, επιλογή εργαλείων και ούτω καθεξής) όπως κάνει το OpenAI και μεταφέρει το nymbot κόστος του αντικειμένου.
Σίγουρα, κάθε εκδήλωση είναι event: Η γραμμή και η data: γραμμή με α
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 | Ολοκλήρωση των 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, για τα Anthropic SDKs και Claude Code. Λειτουργεί με κάθε μοντέλο στον κατάλογο, όχι μόνο 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Μια εκδοχή όπως η-v1Μια χαλαρή μέρα, όπως[1m]Και έναanthropic/ήanthropic.Το προφίλ αφαιρείται και τα σημεία και οι πίστες στην έκδοση δοκιμάζονται και στις δύο κατευθύνσεις (claude-haiku-4-5Βρέθηκανclaude-haiku-4.5). - Εάν αυτό δεν ταιριάζει ακόμα, χρησιμοποιείται η οικογένεια (Opus, Sonnet ή Haiku), εφόσον η έκδοση του καταλόγου είναι η ίδια ή νεότερη από εκείνη που ζητήθηκε.
- Ένα όνομα που δεν ταιριάζει με τίποτα επιστρέφει
404not_found_error.
| Το πεδίο | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
model | Στρογγυλο | Ναί | Ένα αναγνωριστικό μοντέλου καταλόγου ή ένα ανθρωπογενές όνομα μοντέλου. |
max_tokens | ΙΝΤΕΡ | Ναί | Οι περισσότερες κουβέντες για να γράψετε |
messages | Αρένα | Ναί | user και assistant Γύρω, με text, image (base64 ή πηγή URL), tool_use και tool_result των μπλοκ. thinking Τα μπλοκ από προηγούμενες στροφές γίνονται δεκτά και απορρίπτονται. |
system | Σύνδεσμος ή Array | Όχι | Προειδοποίηση συστήματος, όπως μια σειρά ή μπλοκ κειμένου. |
temperaturetop_p | Αριθμός | Όχι | Δείγμα ελέγχων, όπου το μοντέλο τα παίρνει. top_k Αποδέχεται και εγκαταλείπει. |
stop_sequences | Ετικέτες STRINGS | Όχι | Κείμενο που τελειώνει την απάντηση. Μέγιστο 4 στίχους, το καθένα με μέγιστο 256 χαρακτήρες. |
toolstool_choice | Ετικέτα, αντικείμενο | Όχι | Εργαλεία με name, description και input_schemaΑ Α web_search Το εργαλείο server μετατρέπεται σε WEB ΑναζήτησηΤα άλλα ενσωματωμένα εργαλεία του Anthropic (bash, επεξεργασία κειμένου, χρήση υπολογιστή) απορρίπτονται με unsupported_tool. tool_choice παίρνει auto, any, tool ή noneκαι disable_parallel_tool_use. |
thinking | αντικείμενο | Όχι | {"type": "enabled", "budget_tokens": 8192}, {"type": "adaptive"} ή {"type": "disabled"}Ο προϋπολογισμός επιλέγει ένα επίπεδο προσπάθειας: κάτω από 2.048 ελάχιστο, από 2.048 χαμηλό, από 8.192 μεσαίο, από 16.384 υψηλό. output_config.effortΉ και ψηλά. |
stream | Μπουλάνης | Όχι | Αναπαραγωγή σε μορφή εκδήλωσης του 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 του Header.
Τα επεισόδια είναι του Anthropic: 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.
Σφάλματα σε αυτό το σημείο τερματισμού χρησιμοποιούν τη μορφή του Anthropic:
{"type": "error", "error": {"type": "not_found_error", "message": "…"}}Μια σύντομη ισορροπία είναι 402 billing_errorΈνας υπερφορτωμένος πάροχος
503 overloaded_errorΜια αποτυχία μετά την έναρξη του ρεύματος αποστέλλεται ως error Εκδήλωση .
cURL
curl https://nymbot.ai/api/v1/messages \
-H "x-api-key: $NYMBOT_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "What is a Lightning invoice?"}]
}'
Python
import os
import anthropic
client = anthropic.Anthropic(base_url="https://nymbot.ai/api", api_key=os.environ["NYMBOT_API_KEY"])
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "What is a Lightning invoice?"}],
)
print(message.content[0].text)
JavaScript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://nymbot.ai/api", apiKey: process.env.NYMBOT_API_KEY });
const message = await client.messages.create({
model: "claude-sonnet-5",
max_tokens: 1024,
messages: [{ role: "user", content: "What is a Lightning invoice?" }],
});
console.log(message.content[0].text);
Αξιολόγηση tokens
Μια εκτίμηση του πόσα tokens εισόδου θα χρησιμοποιούσε ένα αίτημα μηνυμάτων, έτσι ώστε ένας πελάτης να μπορεί να ελέγξει πριν στείλει.
POST https://nymbot.ai/api/v1/messages/count_tokens Χρειάζεστε ένα API κλειδί. δωρεάν.
Το σώμα είναι το ίδιο με το ΜηνύματαΧωρίς 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);
Κατάλογος μοντέλων
Κάθε μοντέλο και γεννήτρια που δέχεται το API, με ό, τι κοστίζει.Η λίστα διαβάζεται από τον ίδιο ζωντανό κατάλογο με τον επιλέκτη της εφαρμογής, οπότε είναι πάντα αυτό που θα τρέξει ο διακομιστής.
GET https://nymbot.ai/api/v1/models - Δεν χρειάζεται κλειδί. Κρυμμένο για πέντε λεπτά.
GET /api/v1/models/{id} Επιστρέφει μία είσοδος.
| Το πεδίο | Τύπος | Απαιτείται | Περιγραφή |
|---|---|---|---|
type | Ετικέτα (query) | Όχι | chat (Η αποτυχία είναι image, video, audio, embedding ή allΠολλές από αυτές μπορούν να δοθούν, όπως image,video. |
Οι τιμές είναι αυτό που πληρώνετε, με το τέλος και το περιθώριο ήδη σε, σε δολάρια και σε δόσεις στην τρέχουσα τιμή Bitcoin. 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και μια τιμή ανά εκατομμύριο εισερχόμενα 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);