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ée | API Responses | Chat Completions |
|---|---|---|
Données du fichier encodées en Base64 (file_data) | Types de fichiers pris en charge répertoriés ci-dessous | PDF uniquement |
Identifiant du fichier téléversé (file_id) | Types de fichiers pris en charge répertoriés ci-dessous | PDF uniquement |
URL d’un fichier externe (file_url) | Types de fichiers pris en charge répertoriés ci-dessous | Non 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-4oet 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,.txtet 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égorie | Extensions 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.
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"
}
]
}
]
}'Chat Completions ne prend pas en charge les URL de fichiers. Utilisez l’API Responses pour cette option.
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.
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?"
}
]
}
]
}'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/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-6-astra",
"messages": [
{
"role": "user",
"content": [
{
"type": "file",
"file": {
"file_id": "file-6F2ksmvXxt4VdoqmHRw6kL"
}
},
{
"type": "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.
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?"
}
]
}
]
}'curl "https://api.openai.com/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-6-astra",
"messages": [
{
"role": "user",
"content": [
{
"type": "file",
"file": {
"filename": "draconomicon.pdf",
"file_data": "...base64 encoded bytes here..."
}
},
{
"type": "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
detailsurauto(la valeur par défaut),lowouhighpour 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-4oet 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_datapour 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é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 enrichis | Documents Word/ODT/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 | Formats 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 :