Nous utilisons des cookies. Les cookies et le stockage du navigateur vous gardent connecté et mémorisent vos préférences. Avec votre accord, nous mesurons aussi l’utilisation du site. Vous pouvez à tout moment. Consultez notre politique relative aux cookies.

Vision et fichiers

Endpoints

Vision et fichiers

Envoyez des images, des PDF, de l'audio et de la vidéo comme parties de contenu d'un message à un modèle multimodal, avec limites et exemples.

Essayer dans le playground

Les modèles multimodaux acceptent des images, des PDF, de l'audio et de la vidéo dans un message utilisateur. Passez content sous forme de tableau de parties au lieu d'une chaîne. Pour savoir ce qu'un modèle accepte, consultez architecture.input_modalities dans Modèles (image, file, audio, video).

Parties de contenu

PartieFormeNotes
Texte{ "type": "text", "text": "..." }
Image{ "type": "image_url", "image_url": { "url": "https://..." | "data:image/png;base64,...", "detail": "auto" } }PNG, JPEG, WebP, GIF. URL ou URL data en base64.
PDF / fichier{ "type": "file", "file": { "filename": "doc.pdf", "file_data": "https://..." | "data:application/pdf;base64,..." } }Fonctionne avec tous les modèles. Les modèles sans prise en charge native des fichiers reçoivent du texte analysé.
Audio{ "type": "input_audio", "input_audio": { "data": "<base64>", "format": "wav" } }Base64 uniquement. wav, mp3 et d'autres, selon le modèle.
Vidéo{ "type": "video_url", "video_url": { "url": "https://..." } }Pris en charge par certains modèles, par ex. 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);

Exemple avec une image

{
  "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" } }
      ]
    }
  ]
}

Exemple avec un 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" } }]
}

Le plugin facultatif file-parser choisit la façon dont un PDF est lu : pdf-text (extraction de texte gratuite), mistral-ocr (OCR pour les scans, facturé à la page) ou native (le modèle lit lui-même le fichier). Le coût d'analyse est inclus dans usage.cost.

Réponse

La réponse est un chat completion normal. Les entrées image, fichier et audio comptent comme tokens d'entrée, et leur coût figure dans 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 }
}

Limites et erreurs

  • Un corps de requête peut faire au plus 25 Mo. Le base64 rend les fichiers environ 33 % plus gros. Les requêtes plus grosses renvoient 413 payload_too_large. Pour les grandes images, utilisez des URL publiques.
  • Un modèle qui n'accepte pas un type d'entrée renvoie un 400 ou 404 du fournisseur.
  • Les autres erreurs sont les mêmes que pour les Chat completions. Voir Erreurs.