Irudiak eta fitxategiak
Bidali irudiak mezu batekin: zein modelok hartzen dituzten, onartutako formak eta haien mugak.
POST https://api.shannon-ai.com/v1/chat/completions
Irudi bat erabiltzaile-mezu baten barruan doa, bere content-en zati gisa. Laginak fitxategi lokal bat irakurtzen du eta data URL gisa bidaltzen du.
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
}
} Zein modelok hartzen dituzten irudiak
| Modeloak | Irakurtzen du |
|---|---|
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | Irudiak, eta dokumentuak: PDF, Word, PowerPoint, Excel eta testu soileko fitxategiak. |
shannon-1.6-lite, shannon-1.6-pro | Irudiak. |
shannon-2-lite, shannon-2-pro | Irudiak, tools edo response_format ere bidaltzen duten eskaeretan. |
Kimi-K3-3BIT-REAP, MiniMax-M3-3BIT-REAP, Kimi-K2.6-W4A16-AUTOROUND-REAP, inkling-W4A16-AUTOROUND-REAP, MiMo-V2.5-W8A16 | Irudiak. |
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 | Testua. Irudia duen eskaerari 400 egoerarekin erantzuten zaio. |
shannon-coder-1 | Testua. |
GET /v1/models-ek irudi-sarrera id bakoitzeko jakinarazten du capabilities.vision gisa. Modeloak eta prezioak
- Shannon modeloek azken erabiltzaile-mezuko fitxategiak irakurtzen dituzte. Jarri irudia hari buruz galdetzen duen mezuan.
- Shannon 3 familiak, gainera, aurreko erabiltzaile-mezuetako irudi eta dokumentu batzuk ikusgai mantentzen ditu lerroan bidali zirenean, eta eskaera bakoitzeko gehienezko irudi-kopuru finko bat irakurtzen du, lehenengotik kontatuta.
- Pisu irekiko modelo ostatatuek elkarrizketako mezu guztietako irudiak irakurtzen dituzte.
Onartutako formak
Fitxategi bat bi modutan bidaltzen da: eskaeraren barruan base64 gisa, edo API-ak eskuratzen duen helbide gisa. Fitxategi bakoitza eskaerarekin batera doa; API-ak ez du igoera-endpoint-ik.
| Endpoint-a | Eskaeran (base64) | Helbide bidez |
|---|---|---|
/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://…"}} |
Erabiltzaile-mezu bera formatu bakoitzean:
{
"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 batek
data:<media type>;base64,<data>forma du.;base64zatia beharrezkoa da. /v1/chat/completionseta/v1/responsesendpoint-etan,image_urlkate bera izan daiteke edo{"url": "…"}objektu bat.- Fitxategi-mota data URL-tik edo
media_type-tik dator. Bat gabe, irudi batimage/pnggisa irakurtzen da. - Lerroko fitxategiak eskaera-gorputzaren tamainan kontatzen dira, 32 MiB arte izan dezakeena.
- Bateragarritasunerako onartua:
image_url.detail.
Urruneko fitxategien mugak
Helbide bat bidaltzen duzunean, API-ak fitxategia eskuratzen du modeloa exekutatu aurretik, mugen barruan:
| Muga | Araua |
|---|---|
| Tamaina | 8 MiB arte fitxategi bakoitzeko. |
| Denbora | 20 segundo erantzuteko. |
| Birbideratzeak | 5 gehienez. |
| Helbidea | http:// edo https://, helbidean erabiltzaile-izenik edo pasahitzik gabe, helbide publikoa duen ostalari batean. |
| Ostalariaren erantzuna | 200 tarteko egoera bat eta hutsik ez dagoen gorputz bat. Fitxategi-mota Content-Type-tik irakurtzen da. |
| Honela eskatua | User-Agent: ShannonBot/1.0 (+https://shannon-ai.com) |
Irudiak tokenetan nola kontatzen diren
Pisu irekiko modelo ostatatuetan irudi batek token bat kontatzen du 28 × 28 pixeleko adabaki bakoitzeko: zabalera 28ra zatituta, gora biribilduta, bider altuera 28ra zatituta, gora biribilduta. Emaitza usage.prompt_tokens-en parte da eta sarrera gisa fakturatzen da.
- 1024 × 1024
- 1,369 token
- 1920 × 1080
- 2,691 token
- 512 × 512
- 361 token
- Urruneko irudi bat lehenik eskuratzen da, beraz bere benetako tamaina kontatzen da.
- Tamaina irakurri ezin den irudi batek 1,024 token kontatzen ditu.
- Kontaketa-endpoint-ek arau bera erabiltzen dute data URL-entzat. Ez dute urruneko helbiderik eskuratzen eta 1,024 token gisa kontatzen dute. Tokenen kontaketa
- Shannon modelo batentzat, irakurri irudiak dituen eskaera batek zenbat kostatu duen erantzuneko
usage-tik.
Dokumentuak eta beste fitxategi batzuk
Shannon 3 familiak (shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro) dokumentuak ere irakurtzen ditu. Dokumentuaren testua ateratzen da eta zure mezuarekin batera ematen zaio modeloari.
| Dokumentua | Media mota |
|---|---|
application/pdf | |
| Word | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| PowerPoint | application/vnd.openxmlformats-officedocument.presentationml.presentation |
| Excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
Dokumentu bat erabiltzaile-mezuaren zati bat da, irudi bat bezala:
| Endpoint-a | Eskaeran (base64) | Helbide bidez |
|---|---|---|
/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."}
]
}
]
} - Eman fitxategiaren benetako media mota. Bat gabe, dokumentu bat
application/pdfgisa irakurtzen da. - Testu soileko fitxategi bat, adibidez CSV, testu gisa irakurtzen da eta modu berean erantsi.
- Dokumentu bat irakurri ezin denean, edo fitxategia beste mota batekoa denean, modeloari hala esaten zaio eta bere erantzunean esan dezake. Egoera
200izaten jarraitzen du. - Beste edozein modelotan dokumentu-zatia modeloak irakurtzen duenetik kanpo uzten da, eta eskaerari gainerakoarekin erantzuten zaio.
- Helbide bidez bidalitako dokumentu bat goiko urruneko fitxategien mugen arabera eskuratzen da.
Erroreak
| Egoera | Mota | Mezua | Noiz |
|---|---|---|---|
400 | invalid_request_error | <id> does not accept image input | Irudi bat bidali da testua bakarrik hartzen duen pisu irekiko modelo ostatatu batera. Ez da ezer kentzen zure saldotik. |
400 | invalid_request_error | audio and video input are not supported by any hosted model | Audio- edo bideo-zati bat bidali da pisu irekiko modelo ostatatu batera. |
413 | invalid_request_error | Failed to buffer the request body: … | Eskaera-gorputza, lerroko fitxategiekin, 32 MiB baino handiagoa da. Erroreak code: "request_too_large" darama. |
Shannon modelo batek 200 egoerarekin erantzuten du eskaerak fitxategi zein daramanean: irakurtzen ez duen zati bat kanpoan uzten da. Errore‑kudeaketa