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

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 répertoriés ci-dessous sous forme d’éléments de type input_file. Chat Completions accepte uniquement les fichiers PDF sous forme de blocs de contenu de type file.

Méthode d’entréeAPI ResponsesChat Completions
Données du fichier encodées en Base64 (file_data)Types de fichiers pris en charge répertoriés ci-dessousPDF uniquement
Identifiant du fichier téléversé (file_id)Types de fichiers pris en charge répertoriés ci-dessousPDF uniquement
URL d’un fichier externe (file_url)Types de fichiers pris en charge répertoriés ci-dessousNon pris en charge

Utilisez l’API Responses pour fournir en entrée des fichiers autres que PDF. Pour utiliser le texte d’un fichier dans Chat Completions, lisez le fichier dans votre application et envoyez son contenu sous forme de bloc de contenu de type text.

Fonctionnement

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

  • Fichiers PDF : avec les modèles dotés de capacités de vision, comme gpt-4o et les modèles ultérieurs, l’API extrait le texte ainsi que les images des pages et transmet les deux au modèle.
  • Documents et fichiers texte autres que PDF (par exemple, .docx, .pptx, .txt et les fichiers de code) : l’API extrait uniquement le texte.
  • Fichiers de feuilles de calcul (par exemple, .xlsx, .csv, .tsv) : l’API applique un processus d’enrichissement propre aux feuilles de calcul (décrit ci-dessous).

Utilisez les outils suivants lorsqu’ils sont mieux adaptés à votre tâche :

  • Utilisez la Recherche de fichiers pour récupérer des informations dans des fichiers volumineux plutôt que de les transmettre directement sous forme de input_file.
  • Utilisez le shell distant pour les tâches reposant largement sur des feuilles de calcul et nécessitant une analyse détaillée, comme les agrégations, les jointures, la création de graphiques ou les calculs personnalisés.

Limites concernant les images et les graphiques dans les fichiers autres que PDF

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

Pour préserver la fidélité des graphiques et des diagrammes, convertissez d’abord le fichier en PDF, puis envoyez le PDF sous forme de input_file.

Fonctionnement de l’enrichissement des feuilles de calcul

Pour les fichiers de type feuille de calcul (tels que .xlsx, .xls, .csv, .tsv et .iif), l’API Responses utilise un processus d’enrichissement propre aux feuilles de calcul.

Au lieu de transmettre des feuilles entières au modèle, l’API analyse jusqu’aux 1 000 premières lignes de chaque feuille et ajoute des métadonnées de résumé et d’en-tête générées par un modèle, afin que le modèle puisse travailler à partir d’une représentation plus compacte et structurée des données.

Niveaux de détail des PDF

Pour les PDF fournis en entrée à l’API Responses, définissez le champ facultatif detail d’un élément input_file sur auto, low ou high pour contrôler la manière dont l’API traite les images des pages. Si ce champ est omis, detail prend par défaut la valeur auto. Pour GPT-5.6 et les modèles ultérieurs, auto utilise high ; pour les modèles antérieurs, il utilise low. Utilisez low pour réduire le nombre de tokens d’entrée, ou high pour obtenir davantage de détails visuels, par exemple pour les graphiques denses, les petits caractères ou les diagrammes.

Le paramètre detail affecte uniquement le traitement des images des pages du PDF. Le texte extrait du PDF reste inclus. Les fichiers fournis en entrée à Chat Completions ne prennent pas en charge detail.

Voici un exemple minimal de corps de requête pour l’API Responses avec un niveau de détail explicitement é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 acceptés par l’API Responses sous forme d’éléments de type input_file. La liste complète des extensions et des types MIME figure plus loin sur cette page. Chat Completions prend uniquement en charge le format .pdf (application/pdf), aussi bien pour file_data que pour file_id.

CatégorieExtensions courantes
Fichiers PDF.pdf
Texte et code.txt, .md, .json, .html, .xml, fichiers de code
Documents enrichis.doc, .docx, .rtf, .odt
Présentations.ppt, .pptx
Feuilles de calcul.csv, .xls, .xlsx

URL de fichiers

Vous pouvez fournir des fichiers en entrée en indiquant des URL externes.

Utilisez l’URL d’un fichier externe
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"
                    }
                ]
            }
        ]
    }'

Téléversement de fichiers

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

Téléversez 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 envoyer des fichiers en entrée sous forme de données de fichier encodées en Base64.

Envoyez 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

Gardez ces contraintes à l’esprit lorsque vous utilisez des fichiers en entrée :

  • Consommation de tokens : l’analyse des PDF inclut dans le contexte le texte extrait ainsi que les images des pages, ce qui peut augmenter la consommation de tokens. Dans l’API Responses, définissez detail sur auto (la valeur par défaut), low ou high pour contrôler le niveau de détail visuel des images des pages du PDF. Avant un déploiement à grande échelle, examinez les tarifs et les implications en matière de consommation de tokens. En savoir plus sur les tarifs.
  • Limites de taille des fichiers : une même requête peut inclure plusieurs fichiers, mais chaque fichier doit faire moins de 50 Mo. La taille cumulée de tous les fichiers de la requête est limitée à 50 Mo.
  • Modèles pris en charge : l’analyse des PDF incluant le texte et les images des pages nécessite des modèles dotés de capacités de vision, comme gpt-4o et les modèles ultérieurs.
  • Usage prévu des fichiers téléversés : vous pouvez téléverser des fichiers pour n’importe quel usage prévu pris en charge, mais utilisez user_data pour les fichiers que vous comptez 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 prend uniquement en charge le format .pdf (application/pdf), aussi bien pour file_data que pour file_id.

CatégorieExtensionsTypes MIME
Fichiers PDFFichiers PDF (.pdf)application/pdf
Feuilles de calculFeuilles de calcul Excel (.xla, .xlb, .xlc, .xlm, .xls, .xlsx, .xlt, .xlw)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel
Feuilles de calculCSV / TSV / IIF (.csv, .tsv, .iif), Google Sheetstext/csv, application/csv, text/tsv, text/x-iif, application/x-iif, application/vnd.google-apps.spreadsheet
Documents enrichisDocuments Word/ODT/RTF (.doc, .docx, .dot, .odt, .rtf), Pages, Google Docsapplication/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ésentationsDiapositives PowerPoint (.pot, .ppa, .pps, .ppt, .pptx, .pwz, .wiz), Keynote, Google Slidesapplication/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.ms-powerpoint, application/vnd.apple.keynote, application/vnd.google-apps.presentation, application/vnd.apple.iwork
Texte et codeFormats de texte et de code (.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

Prochaines étapes

Pour aller plus loin, vous pouvez explorer l’une de ces ressources :