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-4oet 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,.txtet 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.
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 envoyer un fichier par URL.
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.
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 fournir un fichier en entrée en envoyant ses données 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
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
detailsurauto(valeur par défaut),lowouhighpour 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-4oou 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_datapour 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 :