تصاویر اور فائلیں
پیغام کے ساتھ تصاویر بھیجیں: کون سے ماڈلز انہیں لیتے ہیں، قبول شدہ شکلیں اور ان کی حدود۔
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 | متن۔ تصویر والی درخواست کا جواب اسٹیٹس 400 سے دیا جاتا ہے۔ |
shannon-coder-1 | متن۔ |
GET /v1/models ہر id کے لیے تصویر ان پٹ کو capabilities.vision کے طور پر بتاتا ہے۔ ماڈلز اور قیمتیں
- Shannon ماڈلز آخری صارف پیغام کی فائلیں پڑھتے ہیں۔ تصویر کو اسی پیغام میں رکھیں جو اس کے بارے میں پوچھتا ہے۔
- Shannon 3 فیملی پچھلے صارف پیغامات کی چند تصاویر اور دستاویزات کو بھی نظر میں رکھتی ہے جب وہ ان لائن بھیجی گئی ہوں، اور فی درخواست تصاویر کی ایک مقررہ زیادہ سے زیادہ تعداد پڑھتی ہے، جو پہلی سے گنی جاتی ہے۔
- ہوسٹڈ اوپن ویٹ ماڈلز گفتگو کے ہر پیغام کی تصاویر پڑھتے ہیں۔
قبول شدہ شکلیں
فائل دو طریقوں میں سے ایک سے بھیجی جاتی ہے: درخواست کے اندر 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خود سٹرنگ ہو سکتا ہے یا آبجیکٹ{"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) |
تصاویر ٹوکنز میں کیسے گنی جاتی ہیں
ہوسٹڈ اوپن ویٹ ماڈلز پر تصویر ہر 28 × 28 پکسل کے پیچ کے لیے ایک ٹوکن گنی جاتی ہے: چوڑائی کو 28 سے تقسیم کر کے اوپر گول کریں، ضرب، اونچائی کو 28 سے تقسیم کر کے اوپر گول کریں۔ نتیجہ usage.prompt_tokens کا حصہ ہے اور ان پٹ کے طور پر بل ہوتا ہے۔
- 1024 × 1024
- 1,369 ٹوکنز
- 1920 × 1080
- 2,691 ٹوکنز
- 512 × 512
- 361 ٹوکنز
- دور دراز تصویر پہلے حاصل کی جاتی ہے، اس لیے اس کا اصل سائز گنا جاتا ہے۔
- جس تصویر کا سائز پڑھا نہ جا سکے وہ 1,024 ٹوکنز گنی جاتی ہے۔
- گنتی والے endpoints data URLs کے لیے یہی اصول استعمال کرتے ہیں۔ وہ دور دراز پتہ حاصل نہیں کرتے اور اسے 1,024 ٹوکنز گنتے ہیں۔ ٹوکن گنتی
- 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، متن کے طور پر پڑھی جاتی ہے اور اسی طرح منسلک کی جاتی ہے۔
- جب دستاویز پڑھی نہ جا سکے، یا فائل کسی دوسری قسم کی ہو، تو ماڈل کو بتا دیا جاتا ہے اور وہ اپنے جواب میں یہ کہہ سکتا ہے۔ اسٹیٹس پھر بھی
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 سے جواب دیتا ہے: جو حصہ وہ نہیں پڑھتا اسے نکال دیا جاتا ہے۔ غلطیاں