ምስሎች እና ፋይሎች
ምስሎችን ከመልእክት ጋር ይላኩ፦ የትኞቹ ሞዴሎች እንደሚቀበሏቸው፣ ተቀባይነት ያላቸው ቅርጾች እና ገደቦቻቸው።
POST https://api.shannon-ai.com/v1/chat/completions
ምስል በተጠቃሚ መልእክት ውስጥ እንደ የcontent አንድ ክፍል ይጓዛል። ናሙናው የአካባቢ ፋይል አንብቦ እንደ data URL ይልከዋል።
import base64
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.shannon-ai.com/v1")
with open("photo.jpg", "rb") as f:
image = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="shannon-3",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "What is in this picture?"},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64," + image}},
],
}],
)
print(response.choices[0].message.content) import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://api.shannon-ai.com/v1" });
const image = fs.readFileSync("photo.jpg").toString("base64");
const response = await client.chat.completions.create({
model: "shannon-3",
messages: [{
role: "user",
content: [
{ type: "text", text: "What is in this picture?" },
{ type: "image_url", image_url: { url: "data:image/jpeg;base64," + image } },
],
}],
});
console.log(response.choices[0].message.content); # Linux: base64 -w0 photo.jpg macOS: base64 -i photo.jpg
IMAGE=$(base64 -w0 photo.jpg)
curl https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d @- <<EOF
{
"model": "shannon-3",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What is in this picture?"},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,${IMAGE}"}}
]
}]
}
EOF {
"id": "chatcmpl-8d1f3a5c7e9b4d2f6a8c0e2b4d6f8a1c",
"object": "chat.completion",
"created": 1791590400,
"model": "shannon-3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A grey cat asleep on a windowsill, with a potted fern beside it.",
"reasoning_content": null
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 286,
"completion_tokens": 19,
"total_tokens": 305
}
} የትኞቹ ሞዴሎች ምስል ይቀበላሉ
| ሞዴሎች | ያነባል |
|---|---|
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | ምስሎች፣ እና ሰነዶች፦ PDF፣ Word፣ PowerPoint፣ Excel እና ተራ የጽሑፍ ፋይሎች። |
shannon-1.6-lite, shannon-1.6-pro | ምስሎች። |
shannon-2-lite, shannon-2-pro | ምስሎች፣ tools ወይም response_format ደግሞ በሚልኩ ጥያቄዎች ውስጥ። |
Kimi-K3-3BIT-REAP, MiniMax-M3-3BIT-REAP, Kimi-K2.6-W4A16-AUTOROUND-REAP, inkling-W4A16-AUTOROUND-REAP, MiMo-V2.5-W8A16 | ምስሎች። |
DeepSeek-V4-Pro-0813-3BIT-REAP, GLM-5.2-3BIT-REAP, Nemotron3Ultra-3BIT-REAP, DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP, Laguna-S-2.1-W4A16-AUTOROUND-REAP, MiMo-V2.5-Pro-W8A16, Hy3-W8A16 | ጽሑፍ። ምስል ያለው ጥያቄ በstatus 400 ይመለሳል። |
shannon-coder-1 | ጽሑፍ። |
GET /v1/models የምስል ግብዓትን ለእያንዳንዱ id እንደ capabilities.vision ያሳውቃል። ሞዴሎችና ዋጋ
- የShannon ሞዴሎች የመጨረሻውን የተጠቃሚ መልእክት ፋይሎች ያነባሉ። ምስሉን ስለ እሱ በሚጠይቀው መልእክት ውስጥ ያስቀምጡ።
- የShannon 3 ቤተሰብ ቀደም ባሉ የተጠቃሚ መልእክቶች ውስጥ በውስጠ-ጥያቄ የተላኩ ጥቂት ምስሎችንና ሰነዶችንም በእይታ ውስጥ ያቆያል፣ እና በአንድ ጥያቄ ከመጀመሪያው ጀምሮ ተቆጥሮ የተወሰነ ከፍተኛ የምስል ብዛት ያነባል።
- የተስተናገዱ open-weight ሞዴሎች የውይይቱን የእያንዳንዱን መልእክት ምስሎች ያነባሉ።
ተቀባይነት ያላቸው ቅርጾች
ፋይል በሁለት መንገዶች አንዱ ይላካል፦ በጥያቄው ውስጥ እንደ base64፣ ወይም API እንዲያወርደው እንደ አድራሻ። እያንዳንዱ ፋይል ከጥያቄው ጋር ይጓዛል፤ API የመጫኛ endpoint የለውም።
| Endpoint | በጥያቄው ውስጥ (base64) | በአድራሻ |
|---|---|---|
/v1/chat/completions | {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,…"}} | {"type": "image_url", "image_url": {"url": "https://…"}} |
/v1/responses | {"type": "input_image", "image_url": "data:image/jpeg;base64,…"} | {"type": "input_image", "image_url": "https://…"} |
/v1/messages | {"type": "image", "source": {"type": "base64", "media_type": "image/jpeg", "data": "…"}} | {"type": "image", "source": {"type": "url", "url": "https://…"}} |
ተመሳሳዩ የተጠቃሚ መልእክት በእያንዳንዱ ፎርማት፦
{
"role": "user",
"content": [
{"type": "text", "text": "What is in this picture?"},
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…"
}
}
]
} {
"role": "user",
"content": [
{"type": "input_text", "text": "What is in this picture?"},
{
"type": "input_image",
"image_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…"
}
]
} {
"role": "user",
"content": [
{"type": "text", "text": "What is in this picture?"},
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQAAAQABAAD…"
}
}
]
} - data URL
data:<media type>;base64,<data>የሚል ቅርጽ አለው። የ;base64ክፍል ግዴታ ነው። - በ
/v1/chat/completionsእና በ/v1/responsesላይimage_urlራሱ string ወይም{"url": "…"}object ሊሆን ይችላል። - የፋይሉ አይነት ከdata URL ወይም ከ
media_typeይወሰዳል። ያለ እሱ ምስል እንደimage/pngይነበባል። - በጥያቄው ውስጥ ያሉ ፋይሎች እስከ 32 MiB ሊሆን በሚችለው የጥያቄ body መጠን ውስጥ ይቆጠራሉ።
- ለተኳሃኝነት ተቀባይነት አለው፦
image_url.detail።
የርቀት ፋይሎች ገደቦች
አድራሻ ሲልኩ API ፋይሉን ሞዴሉ ከመስራቱ በፊት በእነዚህ ገደቦች ውስጥ ያወርደዋል፦
| ገደብ | ሕግ |
|---|---|
| መጠን | በአንድ ፋይል እስከ 8 MiB። |
| ጊዜ | ለመመለስ 20 ሰከንድ። |
| Redirects | ቢበዛ 5። |
| አድራሻ | http:// ወይም https://፣ በአድራሻው ውስጥ ያለ የተጠቃሚ ስም ወይም የይለፍ ቃል፣ የህዝብ አድራሻ ባለው host ላይ። |
| የhost ምላሽ | በ200 ክልል ውስጥ ያለ status እና ባዶ ያልሆነ body። የፋይሉ አይነት ከContent-Type ይነበባል። |
| የሚጠየቀው እንደ | User-Agent: ShannonBot/1.0 (+https://shannon-ai.com) |
ምስሎች በtokens እንዴት ይቆጠራሉ
በተስተናገዱ open-weight ሞዴሎች ላይ ምስል ለእያንዳንዱ 28 × 28 ፒክሰል ቁራጭ አንድ token ይቆጠራል፦ ስፋቱ ለ28 ተካፍሎ ወደ ላይ ተጠጋግቶ፣ በከፍታው ለ28 ተካፍሎ ወደ ላይ ተጠጋግቶ ሲባዛ። ውጤቱ የusage.prompt_tokens አካል ሲሆን እንደ input ይከፈልበታል።
- 1024 × 1024
- 1,369 tokens
- 1920 × 1080
- 2,691 tokens
- 512 × 512
- 361 tokens
- የርቀት ምስል መጀመሪያ ይወርዳል፣ ስለዚህ እውነተኛ መጠኑ ይቆጠራል።
- መጠኑ ሊነበብ የማይችል ምስል 1,024 tokens ይቆጠራል።
- የመቁጠሪያ endpoints ለdata URLs ተመሳሳዩን ሕግ ይጠቀማሉ። የርቀት አድራሻን አያወርዱም፣ እንደ 1,024 tokens ይቆጥሩታል። የToken ቆጠራ
- ለShannon ሞዴል ምስሎች ያለው ጥያቄ ምን እንዳስከፈለ ከምላሹ
usageያንብቡ።
ሰነዶች እና ሌሎች ፋይሎች
የShannon 3 ቤተሰብ (shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro) ሰነዶችንም ያነባል። የሰነዱ ጽሑፍ ተወስዶ ከመልእክትዎ ጋር ለሞዴሉ ይሰጣል።
| ሰነድ | የሚዲያ አይነት |
|---|---|
application/pdf | |
| Word | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| PowerPoint | application/vnd.openxmlformats-officedocument.presentationml.presentation |
| Excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
ሰነድ እንደ ምስል የተጠቃሚ መልእክት አካል ነው፦
| Endpoint | በጥያቄው ውስጥ (base64) | በአድራሻ |
|---|---|---|
/v1/chat/completions, /v1/messages | {"type": "document", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} | {"type": "document", "source": {"type": "url", "url": "https://…"}} |
/v1/responses | {"type": "input_file", "file_data": "data:application/pdf;base64,…"} | {"type": "input_file", "file_url": "https://…"} |
{
"model": "shannon-3",
"messages": [
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": "JVBERi0xLjcKJeLjz9MK…"
}
},
{"type": "text", "text": "Summarise this report in five points."}
]
}
]
} {
"model": "shannon-3",
"input": [
{
"role": "user",
"content": [
{
"type": "input_file",
"file_data": "data:application/pdf;base64,JVBERi0xLjcKJeLjz9MK…"
},
{
"type": "input_text",
"text": "Summarise this report in five points."
}
]
}
]
} {
"model": "shannon-3",
"messages": [
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": "JVBERi0xLjcKJeLjz9MK…"
}
},
{"type": "text", "text": "Summarise this report in five points."}
]
}
]
} - የፋይሉን እውነተኛ የሚዲያ አይነት ይስጡ። ያለ እሱ ሰነድ እንደ
application/pdfይነበባል። - እንደ CSV ያለ ተራ የጽሑፍ ፋይል እንደ ጽሑፍ ይነበባል እና በተመሳሳይ መንገድ ይያያዛል።
- ሰነድ ሊነበብ ካልቻለ ወይም ፋይሉ የሌላ አይነት ከሆነ ሞዴሉ ይነገረዋል እና በመልሱ ውስጥ ሊናገር ይችላል። status አሁንም
200ነው። - በሌላ በማንኛውም ሞዴል ላይ የሰነድ ክፍል ሞዴሉ ከሚያነበው ይቀራል፣ ጥያቄውም ከቀረው ይመለሳል።
- በአድራሻ የተላከ ሰነድ ከላይ ለርቀት ፋይሎች ባሉት ገደቦች ይወርዳል።
ስህተቶች
| ሁኔታ | ዓይነት | መልእክት | መቼ |
|---|---|---|---|
400 | invalid_request_error | <id> does not accept image input | ጽሑፍ ብቻ ወደሚቀበል የተስተናገደ open-weight ሞዴል ምስል ተልኳል። ከቀሪ ሂሳብዎ ምንም አይወሰድም። |
400 | invalid_request_error | audio and video input are not supported by any hosted model | የድምፅ ወይም የቪዲዮ ክፍል ወደ የተስተናገደ open-weight ሞዴል ተልኳል። |
413 | invalid_request_error | Failed to buffer the request body: … | የጥያቄው body ከውስጡ ፋይሎች ጋር ከ32 MiB ይበልጣል። ስህተቱ code: "request_too_large" ይይዛል። |
የShannon ሞዴል ጥያቄው የትኛውንም ፋይል ቢይዝ በstatus 200 ይመልሳል፦ የማያነበው ክፍል ይቀራል። ስህተት አስተዳደር