Anthropic
POST /v1/messages ኣብ ቅርጺ Anthropic Messages ጠለብ ወሲዱ ብተመሳሳሊ ቅርጺ፣ streamed ወይ ዘይኮነ ይምልስ። ምስ Anthropic SDK ከምኡውን ኣብኡ ዝተሃንደሱ tools ከም Claude Code ተጠቐሞ፦ base URL ኣዘጋጅ፣ ናትካ Shannon API ቁልፊ ተጠቐም ከምኡውን ናይ Shannon ሞዴል id ሰም።
POST https://api.shannon-ai.com/v1/messages
Anthropic SDK ናብ Shannon base URL ኣመልክት። እቲ SDK /v1/messages ይውስኽ ከምኡውን ቁልፍኻ ኣብ x-api-key header ይልእኽ።
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com",
)
message = client.messages.create(
model="shannon-3",
max_tokens=1024,
messages=[{"role": "user", "content": "Say hello in one sentence."}],
)
for block in message.content:
if block.type == "text":
print(block.text) import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com",
});
const message = await client.messages.create({
model: "shannon-3",
max_tokens: 1024,
messages: [{ role: "user", content: "Say hello in one sentence." }],
});
for (const block of message.content) {
if (block.type === "text") console.log(block.text);
} curl https://api.shannon-ai.com/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "shannon-3",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Say hello in one sentence."}]
}' እቲ ምላሽ content ዝርዝር blocks ዝኾነ መልእኽቲ እዩ። Blocks ብ type ኣዳሉዎም፦ እቲ ሞዴል ምስ ሓሰበ፣ እቲ ቀዳማይ block thinking እዩ ጽሑፍ ድማ ደሓር ይመጽእ።
{
"id": "msg_5f0c1e7a9b3d4c62a8e1f07d2b46c9a3",
"type": "message",
"role": "assistant",
"model": "shannon-3",
"content": [
{
"type": "thinking",
"thinking": "The user wants a greeting in one sentence. Keep it short and friendly."
},
{
"type": "text",
"text": "Hello, it is good to meet you."
}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 1184,
"output_tokens": 46
}
} Headers
| Header | ዋጋ | መግለጺ |
|---|---|---|
x-api-key | YOUR_API_KEY | API ቁልፍኻ። ኣብ ክንዲኡ Authorization: Bearer YOUR_API_KEY ይቕበል። |
content-type | application/json | ግዴታ። |
anthropic-version | 2023-06-01 | ይቕበል፣ ግዴታ ኣይኮነን። Anthropic SDK 2023-06-01 ይልእኽ፤ ዋጋኡ ዝኾነ ይኹን እቲ ምላሽ ተመሳሳሊ ቅርጺ ኣለዎ። |
anthropic-beta | ይቕበል፣ ግዴታ ኣይኮነን። | |
x-request-id | ኣማራጺ። ናትካ ባዕልኻ id ናይ ጠለብ። ኣብ ምላሽ ከይተቐየረ ይምለስ፤ ብዘይ እዚ ምላሽ ብ12 hexadecimal ፊደላት id ይሕዝ። |
ናይ ጠለብ fields
messages ጥራይ ግዴታ እዩ። እቲ ዝተጠቐመሉ ዓምዲ field ምላሽ ዝቕይረሉ ሞዴላት ይሰምዮም። ዝተሃንደሱ open-weight ሞዴላት እቶም ኣብ ዝርዝር ሞዴላት ዘለዉ ዓሰርተው ክልተ ids እዮም፤ Shannon 3 ስድራ shannon-3፣ shannon-3-pro፣ shannon-3.1 ከምኡውን shannon-3.1-pro እዮም። ሞዴላትን ዋጋን
| Field | ዓይነት | ነባሪ | መግለጺ | ዝተጠቐመሉ |
|---|---|---|---|---|
model | string | shannon-1.6-lite | ካብ ዝርዝር ሞዴላት ዝተወስደ ናይ Shannon ሞዴል id። ምስ ነፍሲ ወከፍ ጠለብ ልኣኾ። ምስንዳይ ኣብ ዓቐን ፊደል ኣይውሰድን። ዝኾነ ካልእ ስም 400 unknown model ይመልስ፣ ስለዚ ናቱ ሞዴል ስማት ዝልእኽ መሳለጥያ ናብ Shannon id ክዋቀር ኣለዎ። | ኩሎም ሞዴላት |
messages | array | ግዴታ። እቲ ዘተ፣ እቲ ዝቀደመ መልእኽቲ ቀዳማይ፣ ምስ ግደታት user ከምኡውን assistant። ኣብ ታሕቲ Messages ከምኡውን content blocks ርአ። | ኩሎም ሞዴላት | |
system | string | array | ንሞዴል መምርሒታት፦ string ወይ array ናይ text blocks። ኣብ ታሕቲ System prompt ርአ። | ዝተሃንደሱ open-weight ሞዴላት፣ shannon-1.6-*፣ shannon-2-*፣ shannon-coder-1 | |
max_tokens | integer | 4096 | ናይ ምላሽ ላዕለዋይ ገደብ፣ ብ tokens። ኣብዚ endpoint ኣማራጺ፤ Anthropic SDK ኩሉ ግዜ ይልእኾ። ካብ 1 ክሳብ 65,536 ወጻኢ ዝኾነ ዋጋ ናብዚ ወሰን ይእተው። ጠለብ ክሰርሕ ከሎ ካብ ሚዛንካ ዝተነጸለ መጠን እውን እዩ። | ዝተሃንደሱ open-weight ሞዴላት፣ shannon-1.6-lite፣ shannon-1.6-pro፣ shannon-coder-1 |
stream | boolean | false | true ምላሽ ከም server-sent events ይልእኽ። ኣብ ታሕቲ Streaming ርአ። | ኩሎም ሞዴላት |
temperature | number | Sampling temperature። ኣብ ዝተሃንደሱ open-weight ሞዴላት ዋጋታት ኣብ መንጎ 0 ከምኡውን 2 ይሕሉ። | ዝተሃንደሱ open-weight ሞዴላት፣ shannon-1.6-lite፣ shannon-1.6-pro፣ shannon-coder-1 | |
top_p | number | Nucleus sampling። | ዝተሃንደሱ open-weight ሞዴላት | |
stop_sequences | array | ክሳብ 4 strings። እቲ መልሲ ቅድሚ እቲ ቀዳማይ ዝርከብ ይውድእ። stop_reason end_turn ይተርፍ። | ዝተሃንደሱ open-weight ሞዴላት | |
tools | array | እቲ ሞዴል ክጽውዖም ዝኽእል tools፣ ነፍሲ ወከፍ ከም {"name", "description", "input_schema"}። ኣብ ታሕቲ Tools ርአ። | ኩሎም ሞዴላት | |
tool_choice | object | {"type": "auto"} ንሞዴል ክውስን ይሓድግ፣ {"type": "any"} tool ክጽውዕ የገድዶ፣ {"type": "tool", "name": "…"} ነቲ tool ክጽውዕ የገድዶ። | ዝተሃንደሱ open-weight ሞዴላት | |
thinking | object | እቲ ሞዴል ቅድሚ ምምላሱ ክሳብ ክንደይ ይሓስብ። ኣብ ታሕቲ Thinking ርአ። | ዝተሃንደሱ open-weight ሞዴላት | |
web_search | boolean | false | ናይ Shannon ወሰኽ ኣብዚ ቅርጺ፦ true እቲ ሞዴል ቅድሚ ምምላሱ ኣብ web ክደሊ የኽእሎ። | shannon-1.6-*፣ shannon-2-*፣ Shannon 3 ስድራ |
ብዘይ max_tokens ዋጋ 4,096 እዩ፣ ኣብ shannon-coder-1 ድማ 65,536።
metadata፣ top_k፣ service_tier ከምኡውን ኣብ blocks ዘለዉ cache_control ምልክታት ዘሎ ናይ ክላይንት ኮድ ከይተቐየረ ክሰርሕ ይቕበሉ። ምላሹ ኣይቕይሩን፤ ኣብ ዝተሃንደሱ open-weight ሞዴላት prompt caching ባዕሉ እዩ።
ብ schema ዝኾነ JSON መልሲ ኣብ Chat Completions ብ response_format ከምኡውን ኣብ Responses ብ text.format ይሕተት። የተዋቀረ ውጤት
ምስ system prompt ከምኡውን thinking ዘሎ ጠለብ
እዚ ጠለብ system prompt፣ thinking budget፣ temperature ከምኡውን stop sequence ይልእኽ። ዝተሃንደሰ open-weight ሞዴል ይጥቀም፣ ንኩሎም ይተግብሮም።
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com",
)
message = client.messages.create(
model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
max_tokens=4096,
system="You are a physics teacher. Answer in two sentences.",
thinking={"type": "enabled", "budget_tokens": 2048},
temperature=0.3,
stop_sequences=["\n\n"],
messages=[{"role": "user", "content": "Why is the sky blue?"}],
)
for block in message.content:
if block.type == "thinking":
print("reasoning:", block.thinking)
elif block.type == "text":
print("answer:", block.text)
print(message.usage) import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com",
});
const message = await client.messages.create({
model: "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
max_tokens: 4096,
system: "You are a physics teacher. Answer in two sentences.",
thinking: { type: "enabled", budget_tokens: 2048 },
temperature: 0.3,
stop_sequences: ["\n\n"],
messages: [{ role: "user", content: "Why is the sky blue?" }],
});
for (const block of message.content) {
if (block.type === "thinking") console.log("reasoning:", block.thinking);
if (block.type === "text") console.log("answer:", block.text);
}
console.log(message.usage); curl https://api.shannon-ai.com/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
"max_tokens": 4096,
"system": "You are a physics teacher. Answer in two sentences.",
"thinking": {"type": "enabled", "budget_tokens": 2048},
"temperature": 0.3,
"stop_sequences": ["\n\n"],
"messages": [{"role": "user", "content": "Why is the sky blue?"}]
}' ኣብ ዝተሃንደሱ open-weight ሞዴላት usage ካብ prompt cache ዝተነበቡ tokens ካብ ካልኦት ኣተዋዕዎ tokens ፍልይ ኣቢሉ የፍልጥ።
{
"usage": {
"input_tokens": 31,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0,
"output_tokens": 62
}
} System prompt
system string፣ ወይ ብቅርጺ [{"type": "text", "text": "…"}] array ናይ text blocks እዩ። እቲ ጽሑፋት ናይ blocks ብመስመር መቐየሪ ይዋሃዱ።
ብዝተሃንደሱ open-weight ሞዴላት፣ shannon-1.6-lite፣ shannon-1.6-pro፣ shannon-2-lite፣ shannon-2-pro ከምኡውን shannon-coder-1 ይትግበር። ምስ Shannon 3 ስድራ id፣ ክሕሉ ዘለዎም መምርሕታት ኣብ user መልእኽቲ ኣእቱ።
መልእኽትታትን content blocksን
መልእኽቲ role (user ወይ assistant) ከምኡውን content ኣለዎ። content string ወይ ኣሃዛት blocks ዝሓዘ array እዩ።
| Block | መግለጺ | ዝርከብሉ |
|---|---|---|
{"type": "text", "text": "…"} | ጽሑፍ። | ኩሎም ሞዴላት |
{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "…"}}{"type": "image", "source": {"type": "url", "url": "…"}} | ኣብ user መልእኽቲ ስእሊ፣ ከም base64 ወይ ብ URL። | Shannon 3 ስድራ፣ shannon-1.6-lite፣ shannon-1.6-pro፣ ከምኡውን ስእሊ ኣተዋዕዎ ዝዝርዝሩ ዝተሃንደሱ open-weight ሞዴላት |
{"type": "document", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} | ኣብ user መልእኽቲ ሰነድ (PDF፣ Word፣ PowerPoint ወይ Excel)፣ ከም base64 ወይ ብ URL። | Shannon 3 ስድራ |
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} | ኣብ assistant መልእኽቲ፦ እቲ ሞዴል ኣብ ዝሓለፈ ምላሽ ዝገበሮ ናይ tool ጥሪ። | ኩሎም ሞዴላት |
{"type": "tool_result", "tool_use_id": "toolu_…", "content": "…"} | ኣብ user መልእኽቲ፦ ውጽኢት ናይቲ ጥሪ። content string ወይ ዝርዝር text blocks እዩ። | ኩሎም ሞዴላት |
content ናይ ዝሓለፈ ምላሽ ከምዘሎ ከም እትመልሶ ትኽእል፦ text ከምኡውን tool_use blocks ይነበቡ፣ thinking blocks ይሕለፉ።
ኣብ Shannon ደረጃታት ስእልታትን ሰነዳትን ካብ ዳሕረዋይ user መልእኽቲ ይነበቡ። ዓቐንን ገደባትን ባዕሎም ገጽ ኣለዎም። ስእልታትን ፋይላትን
Thinking
እቶም ዝተሃንደሱ open-weight ሞዴላት thinking ናብ reasoning effort ይመዝንዎ። ብዘይ እቲ field effort ላዕለዋይ እዩ።
| ቅርጺ | budget_tokens | ሳዕቤን |
|---|---|---|
{"type": "disabled"} | Reasoning የለን። እቲ ምላሽ thinking block የብሉን። | |
{"type": "enabled", "budget_tokens": 2048} | ≤ 2,048 | ትሑት effort። |
{"type": "enabled", "budget_tokens": 8192} | ≤ 8,192 | ማእከላይ effort። |
{"type": "enabled", "budget_tokens": 16000} | > 8,192 | ላዕለዋይ effort። |
ዝሓስብ ሞዴል reasoning ከም block {"type": "thinking", "thinking": "…"} ቅድሚ ጽሑፍ ይመልስ። እቶም ዝሓስቡ Shannon ደረጃታት እውን ይልእክዎ።
እቶም efforts ኣብ ናቶም ገጽ ተገሊጾም ኣለዉ። Reasoning effort
Tools
tool ኮድካ ዘሰርሖ function እዩ። ነፍሲ ወከፍ ብ name፣ description ከምኡውን input_schema ግለጾ። እቲ ሞዴል tool ክደሊ ከሎ፣ እቲ ምላሽ tool_use block ይሓዝ ከምኡውን stop_reason tool_use እዩ።
ኣብ tools ትርጉም ናይ tool፦
[
{
"name": "get_weather",
"description": "Current weather for a city.",
"input_schema": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": [
"city"
]
}
}
] ናይ ምላሽ እቲ ዝጽውዖ content፦
[
{
"type": "text",
"text": ""
},
{
"type": "tool_use",
"id": "toolu_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"name": "get_weather",
"input": {
"city": "Paris"
}
}
] እቲ tool ኣስርሕ፣ ደሓር እቲ ጥሪን tool_result blockን ናብ messages ወሲእካ እቲ ጠለብ ደጊምካ ልኣኽ፦
[
{
"role": "user",
"content": "What is the weather in Paris?"
},
{
"role": "assistant",
"content": [
{
"type": "tool_use",
"id": "toolu_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"name": "get_weather",
"input": {
"city": "Paris"
}
}
]
},
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "toolu_3d9a7c1e5b2f4a60c8e1d7f09b24a6c5",
"content": "{\"temperature_c\": 18, \"sky\": \"cloudy\"}"
}
]
}
] tool_choice
| ቅርጺ | ሳዕቤን | ዝተጠቐመሉ |
|---|---|---|
{"type": "auto"} | እቲ ሞዴል tool ክጽውዕ ወይ ኣይክጽውዕ ይውስን። እዚ ነባሪ እዩ። | ኩሎም ሞዴላት |
{"type": "any"} | እቲ ሞዴል ሓደ ካብቶም tools ክጽውዕ ኣለዎ። | ዝተሃንደሱ open-weight ሞዴላት |
{"type": "tool", "name": "…"} | እቲ ሞዴል ነቲ ዝተሰምየ tool ክጽውዕ ኣለዎ። | ዝተሃንደሱ open-weight ሞዴላት |
input_schema ዘለዎም tools ጥራይ ይነበቡ። ኣብዚ endpoint ድሌት web ከም tool ኣይኮነን፦ web_search field ኣዘጋጅ።
እቲ tool loop ብምሉእ ኣብ ናቱ ገጽ ተገሊጹ ኣሎ። ግብር ጥሪ
ምላሽ
| Field | ዓይነት | መግለጺ | ዝልእኽ |
|---|---|---|---|
id | string | msg_ ተኸቲሉ 32 hexadecimal ፊደላት። | ኩሎም ሞዴላት |
type | string | ኩሉ ግዜ message። | ኩሎም ሞዴላት |
role | string | ኩሉ ግዜ assistant። | ኩሎም ሞዴላት |
model | string | ናይቲ ዝመለሰ ሞዴል ቀኖናዊ id። | ኩሎም ሞዴላት |
content | array | እቶም blocks ናይ ምላሽ፣ ብዚ ተኸታታሊ፦ እቲ ሞዴል ምስ ሓሰበ thinking፣ text፣ ደሓር ንነፍሲ ወከፍ tool ጥሪ ሓደ tool_use። | ኩሎም ሞዴላት |
stop_reason | string | ምላሽ ስለምንታይ ከም ዝወዳእ። ኣብ ታሕቲ ዘለዉ ዋጋታት ርአ። | ኩሎም ሞዴላት |
usage | object | input_tokens ከምኡውን output_tokens። | ኩሎም ሞዴላት |
sources | array | ኣብ ጠለብ web_search: true ዘለዎን ድለያኡ ገለ ነገር ዝረኸበን ጥራይ፦ እቶም ንሞዴል ዝተዋህቡ ውጽኢታት፣ ነፍሲ ወከፎም ምስ index፣ title ከምኡውን url። [1] ኣብ መልሲ እቲ index 1 ዘለዎ መእተዊ እዩ። ኣብ stream ምስ ተርእዮ message_delta ይመጽእ። | shannon-1.6-*፣ shannon-2-*፣ Shannon 3 ስድራ |
usage.cache_read_input_tokens | integer | cache_read_input_tokens እቲ ካብ cache ዝተነበበ ክፍሊ ናይ prompt እዩ፤ input_tokens እቲ ዝተረፈ እዩ። cache_creation_input_tokens ኩሉ ግዜ 0 እዩ። | ዝተሃንደሱ open-weight ሞዴላት |
ናይ ምላሽ blocks
| Block | መግለጺ |
|---|---|
{"type": "thinking", "thinking": "…"} | ናይ ሞዴል reasoning። signature member የለን። |
{"type": "text", "text": "…"} | ጽሑፍ ናይ መልሲ። ምላሹ ናይ tool ጥሪ ምስ ዝኸውን ባዶ ክኸውን ይኽእል። |
{"type": "tool_use", "id": "toolu_…", "name": "…", "input": {…}} | ናይ tool ጥሪ። input JSON object እዩ። ውጽኢቱ ብተመሳሳሊ id ተመሊስካ ልኣኽ። |
stop_reason
| stop_reason | መግለጺ | ዝልእኽ |
|---|---|---|
end_turn | እቲ ሞዴል መልሱ ወዲኡ፣ ወይ ሓደ ካብ stop_sequences ናትካ ተራእዩ። | ኩሎም ሞዴላት |
tool_use | እቲ ምላሽ ሓደ ወይ ልዕሊኡ ናይ tool ጥሪታት ይሓዝ። | ኩሎም ሞዴላት |
max_tokens | ምላሽ ኣብ ወሰን ናይ ውጽኢት ተቖሪጹ። | Shannon 3 ስድራ፣ shannon-1.6-lite፣ shannon-1.6-pro፣ shannon-coder-1፣ ኣብ streams |
Streaming
ንserver-sent events stream ናብ true ኣዘጋጅ። ነፍሲ ወከፍ frame ስም event ዘለዎ event: መስመርን ስሙ ኣብ type ዝደግም JSON object ዘለዎ data: መስመርን ኣለዎ። እቶም stream helpers ናይ Anthropic SDK እዞም events ንዓኻ የንብቡልካ፦
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com",
)
with client.messages.stream(
model="shannon-3",
max_tokens=1024,
messages=[{"role": "user", "content": "Explain server-sent events in three sentences."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
message = stream.get_final_message()
print()
print(message.stop_reason, message.usage) import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com",
});
const stream = client.messages.stream({
model: "shannon-3",
max_tokens: 1024,
messages: [{ role: "user", content: "Explain server-sent events in three sentences." }],
});
stream.on("text", (text) => process.stdout.write(text));
const message = await stream.finalMessage();
console.log("\n", message.stop_reason, message.usage); curl -N https://api.shannon-ai.com/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "shannon-3",
"max_tokens": 1024,
"stream": true,
"messages": [{"role": "user", "content": "Explain server-sent events in three sentences."}]
}' እቶም events፣ ብትእዛዝ ዝመጹሉ፦
| Event | ዳታ | መዓስ |
|---|---|---|
message_start | message | ኩሉ ግዜ ቀዳማይ። message id፣ ግደ፣ ሞዴል፣ ባዶ content ከምኡውን ካብ ዜሮ ዝጅምር usage ይሓዝ። |
content_block_start | index, content_block | ሓደ block ይኽፈት። content_block ባዶ text ወይ thinking block፣ ወይ ምስ id ከምኡውን name ዘሎ tool_use block እዩ። |
content_block_delta | index, delta {"type": "thinking_delta", "thinking"} | ንሓደ thinking block፣ ቁራጽ ናይ reasoning። |
content_block_delta | index, delta {"type": "text_delta", "text"} | ንሓደ text block፣ ቁራጽ ናይ መልሲ። |
content_block_delta | index, delta {"type": "input_json_delta", "partial_json"} | ንሓደ tool_use block፣ እቲ argument ናይ tool ጥሪ፣ ኣብ ሓደ delta ምሉእ። |
content_block_stop | index | እቲ ብዚ index ዘሎ block ተወዲኡ። |
message_delta | delta {stop_reason, stop_sequence}, usage | መወዳእታ ናይ ምላሽ፦ delta.stop_reason፣ ከምኡውን usage ናይ ጠለብ። |
message_stop | ኩሉ ግዜ መወዳእታ። |
Blocks ብ index ብትእዛዝ ናይ ምኽፋቶም ይቁጸሩ፣ ሓደ block ቅድሚ እቲ ዝቕጽል ዝኽፈት ይወዳእ። ነፍሲ ወከፍ block ብዓይነቱ እምበር ብቁጽሩ ኣይተንብብ፦ ሓደ stream ቀዳማይ ባዶ text block፣ ደሓር thinking block ክኸፍት፣ መልሲ ድማ ኣብ ዝሓደሮ text block ከቕርብ ይኽእል።
event: message_start
data: {"type":"message_start","message":{"id":"msg_5f0c…","type":"message","role":"assistant","model":"shannon-3","content":[],"usage":{"input_tokens":0,"output_tokens":0}}}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: content_block_start
data: {"type":"content_block_start","index":1,"content_block":{"type":"thinking","thinking":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":1,"delta":{"type":"thinking_delta","thinking":"Three sentences: what it is, how it is framed, why it is used."}}
event: ping
data: {"type": "ping"}
event: content_block_stop
data: {"type":"content_block_stop","index":1}
event: content_block_start
data: {"type":"content_block_start","index":2,"content_block":{"type":"text","text":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":"Server-sent events let a server push text over one HTTP reply."}}
event: content_block_stop
data: {"type":"content_block_stop","index":2}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":1190,"output_tokens":84}}
event: message_stop
data: {"type":"message_stop"} Keep-alive
| ዝልእኽ | መግለጺ |
|---|---|
Shannon 3 ስድራ፣ shannon-1.6-lite፣ shannon-1.6-pro፣ shannon-coder-1 | ping event ምስ ዳታ {"type": "ping"}፣ ኣብ ነፍሲ ወከፍ 15 ሰከንድ። |
| ዝተሃንደሱ open-weight ሞዴላት | መስመር ርእይቶ : keepalive፣ እቲ ሞዴል ክሰርሕ ከሎ ኣብ ነፍሲ ወከፍ 15 ሰከንድ። |
ዝወድቕ stream
stream ምስ ጀመረ ዝኸውን ውድቀት ከም ናይ ጌጋ ምላሽ ተመሳሳሊ body ዘለዎ error event እዩ፦ {"type": "error", "error": {"type", "message"}}። እቶም መዛዘሚ events፣ message_delta ከምኡውን message_stop፣ ግን ይቕጽሉ። እቲ ምላሽ ከም ዝወደቐ ርአዮ ከምኡውን እቲ ጠለብ ደጊምካ ልኣኽ።
ጌጋታት
ጌጋታት ናይ Anthropic error body ይጥቀሙ፦ type error እዩ፣ እቲ error object ድማ type ከምኡውን message ይሓዝ። እቲ ሰንጠረዥ እዚ endpoint ብብዝሒ ዝመልሶ የርኢ። እቲ ምሉእ ዝርዝር፣ እንታይ ደጊሙ ክፍተን ከም ዝግባእ ዘርኢ፣ ባዕሉ ገጽ ኣለዎ። ሓጋይ ኣስተዳደር
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} | ኩነታት | ዓይነት | መልእኽቲ | መዓስ |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid API key | API ቁልፊ ኣይተላእከን፣ ወይ ቁልፊ ዘይፍለጥ ወይ ዝተሰረዘ እዩ። |
400 | invalid_request_error | unknown model: <id> | model ናይ Shannon ሞዴል id ኣይኮነን። |
400 | invalid_request_error | No user message provided | Shannon ደረጃታት፦ እቲ ጠለብ ናይ user ጽሑፍ የብሉን ከምኡውን tools የብሉን። |
400 | invalid_request_error | <id> does not accept image input | ስእሊ ኣተዋዕዎ ዘይብሉ ዝተሃንደሰ open-weight ሞዴል ስእሊ ተላኢኹ። |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | messages ጎድሉ፣ ወይ ሓደ field ጌጋ JSON ዓይነት ኣለዎ። |
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | max_tokens ካብቲ ኣብ ሚዛንካ ዝተረፈ ዝዓቢ እዩ። |
429 | rate_limit_error | Too many requests. Retry in <n>s. | Flood protection፦ ኣብ ኣካውንትካ ኣብ ሓንቲ ደቒቕ ልዕሊ 120 ጠለባት። |
429 | rate_limit_error | Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan | shannon-coder-1፦ ናይ ፕላንካ Shannon Coder ጥሪታት ንሕጂ ዘሎ ናይ 4-ሰዓት መስኮት ተጠቒምካዮም። |
500 | server_error | The model backend failed to answer. Please retry. | እቲ ሞዴል ምላሽ ኣይሃበን። እቲ ጠለብ ደጊምካ ልኣኽ። |
502 | api_error | The model backend failed to answer. Please retry. | እቲ ሞዴል ምላሽ ኣይሃበን። እቲ ጠለብ ደጊምካ ልኣኽ። |
Tokens ምቝጻር
POST /v1/messages/count_tokens ከም ናይ መልእኽቲ ጠለብ ተመሳሳሊ body (model፣ system፣ messages፣ tools) ወሲዱ {"input_tokens": n} ይመልስ፦ እቲ ጠለብ ዝኽፈሎ ናይ ኣተዋዕዎ tokens ቁጽሪ። ንዝተሃንደሱ open-weight ሞዴላት ይቑጸር፣ ነጻ እዩ ከምኡውን ብ flood protection ኣይቑጸርን።
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
base_url="https://api.shannon-ai.com",
)
count = client.messages.count_tokens(
model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
system="You are a physics teacher. Answer in two sentences.",
messages=[{"role": "user", "content": "Why is the sky blue?"}],
)
print(count.input_tokens) import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com",
});
const count = await client.messages.countTokens({
model: "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
system: "You are a physics teacher. Answer in two sentences.",
messages: [{ role: "user", content: "Why is the sky blue?" }],
});
console.log(count.input_tokens); curl https://api.shannon-ai.com/v1/messages/count_tokens \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
"system": "You are a physics teacher. Answer in two sentences.",
"messages": [{"role": "user", "content": "Why is the sky blue?"}]
}'
# {"input_tokens": 31} ቆጸራ ባዕሉ ገጽ ኣለዎ፣ ምስ plain-text endpoint ከምኡውን ገደባት። ምቑጻር Token