රූප සහ ගොනු
පණිවිඩයක් සමඟ රූප යවන්න: කුමන models ඒවා පිළිගනීද, පිළිගන්නා ආකාර සහ ඒවායේ සීමා.
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
}
} රූප පිළිගන්නා models මොනවාද
| Models | කියවන්නේ |
|---|---|
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 status සමඟ පිළිතුරු ලැබේ. |
shannon-coder-1 | පෙළ. |
GET /v1/models රූප ආදානය id එකකට capabilities.vision ලෙස වාර්තා කරයි. Models සහ මිල ගණන්
- Shannon models අවසාන user පණිවිඩයේ ගොනු කියවයි. රූපය ඒ ගැන අසන පණිවිඩයේ තබන්න.
- Shannon 3 පවුල ද inline ලෙස යවා ඇති විට පෙර user පණිවිඩවල රූප සහ ලේඛන කිහිපයක් දිගටම සලකා බලන අතර, ඉල්ලීමකට පළමුවැන්නෙන් ගණන් කළ රූප සංඛ්යාවක නියම උපරිමයක් කියවයි.
- අපගේ සේවාදායකවල ධාවනය වන open-weight models සංවාදයේ සෑම පණිවිඩයකම රූප කියවයි.
පිළිගන්නා ආකාර
ගොනුවක් ක්රම දෙකකින් එකකින් යවයි: ඉල්ලීම තුළ base64 ලෙස, නැතහොත් API එක ලබා ගන්නා ලිපිනයක් ලෙස. සෑම ගොනුවක්ම ඉල්ලීම සමඟ ගමන් කරයි; API එකට upload 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://…"}} |
සෑම format එකකම එම 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": "…"}object එකක් විය හැක.- ගොනු වර්ගය data URL එකෙන් හෝ
media_typeඑකෙන් ලැබේ. එකක් නොමැතිව රූපයක්image/pngලෙස කියවයි. - Inline ගොනු ඉල්ලීමේ body එකේ ප්රමාණයට ගණන් ගැනේ, එය 32 MiB දක්වා විය හැක.
- අනුකූලතාව සඳහා පිළිගනී:
image_url.detail.
දුරස්ථ ගොනු සඳහා සීමා
ඔබ ලිපිනයක් යවන විට, model එක ධාවනය වීමට පෙර 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 models මත රූපයක් 28 × 28 pixel patch එකකට token එකක් ලෙස ගණන් ගැනේ: පළල 28 න් බෙදා ඉහළට වටයා, උස 28 න් බෙදා ඉහළට වටයා, ඒවා ගුණ කිරීම. ප්රතිඵලය usage.prompt_tokens හි කොටසක් වන අතර input ලෙස බිල් කෙරේ.
- 1024 × 1024
- 1,369 tokens
- 1920 × 1080
- 2,691 tokens
- 512 × 512
- 361 tokens
- දුරස්ථ රූපයක් මුලින් ලබා ගන්නා බැවින් එහි සැබෑ ප්රමාණය ගණන් ගැනේ.
- ප්රමාණය කියවිය නොහැකි රූපයක් tokens 1,024ක් ලෙස ගණන් ගනී.
- ගණන් කිරීමේ endpoints data URLs සඳහා එම නීතියම භාවිතා කරයි. ඒවා දුරස්ථ ලිපිනයක් ලබා නොගන්නා අතර එය tokens 1,024ක් ලෙස ගණන් ගනී. Token ගණන් කිරීම
- Shannon model එකක් සඳහා, රූප සහිත ඉල්ලීමක පිරිවැය පිළිතුරේ
usageවෙතින් කියවන්න.
ලේඛන සහ අනෙකුත් ගොනු
Shannon 3 පවුල (shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro) ලේඛන ද කියවයි. ලේඛනයේ පෙළ ගලවා ගෙන ඔබේ පණිවිඩය සමඟ model එකට දෙනු ලැබේ.
| ලේඛනය | Media type |
|---|---|
application/pdf | |
| Word | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| PowerPoint | application/vnd.openxmlformats-officedocument.presentationml.presentation |
| Excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
ලේඛනයක් රූපයක් මෙන් user පණිවිඩයේ කොටසකි:
| 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."}
]
}
]
} - ගොනුවේ සැබෑ media type එක දෙන්න. එකක් නොමැතිව ලේඛනයක්
application/pdfලෙස කියවයි. - CSV වැනි සරල-පෙළ ගොනුවක් පෙළක් ලෙස කියවා එලෙසම අමුණනු ලැබේ.
- ලේඛනයක් කියවිය නොහැකි වූ විට, හෝ ගොනුව වෙනත් වර්ගයක් වූ විට, model එකට එය දැනුම් දෙන අතර එයට එය තම පිළිතුරේ කිව හැක. Status එක තවමත්
200වේ. - අනෙක් සෑම model එකකම ලේඛන කොටසක් model එක කියවන දෙයින් ඉවත් කෙරෙන අතර, ඉල්ලීමට ඉතිරි කොටසින් පිළිතුරු ලැබේ.
- ලිපිනයකින් යවන ලේඛනයක් ඉහත දුරස්ථ ගොනු සඳහා වන සීමා යටතේ ලබා ගනී.
දෝෂ
| තත්ත්වය | වර්ගය | පණිවිඩය | කවදාද |
|---|---|---|---|
400 | invalid_request_error | <id> does not accept image input | පෙළ පමණක් පිළිගන්නා, අපගේ සේවාදායකවල ධාවනය වන open-weight model එකකට රූපයක් යවා ඇත. ඔබේ ශේෂයෙන් කිසිවක් අඩු නොවේ. |
400 | invalid_request_error | audio and video input are not supported by any hosted model | අපගේ සේවාදායකවල ධාවනය වන open-weight model එකකට audio හෝ video කොටසක් යවා ඇත. |
413 | invalid_request_error | Failed to buffer the request body: … | Inline ගොනු සහිත ඉල්ලීමේ body එක 32 MiB ට වඩා විශාලය. දෝෂයේ code: "request_too_large" ඇත. |
ඉල්ලීම කුමන ගොනු රැගෙන ආවත් Shannon model එකක් 200 status එකෙන් පිළිතුරු දෙයි: එය නොකියවන කොටසක් ඉවත් කෙරේ. දෝෂ