For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale
Theme

Fichiers en entrée

Découvrez comment fournir des fichiers en entrée à l’API OpenAI.

La prise en charge des fichiers en entrée dépend du point de terminaison de l’API. L’API Responses accepte les types de fichiers indiqués ci-dessous sous forme d’éléments input_file. Chat Completions accepte uniquement les fichiers PDF sous forme d’éléments de contenu de type file.

Mode d’envoi API Responses Chat Completions
Données du fichier encodées en Base64 (file_data) Types de fichiers indiqués ci-dessous PDF uniquement
Identifiant du fichier importé (file_id) Types de fichiers indiqués ci-dessous PDF uniquement
URL externe du fichier (file_url) Types de fichiers indiqués ci-dessous Non pris en charge

Utilisez l’API Responses pour envoyer des fichiers dans un format autre que PDF. Pour utiliser le texte d’un fichier dans Chat Completions, lisez le fichier dans votre application et envoyez son contenu sous forme d’élément de contenu de type text.

Fonctionnement

Dans l’API Responses, le traitement d’un élément input_file dépend du type de fichier :

  • Fichiers PDF : pour les modèles capables d’analyser des images, comme gpt-4o et les modèles ultérieurs, l’API extrait le texte et les images des pages, puis transmet les deux au modèle.
  • Documents et fichiers texte dans un format autre que PDF (par exemple, .docx, .pptx, .txt et les fichiers de code source) : l’API extrait uniquement le texte.
  • Fichiers de tableur (par exemple, .xlsx, .csv, .tsv) : l’API applique le traitement d’enrichissement propre aux feuilles de calcul décrit ci-dessous.

Utilisez les outils suivants lorsqu’ils conviennent mieux à votre tâche :

  • Utilisez la recherche dans les fichiers pour retrouver des informations dans des fichiers volumineux sans les transmettre directement sous forme d’éléments input_file.
  • Utilisez le shell distant pour les tâches qui nécessitent une analyse approfondie de feuilles de calcul, comme les agrégations, les jointures, la création de graphiques ou les calculs personnalisés.

Limites concernant les images et les graphiques hors PDF

Pour les fichiers dans un format autre que PDF, l’API Responses n’extrait pas les images ni les graphiques intégrés pour les inclure dans le contexte du modèle.

Pour préserver le rendu des graphiques et des schémas, convertissez d’abord le fichier en PDF, puis envoyez le PDF sous forme d’élément input_file.

Enrichissement des feuilles de calcul

Pour les fichiers de données tabulaires (par exemple, .xlsx, .xls, .csv, .tsv et .iif), l’API Responses applique un traitement d’enrichissement propre aux feuilles de calcul.

Au lieu de transmettre les feuilles entières au modèle, l’API analyse au maximum les 1 000 premières lignes de chaque feuille. Elle y ajoute un résumé et des métadonnées sur les en-têtes, tous deux générés par un modèle. Le modèle dispose ainsi d’une vue plus compacte et structurée des données.

Niveaux de détail des PDF

Pour les PDF fournis en entrée à l’API Responses, réglez le champ facultatif detail d’un élément input_file sur auto, low ou high pour choisir comment l’API traite les images des pages. Si vous omettez detail, sa valeur par défaut est auto. Pour GPT-5.6 et les modèles ultérieurs, auto correspond à high. Pour les modèles antérieurs, il correspond à low. Utilisez low pour réduire le nombre de tokens d’entrée ou high pour conserver davantage de détails visuels, par exemple dans les graphiques denses, les textes en petits caractères ou les schémas.

Le paramètre detail agit uniquement sur le traitement des images des pages du PDF. Le texte extrait du PDF reste inclus dans le contexte. Chat Completions ne prend pas en charge detail pour les fichiers en entrée.

Voici un exemple minimal de corps de requête pour l’API Responses qui spécifie un niveau de détail élevé :

{
  "model": "gpt-4.1",
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_file",
          "filename": "document.pdf",
          "file_data": "data:application/pdf;base64,...",
          "detail": "high"
        },
        {
          "type": "input_text",
          "text": "Summarize this document."
        }
      ]
    }
  ]
}

Types de fichiers acceptés

Le tableau suivant présente les types de fichiers courants que l’API Responses accepte sous forme d’éléments input_file. La liste complète des extensions et des types MIME figure plus bas sur cette page. Chat Completions accepte uniquement les fichiers .pdf (application/pdf), aussi bien avec file_data qu’avec file_id.

Catégorie Extensions courantes
Fichiers PDF .pdf
Texte et code source .txt, .md, .json, .html, .xml, fichiers de code source
Documents avec mise en forme .doc, .docx, .rtf, .odt
Présentations .ppt, .pptx
Feuilles de calcul .csv, .xls, .xlsx

URL de fichiers

Vous pouvez fournir un fichier en entrée en indiquant son URL externe.

Utiliser l’URL externe d’un fichier
curl "https://api.openai.com/v1/responses" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
        "model": "gpt-6-astra",
        "input": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_text",
                        "text": "Analyze the letter and provide a summary of the key points."
                    },
                    {
                        "type": "input_file",
                        "file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
                    }
                ]
            }
        ]
    }'

Importation de fichiers

L’exemple suivant importe un fichier avec l’API Files, puis utilise son identifiant dans une requête adressée au modèle.

Importer un fichier
curl https://api.openai.com/v1/files \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -F purpose="user_data" \
    -F file="@draconomicon.pdf"

