చిత్రాలు మరియు ఫైళ్లు
మెసేజ్తో చిత్రాలను పంపండి: ఏ మోడల్స్ వాటిని తీసుకుంటాయి, అంగీకరించే రూపాలు మరియు వాటి పరిమితులు.
POST https://api.shannon-ai.com/v1/chat/completions
చిత్రం user మెసేజ్ లోపల, దాని 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 | టెక్స్ట్. చిత్రం ఉన్న రిక్వెస్ట్కు స్టేటస్ 400 తో సమాధానం వస్తుంది. |
shannon-coder-1 | టెక్స్ట్. |
GET /v1/models ప్రతి id కి చిత్ర ఇన్పుట్ను capabilities.vision గా నివేదిస్తుంది. మోడల్స్ & ధరలు
- Shannon మోడల్స్ చివరి user మెసేజ్లోని ఫైళ్లను చదువుతాయి. చిత్రాన్ని దాని గురించి అడిగే మెసేజ్లో ఉంచండి.
- Shannon 3 ఫ్యామిలీ ఇన్లైన్గా పంపిన మునుపటి user మెసేజ్ల కొన్ని చిత్రాలు మరియు డాక్యుమెంట్లను కూడా పరిశీలనలో ఉంచుతుంది, మరియు ప్రతి రిక్వెస్ట్కు మొదటి నుండి లెక్కించి నిర్ణీత గరిష్ట సంఖ్యలో చిత్రాలను చదువుతుంది.
- హోస్ట్ చేసిన ఓపెన్-వెయిట్ మోడల్స్ సంభాషణలోని ప్రతి మెసేజ్ చిత్రాలను చదువుతాయి.
అంగీకరించే రూపాలు
ఫైల్ రెండు విధాలలో ఒకదానిలో పంపబడుతుంది: రిక్వెస్ట్ లోపల base64 గా, లేదా API తీసుకువచ్చే చిరునామాగా. ప్రతి ఫైల్ రిక్వెస్ట్తోనే ప్రయాణిస్తుంది; APIకి అప్లోడ్ ఎండ్పాయింట్ లేదు.
| ఎండ్పాయింట్ | రిక్వెస్ట్లో (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://…"}} |
ప్రతి ఫార్మాట్లో అదే user మెసేజ్:
{
"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_urlstring అయినా కావచ్చు లేదా ఆబ్జెక్ట్{"url": "…"}అయినా కావచ్చు.- ఫైల్ రకం data URL నుండి లేదా
media_typeనుండి వస్తుంది. అది లేకపోతే, చిత్రంimage/pngగా చదవబడుతుంది. - ఇన్లైన్ ఫైళ్లు రిక్వెస్ట్ బాడీ పరిమాణంలో లెక్కించబడతాయి, అది 32 MiB వరకు ఉండవచ్చు.
- అనుకూలత కోసం అంగీకరించబడేది:
image_url.detail.
రిమోట్ ఫైళ్ల పరిమితులు
మీరు చిరునామాను పంపినప్పుడు, మోడల్ నడిచే ముందు API ఈ పరిమితులలో ఫైల్ను తీసుకువస్తుంది:
| పరిమితి | నియమం |
|---|---|
| పరిమాణం | ఫైల్కు 8 MiB వరకు. |
| సమయం | సమాధానం ఇవ్వడానికి 20 సెకన్లు. |
| రీడైరెక్ట్లు | గరిష్ఠంగా 5. |
| చిరునామా | http:// లేదా https://, చిరునామాలో యూజర్ పేరు లేదా పాస్వర్డ్ లేకుండా, పబ్లిక్ చిరునామా ఉన్న హోస్ట్లో. |
| హోస్ట్ సమాధానం | 200 శ్రేణిలో స్టేటస్ మరియు ఖాళీ కాని బాడీ. ఫైల్ రకం Content-Type నుండి చదవబడుతుంది. |
| ఇలా అభ్యర్థించబడుతుంది | User-Agent: ShannonBot/1.0 (+https://shannon-ai.com) |
tokens లో చిత్రాలు ఎలా లెక్కించబడతాయి
హోస్ట్ చేసిన ఓపెన్-వెయిట్ మోడల్స్లో చిత్రం ప్రతి 28 × 28 పిక్సెల్ ప్యాచ్కు ఒక token గా లెక్కించబడుతుంది: వెడల్పును 28 తో భాగించి పైకి పూర్తి చేయాలి, ఎత్తును 28 తో భాగించి పైకి పూర్తి చేయాలి, రెండింటినీ గుణించాలి. ఫలితం usage.prompt_tokens లో భాగం మరియు ఇన్పుట్గా బిల్ చేయబడుతుంది.
- 1024 × 1024
- 1,369 tokens
- 1920 × 1080
- 2,691 tokens
- 512 × 512
- 361 tokens
- రిమోట్ చిత్రం ముందుగా తీసుకురాబడుతుంది, కాబట్టి దాని నిజమైన పరిమాణం లెక్కించబడుతుంది.
- పరిమాణం చదవలేని చిత్రం 1,024 tokens గా లెక్కించబడుతుంది.
- లెక్కింపు ఎండ్పాయింట్లు data URL లకు అదే నియమాన్ని ఉపయోగిస్తాయి. అవి రిమోట్ చిరునామాను తీసుకురావు మరియు దాన్ని 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 |
డాక్యుమెంట్ అనేది చిత్రంలాగే user మెసేజ్లోని ఒక భాగం:
| ఎండ్పాయింట్ | రిక్వెస్ట్లో (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 వంటి సాదా-టెక్స్ట్ ఫైల్ టెక్స్ట్గా చదవబడి అదే విధంగా జతచేయబడుతుంది.
- డాక్యుమెంట్ను చదవలేనప్పుడు, లేదా ఫైల్ మరో రకానికి చెందినదైనప్పుడు, మోడల్కు ఆ విషయం చెప్పబడుతుంది మరియు అది తన సమాధానంలో చెప్పగలదు. స్టేటస్ ఇంకా
200. - ఇతర ప్రతి మోడల్లో డాక్యుమెంట్ భాగం మోడల్ చదివే దాని నుండి వదిలివేయబడుతుంది, మరియు మిగిలిన దాని ఆధారంగా రిక్వెస్ట్కు సమాధానం వస్తుంది.
- చిరునామా ద్వారా పంపిన డాక్యుమెంట్ పైన ఉన్న రిమోట్ ఫైళ్ల పరిమితుల ప్రకారం తీసుకురాబడుతుంది.
ఎరర్లు
| స్టేటస్ | రకం | మెసేజ్ | ఎప్పుడు |
|---|---|---|---|
400 | invalid_request_error | <id> does not accept image input | టెక్స్ట్ మాత్రమే తీసుకునే హోస్ట్ చేసిన ఓపెన్-వెయిట్ మోడల్కు చిత్రం పంపబడింది. మీ బ్యాలెన్స్ నుండి ఏదీ తీసుకోబడదు. |
400 | invalid_request_error | audio and video input are not supported by any hosted model | హోస్ట్ చేసిన ఓపెన్-వెయిట్ మోడల్కు ఆడియో లేదా వీడియో భాగం పంపబడింది. |
413 | invalid_request_error | Failed to buffer the request body: … | ఇన్లైన్ ఫైళ్లతో కలిపి రిక్వెస్ట్ బాడీ 32 MiB కంటే పెద్దది. ఎరర్లో code: "request_too_large" ఉంటుంది. |
రిక్వెస్ట్ ఏ ఫైళ్లు తీసుకువచ్చినా Shannon మోడల్ స్టేటస్ 200 తో సమాధానం ఇస్తుంది: అది చదవని భాగం వదిలివేయబడుతుంది. ఎరర్ హ్యాండ్లింగ్