Zum Inhalt springen
Bilder und Dateien

Bilder und Dateien

Bilder mit einer Nachricht senden: welche Modelle sie annehmen, die akzeptierten Formen und ihre Limits.

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

Ein Bild reist innerhalb einer User-Nachricht, als ein Teil ihres content. Das Beispiel liest eine lokale Datei und sendet sie als 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
  }
}

Welche Modelle Bilder annehmen

Modelle Liest
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro Bilder und Dokumente: PDF-, Word-, PowerPoint-, Excel- und Klartextdateien.
shannon-1.6-lite, shannon-1.6-pro Bilder.
shannon-2-lite, shannon-2-pro Bilder, in Anfragen, die zusätzlich tools oder response_format senden.
Kimi-K3-3BIT-REAP, MiniMax-M3-3BIT-REAP, Kimi-K2.6-W4A16-AUTOROUND-REAP, inkling-W4A16-AUTOROUND-REAP, MiMo-V2.5-W8A16 Bilder.
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 Text. Eine Anfrage mit einem Bild wird mit Status 400 beantwortet.
shannon-coder-1 Text.

GET /v1/models meldet den Bild-Input pro ID als capabilities.vision. Modelle & Preise

  • Die Shannon-Modelle lesen die Dateien der letzten User-Nachricht. Legen Sie das Bild in die Nachricht, die danach fragt.
  • Die Shannon-3-Familie behält außerdem einige Bilder und Dokumente früherer User-Nachrichten im Blick, wenn sie inline gesendet wurden, und liest pro Anfrage eine feste Höchstzahl an Bildern, vom ersten an gezählt.
  • Die gehosteten Open-Weight-Modelle lesen die Bilder jeder Nachricht der Konversation.

Akzeptierte Formen

Eine Datei wird auf eine von zwei Arten gesendet: innerhalb der Anfrage als Base64 oder als Adresse, die die API abruft. Jede Datei reist mit der Anfrage; die API hat keinen Upload-Endpunkt.

Endpunkt In der Anfrage (Base64) Per Adresse
/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://…"}}

Dieselbe User-Nachricht in jedem Format:

{
  "role": "user",
  "content": [
    {"type": "text", "text": "What is in this picture?"},
    {
      "type": "image_url",
      "image_url": {
        "url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…"
      }
    }
  ]
}
  • Eine Data-URL hat die Form data:<media type>;base64,<data>. Der Teil ;base64 ist erforderlich.
  • Bei /v1/chat/completions und /v1/responses kann image_url der String selbst oder ein Objekt {"url": "…"} sein.
  • Der Dateityp stammt aus der Data-URL oder aus media_type. Ohne Angabe wird ein Bild als image/png gelesen.
  • Inline-Dateien zählen zur Größe des Request-Bodys, der bis zu 32 MiB groß sein darf.
  • Aus Kompatibilitätsgründen akzeptiert: image_url.detail.

Limits für entfernte Dateien

Wenn Sie eine Adresse senden, ruft die API die Datei ab, bevor das Modell läuft, innerhalb dieser Limits:

Limit Regel
Größe Bis zu 8 MiB pro Datei.
Zeit 20 Sekunden für die Antwort.
Weiterleitungen Höchstens 5.
Adresse http:// oder https://, ohne Benutzername oder Passwort in der Adresse, auf einem Host mit öffentlicher Adresse.
Antwort des Hosts Ein Status im 200er-Bereich und ein Body, der nicht leer ist. Der Dateityp wird aus Content-Type gelesen.
Angefordert als User-Agent: ShannonBot/1.0 (+https://shannon-ai.com)

Wie Bilder in Tokens gezählt werden

Bei den gehosteten Open-Weight-Modellen zählt ein Bild einen Token pro Patch von 28 × 28 Pixeln: die Breite geteilt durch 28, aufgerundet, mal die Höhe geteilt durch 28, aufgerundet. Das Ergebnis ist Teil von usage.prompt_tokens und wird als Input berechnet.

1024 × 1024
1,369 Tokens
1920 × 1080
2,691 Tokens
512 × 512
361 Tokens
  • Ein entferntes Bild wird zuerst abgerufen, daher wird seine tatsächliche Größe gezählt.
  • Ein Bild, dessen Größe nicht gelesen werden kann, zählt 1,024 Tokens.
  • Die Endpunkte zum Zählen verwenden für Data-URLs dieselbe Regel. Sie rufen keine entfernte Adresse ab und zählen sie als 1,024 Tokens. Token zählen
  • Bei einem Shannon-Modell lesen Sie in usage der Antwort ab, was eine Anfrage mit Bildern gekostet hat.

Dokumente und andere Dateien

Die Shannon-3-Familie (shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro) liest auch Dokumente. Der Text des Dokuments wird extrahiert und dem Modell zusammen mit Ihrer Nachricht übergeben.

Dokument Medientyp
PDF application/pdf
Word application/vnd.openxmlformats-officedocument.wordprocessingml.document
PowerPoint application/vnd.openxmlformats-officedocument.presentationml.presentation
Excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

Ein Dokument ist, wie ein Bild, ein Teil der User-Nachricht:

Endpunkt In der Anfrage (Base64) Per Adresse
/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."}
      ]
    }
  ]
}
  • Geben Sie den tatsächlichen Medientyp der Datei an. Ohne Angabe wird ein Dokument als application/pdf gelesen.
  • Eine Klartextdatei, etwa CSV, wird als Text gelesen und auf dieselbe Weise angehängt.
  • Kann ein Dokument nicht gelesen werden oder ist die Datei von einem anderen Typ, wird dies dem Modell mitgeteilt, und es kann es in seiner Antwort sagen. Der Status ist trotzdem 200.
  • Bei jedem anderen Modell wird ein Dokumentteil aus dem weggelassen, was das Modell liest, und die Anfrage wird aus dem Rest beantwortet.
  • Ein Dokument, das per Adresse gesendet wird, wird unter den oben genannten Limits für entfernte Dateien abgerufen.

Fehler

Status Typ Nachricht Wann
400 invalid_request_error <id> does not accept image input Ein Bild wurde an ein gehostetes Open-Weight-Modell gesendet, das nur Text annimmt. Von Ihrem Guthaben wird nichts abgebucht.
400 invalid_request_error audio and video input are not supported by any hosted model Ein Audio- oder Videoteil wurde an ein gehostetes Open-Weight-Modell gesendet.
413 invalid_request_error Failed to buffer the request body: … Der Request-Body ist mit seinen Inline-Dateien größer als 32 MiB. Der Fehler enthält code: "request_too_large".

Ein Shannon-Modell antwortet mit Status 200, welche Dateien die Anfrage auch enthält: Ein Teil, den es nicht liest, wird weggelassen. Fehlerbehandlung