Używamy plików cookie. Pliki cookie i pamięć przeglądarki pozwalają utrzymać logowanie i zapamiętać Twoje preferencje. Za Twoją zgodą mierzymy też, jak korzystasz ze strony. W każdej chwili możesz . Zobacz naszą politykę cookie.

Obrazy i pliki w wejściu

Endpointy

Obrazy i pliki w wejściu

Wysyłaj do modeli obrazy, pliki PDF, dźwięk i wideo jako części treści wiadomości, z gotowymi przykładami JSON oraz opisem limitów i błędów.

Wypróbuj w playground

Modele multimodalne przyjmują obrazy, pliki PDF, dźwięk i wideo w wiadomości użytkownika. Przekaż content jako tablicę części zamiast ciągu znaków. Aby sprawdzić, co akceptuje dany model, zajrzyj do architecture.input_modalities w Modelach (image, file, audio, video).

Części treści

CzęśćKształtUwagi
Tekst{ "type": "text", "text": "..." }
Obraz{ "type": "image_url", "image_url": { "url": "https://..." | "data:image/png;base64,...", "detail": "auto" } }PNG, JPEG, WebP, GIF. Adres URL lub URL data: w base64.
PDF / plik{ "type": "file", "file": { "filename": "doc.pdf", "file_data": "https://..." | "data:application/pdf;base64,..." } }Działa z każdym modelem. Modele bez natywnej obsługi plików dostają wyodrębniony tekst.
Dźwięk{ "type": "input_audio", "input_audio": { "data": "<base64>", "format": "wav" } }Tylko base64. wav, mp3 i inne, zależnie od modelu.
Wideo{ "type": "video_url", "video_url": { "url": "https://..." } }Obsługiwane przez niektóre modele, np. Gemini.
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.chat.completions.create({
  "model": "openai/gpt-5-mini",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "What is in this image?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"
          }
        }
      ]
    }
  ]
});
console.log(result.choices[0].message.content);

Przykład z obrazem

{
  "model": "google/gemini-2.5-flash",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "What is in this picture?" },
        { "type": "image_url", "image_url": { "url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg" } }
      ]
    }
  ]
}

Przykład z PDF

{
  "model": "anthropic/claude-sonnet-4.5",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "Summarize this contract in five bullets." },
        { "type": "file", "file": { "filename": "contract.pdf", "file_data": "data:application/pdf;base64,JVBERi0xLjcK..." } }
      ]
    }
  ],
  "plugins": [{ "id": "file-parser", "pdf": { "engine": "pdf-text" } }]
}

Opcjonalna wtyczka file-parser wybiera sposób odczytu pliku PDF: pdf-text (bezpłatne wyodrębnianie tekstu), mistral-ocr (OCR dla skanów, rozliczany za stronę) lub native (model sam czyta plik). Koszt przetwarzania jest częścią usage.cost.

Odpowiedź

Odpowiedź to zwykłe chat completion. Obrazy, pliki i dźwięk na wejściu liczą się jako tokeny wejściowe, a ich koszt jest w usage.cost:

{
  "choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "A close-up of an ant on a leaf." } }],
  "usage": { "prompt_tokens": 1290, "completion_tokens": 12, "total_tokens": 1302, "cost": 0.000417 }
}

Limity i błędy

  • Ciało żądania może mieć najwyżej 25 MB. Base64 powiększa pliki o około 33%. Większe żądania zwracają 413 payload_too_large. Dla dużych obrazów używaj publicznych adresów URL.
  • Model, który nie akceptuje danego typu wejścia, zwraca błąd 400 lub 404 od dostawcy.
  • Pozostałe błędy są takie same jak w Chat completions. Zobacz Błędy.