curl "https://api.openai.com/v1/responses" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
        "model": "gpt-6-astra",
        "input": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_file",
                        "file_id": "file-6F2ksmvXxt4VdoqmHRw6kL"
                    },
                    {
                        "type": "input_text",
                        "text": "What is the first dragon in the book?"
                    }
                ]
            }
        ]
    }'

Fichiers encodés en Base64

Vous pouvez également fournir un fichier en entrée en envoyant ses données encodées en Base64.

Envoyer un fichier encodé en Base64
curl "https://api.openai.com/v1/responses" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
        "model": "gpt-6-astra",
        "input": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_file",
                        "filename": "draconomicon.pdf",
                        "file_data": "...base64 encoded PDF bytes here..."
                    },
                    {
                        "type": "input_text",
                        "text": "What is the first dragon in the book?"
                    }
                ]
            }
        ]
    }'

Points à prendre en compte

Tenez compte des contraintes suivantes lorsque vous fournissez des fichiers en entrée :

  • Consommation de tokens : lors de l’analyse d’un PDF, l’API inclut dans le contexte le texte extrait et les images des pages, ce qui peut augmenter la consommation de tokens. Dans l’API Responses, réglez detail sur auto (valeur par défaut), low ou high pour choisir le niveau de détail des images des pages du PDF. Avant un déploiement à grande échelle, consultez les tarifs et évaluez la consommation de tokens. En savoir plus sur les tarifs.
  • Taille maximale des fichiers : une même requête peut contenir plusieurs fichiers, mais chacun doit faire moins de 50 Mo. La taille cumulée des fichiers de la requête ne doit pas dépasser 50 Mo.
  • Modèles compatibles : pour analyser à la fois le texte et les images des pages d’un PDF, utilisez un modèle capable d’analyser des images, comme gpt-4o ou un modèle ultérieur.
  • Usage prévu du fichier : lors de l’importation, vous pouvez choisir n’importe quel usage pris en charge. Utilisez user_data pour les fichiers que vous prévoyez de fournir en entrée au modèle.

Liste complète des types de fichiers acceptés

Cette liste s’applique à l’API Responses. Chat Completions accepte uniquement les fichiers .pdf (application/pdf), aussi bien avec file_data qu’avec file_id.

Catégorie Extensions Types MIME
Fichiers PDF Fichiers PDF (.pdf) application/pdf
Feuilles de calcul Feuilles de calcul Excel (.xla, .xlb, .xlc, .xlm, .xls, .xlsx, .xlt, .xlw) application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel
Feuilles de calcul CSV / TSV / IIF (.csv, .tsv, .iif), Google Sheets text/csv, application/csv, text/tsv, text/x-iif, application/x-iif, application/vnd.google-apps.spreadsheet
Documents avec mise en forme Documents Word, ODT et RTF (.doc, .docx, .dot, .odt, .rtf), Pages, Google Docs application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/msword, application/rtf, text/rtf, application/vnd.oasis.opendocument.text, application/vnd.apple.pages, application/vnd.google-apps.document, application/vnd.apple.iwork
Présentations Diapositives PowerPoint (.pot, .ppa, .pps, .ppt, .pptx, .pwz, .wiz), Keynote, Google Slides application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.ms-powerpoint, application/vnd.apple.keynote, application/vnd.google-apps.presentation, application/vnd.apple.iwork
Texte et code source Formats de texte et de code source (.asm, .bat, .c, .cc, .conf, .cpp, .css, .cxx, .def, .dic, .eml, .h, .hh, .htm, .html, .ics, .ifb, .in, .js, .json, .ksh, .list, .log, .markdown, .md, .mht, .mhtml, .mime, .mjs, .nws, .pl, .py, .rst, .s, .sql, .srt, .text, .txt, .vcf, .vtt, .xml) application/javascript, application/typescript, text/xml, text/x-shellscript, text/x-rst, text/x-makefile, text/x-lisp, text/x-asm, text/vbscript, text/css, message/rfc822, application/x-sql, application/x-scala, application/x-rust, application/x-powershell, text/x-diff, text/x-patch, application/x-patch, text/plain, text/markdown, text/x-java, text/x-script.python, text/x-python, text/x-c, text/x-c++, text/x-golang, text/html, text/x-php, application/x-php, application/x-httpd-php, application/x-httpd-php-source, text/x-ruby, text/x-sh, text/x-bash, application/x-bash, text/x-zsh, text/x-tex, text/x-csharp, application/json, text/x-typescript, text/javascript, text/x-go, text/x-rust, text/x-scala, text/x-kotlin, text/x-swift, text/x-lua, text/x-r, text/x-R, text/x-julia, text/x-perl, text/x-objectivec, text/x-objectivec++, text/x-erlang, text/x-elixir, text/x-haskell, text/x-clojure, text/x-groovy, text/x-dart, text/x-awk, application/x-awk, text/jsx, text/tsx, text/x-handlebars, text/x-mustache, text/x-ejs, text/x-jinja2, text/x-liquid, text/x-erb, text/x-twig, text/x-pug, text/x-jade, text/x-tmpl, text/x-cmake, text/x-dockerfile, text/x-gradle, text/x-ini, text/x-properties, text/x-protobuf, application/x-protobuf, text/x-sql, text/x-sass, text/x-scss, text/x-less, text/x-hcl, text/x-terraform, application/x-terraform, text/x-toml, application/x-toml, application/graphql, application/x-graphql, text/x-graphql, application/x-ndjson, application/json5, application/x-json5, text/x-yaml, application/toml, application/x-yaml, application/yaml, text/x-astro, text/srt, application/x-subrip, text/x-subrip, text/vtt, text/x-vcard, text/calendar

Pour aller plus loin

Poursuivez avec l’une des ressources suivantes :