ਇਮੇਜਾਂ ਅਤੇ ਫਾਈਲਾਂ
message ਦੇ ਨਾਲ ਇਮੇਜਾਂ ਭੇਜੋ: ਕਿਹੜੇ ਮਾਡਲ ਇਨ੍ਹਾਂ ਨੂੰ ਲੈਂਦੇ ਹਨ, ਸਵੀਕਾਰ ਕੀਤੇ ਰੂਪ ਅਤੇ ਉਨ੍ਹਾਂ ਦੀਆਂ ਸੀਮਾਵਾਂ।
POST https://api.shannon-ai.com/v1/chat/completions
ਇਮੇਜ user message ਦੇ ਅੰਦਰ, ਉਸ ਦੇ content ਦੇ ਇੱਕ part ਵਜੋਂ ਜਾਂਦੀ ਹੈ। ਨਮੂਨਾ ਇੱਕ ਸਥਾਨਕ ਫਾਈਲ ਪੜ੍ਹਦਾ ਹੈ ਅਤੇ ਉਸ ਨੂੰ 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 message ਦੀਆਂ ਫਾਈਲਾਂ ਪੜ੍ਹਦੇ ਹਨ। ਇਮੇਜ ਨੂੰ ਉਸ message ਵਿੱਚ ਪਾਓ ਜੋ ਉਸ ਬਾਰੇ ਪੁੱਛਦਾ ਹੈ।
- Shannon 3 ਪਰਿਵਾਰ ਪਿਛਲੇ user messages ਦੀਆਂ ਕੁਝ ਇਮੇਜਾਂ ਅਤੇ ਦਸਤਾਵੇਜ਼ ਵੀ ਨਜ਼ਰ ਵਿੱਚ ਰੱਖਦਾ ਹੈ ਜੇ ਉਹ ਇਨਲਾਈਨ ਭੇਜੇ ਗਏ ਸਨ, ਅਤੇ ਪ੍ਰਤੀ ਰਿਕੁਐਸਟ ਇਮੇਜਾਂ ਦੀ ਇੱਕ ਤੈਅ ਵੱਧ ਤੋਂ ਵੱਧ ਗਿਣਤੀ ਪੜ੍ਹਦਾ ਹੈ, ਜੋ ਪਹਿਲੀ ਤੋਂ ਗਿਣੀ ਜਾਂਦੀ ਹੈ।
- ਹੋਸਟ ਕੀਤੇ open-weight ਮਾਡਲ ਗੱਲਬਾਤ ਦੇ ਹਰ message ਦੀਆਂ ਇਮੇਜਾਂ ਪੜ੍ਹਦੇ ਹਨ।
ਸਵੀਕਾਰ ਕੀਤੇ ਰੂਪ
ਫਾਈਲ ਦੋ ਤਰੀਕਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਨਾਲ ਭੇਜੀ ਜਾਂਦੀ ਹੈ: ਰਿਕੁਐਸਟ ਦੇ ਅੰਦਰ base64 ਵਜੋਂ, ਜਾਂ ਇੱਕ ਪਤੇ ਵਜੋਂ ਜਿਸ ਨੂੰ API ਲਿਆਉਂਦੀ ਹੈ। ਹਰ ਫਾਈਲ ਰਿਕੁਐਸਟ ਦੇ ਨਾਲ ਜਾਂਦੀ ਹੈ; API ਵਿੱਚ ਕੋਈ ਅਪਲੋਡ 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://…"}} |
ਹਰ ਫਾਰਮੈਟ ਵਿੱਚ ਉਹੀ user message:
{
"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 ਹੋ ਸਕਦਾ ਹੈ ਜਾਂ object{"url": "…"}।- ਫਾਈਲ ਦੀ ਕਿਸਮ data URL ਤੋਂ ਜਾਂ
media_typeਤੋਂ ਮਿਲਦੀ ਹੈ। ਇਸ ਤੋਂ ਬਿਨਾਂ ਇਮੇਜ ਨੂੰimage/pngਵਜੋਂ ਪੜ੍ਹਿਆ ਜਾਂਦਾ ਹੈ। - ਇਨਲਾਈਨ ਫਾਈਲਾਂ ਰਿਕੁਐਸਟ body ਦੇ ਆਕਾਰ ਵਿੱਚ ਗਿਣੀਆਂ ਜਾਂਦੀਆਂ ਹਨ, ਜੋ 32 MiB ਤੱਕ ਹੋ ਸਕਦਾ ਹੈ।
- ਅਨੁਕੂਲਤਾ ਲਈ ਸਵੀਕਾਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ:
image_url.detail।
ਰਿਮੋਟ ਫਾਈਲਾਂ ਦੀਆਂ ਸੀਮਾਵਾਂ
ਜਦੋਂ ਤੁਸੀਂ ਪਤਾ ਭੇਜਦੇ ਹੋ, ਤਾਂ API ਮਾਡਲ ਚੱਲਣ ਤੋਂ ਪਹਿਲਾਂ ਇਨ੍ਹਾਂ ਸੀਮਾਵਾਂ ਦੇ ਅੰਦਰ ਫਾਈਲ ਲਿਆਉਂਦੀ ਹੈ:
| ਸੀਮਾ | ਨਿਯਮ |
|---|---|
| ਆਕਾਰ | ਪ੍ਰਤੀ ਫਾਈਲ 8 MiB ਤੱਕ। |
| ਸਮਾਂ | ਜਵਾਬ ਦੇਣ ਲਈ 20 ਸਕਿੰਟ। |
| ਰੀਡਾਇਰੈਕਟ | ਵੱਧ ਤੋਂ ਵੱਧ 5। |
| ਪਤਾ | http:// ਜਾਂ https://, ਪਤੇ ਵਿੱਚ ਯੂਜ਼ਰ ਨਾਂ ਜਾਂ ਪਾਸਵਰਡ ਤੋਂ ਬਿਨਾਂ, ਜਨਤਕ ਪਤੇ ਵਾਲੇ host ਉੱਤੇ। |
| host ਦਾ ਜਵਾਬ | 200 ਦੇ ਦਾਇਰੇ ਵਿੱਚ ਸਟੇਟਸ ਅਤੇ ਖਾਲੀ ਨਾ ਹੋਣ ਵਾਲੀ body। ਫਾਈਲ ਦੀ ਕਿਸਮ Content-Type ਤੋਂ ਪੜ੍ਹੀ ਜਾਂਦੀ ਹੈ। |
| ਇਸ ਵਜੋਂ ਮੰਗਿਆ ਜਾਂਦਾ ਹੈ | User-Agent: ShannonBot/1.0 (+https://shannon-ai.com) |
ਇਮੇਜਾਂ ਦੀ tokens ਵਿੱਚ ਗਿਣਤੀ ਕਿਵੇਂ ਹੁੰਦੀ ਹੈ
ਹੋਸਟ ਕੀਤੇ open-weight ਮਾਡਲਾਂ ਉੱਤੇ ਇਮੇਜ ਹਰ 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 ਗਿਣੀ ਜਾਂਦੀ ਹੈ।
- ਗਿਣਤੀ ਵਾਲੇ endpoints data URLs ਲਈ ਇਹੀ ਨਿਯਮ ਵਰਤਦੇ ਹਨ। ਉਹ ਰਿਮੋਟ ਪਤਾ ਨਹੀਂ ਲਿਆਉਂਦੇ ਅਤੇ ਉਸ ਨੂੰ 1,024 tokens ਗਿਣਦੇ ਹਨ। ਟੋਕਨ ਗਿਣਤੀ
- Shannon ਮਾਡਲ ਲਈ, ਇਮੇਜਾਂ ਵਾਲੀ ਰਿਕੁਐਸਟ ਦੀ ਲਾਗਤ ਜਵਾਬ ਦੀ
usageਤੋਂ ਪੜ੍ਹੋ।
ਦਸਤਾਵੇਜ਼ ਅਤੇ ਹੋਰ ਫਾਈਲਾਂ
Shannon 3 ਪਰਿਵਾਰ (shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro) ਦਸਤਾਵੇਜ਼ ਵੀ ਪੜ੍ਹਦਾ ਹੈ। ਦਸਤਾਵੇਜ਼ ਦਾ ਟੈਕਸਟ ਕੱਢਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਤੁਹਾਡੇ message ਦੇ ਨਾਲ ਮਾਡਲ ਨੂੰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
| ਦਸਤਾਵੇਜ਼ | ਮੀਡੀਆ ਕਿਸਮ |
|---|---|
application/pdf | |
| Word | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| PowerPoint | application/vnd.openxmlformats-officedocument.presentationml.presentation |
| Excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
ਦਸਤਾਵੇਜ਼ user message ਦਾ ਇੱਕ part ਹੁੰਦਾ ਹੈ, ਇਮੇਜ ਵਾਂਗ:
| ਐਂਡਪੁਆਇੰਟ | ਰਿਕੁਐਸਟ ਵਿੱਚ (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ਰਹਿੰਦਾ ਹੈ। - ਹਰ ਹੋਰ ਮਾਡਲ ਉੱਤੇ ਦਸਤਾਵੇਜ਼ part ਉਸ ਵਿੱਚੋਂ ਛੱਡ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ ਜੋ ਮਾਡਲ ਪੜ੍ਹਦਾ ਹੈ, ਅਤੇ ਰਿਕੁਐਸਟ ਦਾ ਜਵਾਬ ਬਾਕੀ ਤੋਂ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
- ਪਤੇ ਰਾਹੀਂ ਭੇਜਿਆ ਦਸਤਾਵੇਜ਼ ਉੱਪਰ ਦਿੱਤੀਆਂ ਰਿਮੋਟ ਫਾਈਲਾਂ ਦੀਆਂ ਸੀਮਾਵਾਂ ਹੇਠ ਲਿਆਂਦਾ ਜਾਂਦਾ ਹੈ।
ਗਲਤੀਆਂ
| ਸਟੇਟਸ | ਕਿਸਮ | ਸੁਨੇਹਾ | ਕਦੋਂ |
|---|---|---|---|
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 ਮਾਡਲ ਨੂੰ ਇੱਕ ਆਡੀਓ ਜਾਂ ਵੀਡੀਓ part ਭੇਜਿਆ ਗਿਆ। |
413 | invalid_request_error | Failed to buffer the request body: … | ਇਨਲਾਈਨ ਫਾਈਲਾਂ ਸਮੇਤ ਰਿਕੁਐਸਟ body 32 MiB ਤੋਂ ਵੱਡੀ ਹੈ। ਗਲਤੀ ਵਿੱਚ code: "request_too_large" ਹੁੰਦਾ ਹੈ। |
Shannon ਮਾਡਲ ਰਿਕੁਐਸਟ ਵਿੱਚ ਕੋਈ ਵੀ ਫਾਈਲ ਹੋਵੇ, ਸਟੇਟਸ 200 ਨਾਲ ਜਵਾਬ ਦਿੰਦਾ ਹੈ: ਜੋ part ਉਹ ਨਹੀਂ ਪੜ੍ਹਦਾ ਉਹ ਛੱਡ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਗਲਤੀਆਂ