Picha na mafaili
Tuma picha pamoja na ujumbe: model zipi zinazikubali, maumbo yanayokubaliwa na mipaka yake.
POST https://api.shannon-ai.com/v1/chat/completions
Picha husafiri ndani ya ujumbe wa user, kama sehemu moja ya content yake. Mfano unasoma faili la ndani na kulituma kama 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
}
} Model zipi zinakubali picha
| Model | Husoma |
|---|---|
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | Picha, na hati: PDF, Word, PowerPoint, Excel na mafaili ya maandishi matupu. |
shannon-1.6-lite, shannon-1.6-pro | Picha. |
shannon-2-lite, shannon-2-pro | Picha, kwenye maombi yanayotuma pia tools au response_format. |
Kimi-K3-3BIT-REAP, MiniMax-M3-3BIT-REAP, Kimi-K2.6-W4A16-AUTOROUND-REAP, inkling-W4A16-AUTOROUND-REAP, MiMo-V2.5-W8A16 | Picha. |
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 | Maandishi. Ombi lenye picha hujibiwa kwa hali 400. |
shannon-coder-1 | Maandishi. |
GET /v1/models huripoti input ya picha kwa kila id kama capabilities.vision. Model na bei
- Model za Shannon husoma mafaili ya ujumbe wa mwisho wa user. Weka picha kwenye ujumbe unaouliza kuihusu.
- Familia ya Shannon 3 pia huweka picha na hati chache za jumbe za awali za user mbele yake zilipotumwa ndani ya ombi, na husoma idadi ya juu iliyowekwa ya picha kwa kila ombi, ikihesabiwa kuanzia ya kwanza.
- Model za open-weight zinazopangishwa husoma picha za kila ujumbe wa mazungumzo.
Maumbo yanayokubaliwa
Faili hutumwa kwa njia mojawapo kati ya mbili: ndani ya ombi kama base64, au kama anwani ambayo API inapakua. Kila faili husafiri na ombi; API haina endpoint ya upakiaji.
| Endpoint | Ndani ya ombi (base64) | Kwa anwani |
|---|---|---|
/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://…"}} |
Ujumbe ule ule wa user katika kila umbizo:
{
"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 ina umbo
data:<media type>;base64,<data>. Sehemu ya;base64inahitajika. - Kwenye
/v1/chat/completionsna/v1/responses,image_urlinaweza kuwa string yenyewe au kitu{"url": "…"}. - Aina ya faili hutoka kwenye data URL au kwenye
media_type. Bila hiyo, picha husomwa kamaimage/png. - Mafaili ya ndani huhesabiwa katika ukubwa wa mwili wa ombi, ambao unaweza kuwa hadi 32 MiB.
- Inakubaliwa kwa ulinganifu:
image_url.detail.
Mipaka ya mafaili ya mbali
Unapotuma anwani, API hupakua faili kabla model haijaendeshwa, ndani ya mipaka hii:
| Kikomo | Kanuni |
|---|---|
| Ukubwa | Hadi 8 MiB kwa kila faili. |
| Muda | Sekunde 20 kujibu. |
| Redirects | Zisizidi 5. |
| Anwani | http:// au https://, bila jina la mtumiaji au nenosiri kwenye anwani, kwenye host yenye anwani ya umma. |
| Jibu la host | Hali katika kundi la 200 na mwili usio tupu. Aina ya faili husomwa kutoka Content-Type. |
| Huombwa kama | User-Agent: ShannonBot/1.0 (+https://shannon-ai.com) |
Jinsi picha zinavyohesabiwa katika tokens
Kwenye model za open-weight zinazopangishwa picha huhesabiwa kuwa token moja kwa kila kipande cha pikseli 28 × 28: upana ukigawanywa na 28, ukizungushwa juu, mara urefu ukigawanywa na 28, ukizungushwa juu. Matokeo ni sehemu ya usage.prompt_tokens na hutozwa kama input.
- 1024 × 1024
- 1,369 tokens
- 1920 × 1080
- 2,691 tokens
- 512 × 512
- 361 tokens
- Picha ya mbali hupakuliwa kwanza, kwa hiyo ukubwa wake halisi huhesabiwa.
- Picha ambayo ukubwa wake hauwezi kusomwa huhesabiwa kama tokens 1,024.
- Endpoint za kuhesabu hutumia kanuni ile ile kwa data URLs. Hazipakui anwani ya mbali na huihesabu kama tokens 1,024. Kuhesabu tokens
- Kwa model ya Shannon, soma kile ombi lenye picha lilichogharimu kutoka
usagekwenye jibu.
Hati na mafaili mengine
Familia ya Shannon 3 (shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro) husoma pia hati. Maandishi ya hati hutolewa na kupewa model pamoja na ujumbe wako.
| Hati | Aina ya media |
|---|---|
application/pdf | |
| Word | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| PowerPoint | application/vnd.openxmlformats-officedocument.presentationml.presentation |
| Excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
Hati ni sehemu ya ujumbe wa user, kama picha:
| Endpoint | Ndani ya ombi (base64) | Kwa anwani |
|---|---|---|
/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."}
]
}
]
} - Toa aina halisi ya media ya faili. Bila hiyo, hati husomwa kama
application/pdf. - Faili la maandishi matupu, kama CSV, husomwa kama maandishi na huambatishwa kwa njia ile ile.
- Hati isipoweza kusomwa, au faili likiwa la aina nyingine, model huambiwa hivyo na inaweza kulisema kwenye jibu lake. Hali bado ni
200. - Kwenye kila model nyingine sehemu ya hati huachwa nje ya kile model inachosoma, na ombi hujibiwa kutoka kwenye iliyobaki.
- Hati iliyotumwa kwa anwani hupakuliwa chini ya mipaka ya mafaili ya mbali iliyo juu.
Makosa
| Hali | Aina | Ujumbe | Lini |
|---|---|---|---|
400 | invalid_request_error | <id> does not accept image input | Picha ilitumwa kwa model ya open-weight inayopangishwa inayokubali maandishi pekee. Hakuna kinachotolewa kwenye salio lako. |
400 | invalid_request_error | audio and video input are not supported by any hosted model | Sehemu ya sauti au video ilitumwa kwa model ya open-weight inayopangishwa. |
413 | invalid_request_error | Failed to buffer the request body: … | Mwili wa ombi, pamoja na mafaili yake ya ndani, ni mkubwa kuliko 32 MiB. Kosa hubeba code: "request_too_large". |
Model ya Shannon hujibu kwa hali 200 bila kujali mafaili ambayo ombi hubeba: sehemu ambayo haisomi huachwa nje. Ushughulikiaji wa Makosa