Salti al la enhavo
Bildoj kaj dosieroj

Bildoj kaj dosieroj

Sendu bildojn kun mesaĝo: kiuj modeloj akceptas ilin, la akceptitaj formoj kaj iliaj limoj.

POST https://api.shannon-ai.com/v1/chat/completions

Bildo vojaĝas ene de mesaĝo de uzanto, kiel unu parto de ĝia content. La ekzemplo legas lokan dosieron kaj sendas ĝin kiel 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)
200 JSON
{
  "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
  }
}

Kiuj modeloj akceptas bildojn

Modeloj Legas
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro Bildoj, kaj dokumentoj: PDF, Word, PowerPoint, Excel kaj dosieroj de simpla teksto.
shannon-1.6-lite, shannon-1.6-pro Bildoj.
shannon-2-lite, shannon-2-pro Bildoj, en petoj kiuj sendas ankaŭ tools aŭ response_format.
Kimi-K3-3BIT-REAP, MiniMax-M3-3BIT-REAP, Kimi-K2.6-W4A16-AUTOROUND-REAP, inkling-W4A16-AUTOROUND-REAP, MiMo-V2.5-W8A16 Bildoj.
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 Teksto. Peto kun bildo ricevas respondon kun stato 400.
shannon-coder-1 Teksto.

GET /v1/models raportas bildan enigon por ĉiu id kiel capabilities.vision. Modeloj kaj prezoj

  • La Shannon-modeloj legas la dosierojn de la lasta mesaĝo de la uzanto. Metu la bildon en la mesaĝon, kiu demandas pri ĝi.
  • La familio Shannon 3 tenas en vido ankaŭ kelkajn bildojn kaj dokumentojn de pli fruaj mesaĝoj de la uzanto, kiam ili estis senditaj enlinie, kaj legas fiksitan maksimumon da bildoj por peto, kalkulante ekde la unua.
  • La gastigitaj malfermpezaj modeloj legas la bildojn de ĉiu mesaĝo de la konversacio.

Akceptitaj formoj

Dosiero estas sendata en unu el du manieroj: ene de la peto kiel base64, aŭ kiel adreso, kiun la API alportas. Ĉiu dosiero vojaĝas kun la peto; la API ne havas endpoint por alŝuto.

Endpoint En la peto (base64) Per adreso
/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://…"}}

La sama mesaĝo de uzanto en ĉiu formato:

{
  "role": "user",
  "content": [
    {"type": "text", "text": "What is in this picture?"},
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…"
      }
    }
  ]
}
  • Data URL havas la formon data:<media type>;base64,<data>. La parto ;base64 estas deviga.
  • Ĉe /v1/chat/completions kaj /v1/responses, image_url povas esti la ĉeno mem aŭ objekto {"url": "…"}.
  • La tipo de la dosiero venas el la data URL aŭ el media_type. Sen ĝi, bildo estas legata kiel image/png.
  • Enliniaj dosieroj kalkuliĝas en la grandon de la korpo de la peto, kiu povas esti ĝis 32 MiB.
  • Akceptita pro kongrueco: image_url.detail.

Limoj por foraj dosieroj

Kiam vi sendas adreson, la API alportas la dosieron antaŭ ol la modelo funkcias, ene de ĉi tiuj limoj:

Limo Regulo
Grando Ĝis 8 MiB por dosiero.
Tempo 20 sekundoj por respondi.
Alidirektoj Maksimume 5.
Adreso http:// aŭ https://, sen uzantnomo aŭ pasvorto en la adreso, ĉe gastiganto kun publika adreso.
Respondo de la gastiganto Stato en la intervalo 200 kaj korpo, kiu ne estas malplena. La tipo de la dosiero estas legata el Content-Type.
Petita kiel User-Agent: ShannonBot/1.0 (+https://shannon-ai.com)

Kiel bildoj kalkuliĝas en tokenoj

Ĉe la gastigitaj malfermpezaj modeloj bildo kalkuliĝas kiel unu tokeno por ĉiu peceto de 28 × 28 pikseloj: la larĝo dividita per 28, rondigita supren, oble la alto dividita per 28, rondigita supren. La rezulto estas parto de usage.prompt_tokens kaj estas fakturata kiel enigo.

1024 × 1024
1,369 tokenoj
1920 × 1080
2,691 tokenoj
512 × 512
361 tokenoj
  • Fora bildo estas alportata unue, do ĝia vera grando estas kalkulata.
  • Bildo, kies grando ne povas esti legata, kalkuliĝas kiel 1,024 tokenoj.
  • La endpoints por kalkulado uzas la saman regulon por data URL. Ili ne alportas foran adreson kaj kalkulas ĝin kiel 1,024 tokenojn. Kalkulado de tokenoj
  • Por Shannon-modelo, legu el usage en la respondo, kion kostis peto kun bildoj.

Dokumentoj kaj aliaj dosieroj

La familio Shannon 3 (shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro) legas ankaŭ dokumentojn. La teksto de la dokumento estas ĉerpita kaj donita al la modelo kun via mesaĝo.

Dokumento Medio-tipo
PDF application/pdf
Word application/vnd.openxmlformats-officedocument.wordprocessingml.document
PowerPoint application/vnd.openxmlformats-officedocument.presentationml.presentation
Excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Dokumento estas parto de la mesaĝo de la uzanto, kiel bildo:

Endpoint En la peto (base64) Per adreso
/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."}
      ]
    }
  ]
}
  • Donu la veran medio-tipon de la dosiero. Sen ĝi, dokumento estas legata kiel application/pdf.
  • Dosiero de simpla teksto, kiel CSV, estas legata kiel teksto kaj almetata same.
  • Kiam dokumento ne povas esti legata, aŭ la dosiero estas de alia tipo, oni diras tion al la modelo kaj ĝi povas mencii tion en sia respondo. La stato tamen estas 200.
  • Ĉe ĉiu alia modelo dokumenta parto estas lasita ekster tio, kion la modelo legas, kaj la peto estas respondata el la cetero.
  • Dokumento sendita per adreso estas alportata laŭ la limoj por foraj dosieroj supre.

Eraroj

Stato Tipo Mesaĝo Kiam
400 invalid_request_error <id> does not accept image input Bildo estis sendita al gastigita malfermpeza modelo, kiu akceptas nur tekston. Nenio estas prenita el via saldo.
400 invalid_request_error audio and video input are not supported by any hosted model Aŭdio- aŭ videoparto estis sendita al gastigita malfermpeza modelo.
413 invalid_request_error Failed to buffer the request body: … La korpo de la peto, kun siaj enliniaj dosieroj, estas pli granda ol 32 MiB. La eraro portas code: "request_too_large".

Shannon-modelo respondas kun stato 200, kiajn ajn dosierojn la peto portas: parto, kiun ĝi ne legas, estas lasita ekster. Erarotraktado