La compatibilidad con archivos de entrada depende del punto de acceso de la API. La API Responses acepta los tipos de archivo que se indican a continuación como elementos input_file. Chat Completions solo acepta archivos PDF como partes de contenido de tipo file.
| Método de entrada | API Responses | Chat Completions |
|---|---|---|
Datos del archivo codificados en Base64 (file_data) | Tipos de archivo admitidos que se indican a continuación | Solo PDF |
ID del archivo cargado (file_id) | Tipos de archivo admitidos que se indican a continuación | Solo PDF |
URL de un archivo externo (file_url) | Tipos de archivo admitidos que se indican a continuación | No se admite |
Usa la API Responses para archivos de entrada que no sean PDF. Para usar el texto de un archivo en Chat Completions, lee el archivo en tu aplicación y envía su contenido como una parte de contenido de tipo text.
Cómo funciona
En la API Responses, el procesamiento de input_file depende del tipo de archivo:
- Archivos PDF: en los modelos con capacidades de visión, como
gpt-4oy modelos posteriores, la API extrae tanto el texto como las imágenes de las páginas y envía ambos al modelo. - Documentos y archivos de texto en formatos distintos de PDF (por ejemplo,
.docx,.pptx,.txty archivos de código): la API extrae solo el texto. - Archivos de hojas de cálculo (por ejemplo,
.xlsx,.csv,.tsv): la API ejecuta un flujo de enriquecimiento específico para hojas de cálculo (descrito a continuación).
Usa estas herramientas relacionadas cuando se adapten mejor a tu tarea:
- Usa Búsqueda de archivos para recuperar información de archivos grandes en lugar de pasarlos directamente como
input_file. - Usa Terminal alojada en la nube para tareas centradas en hojas de cálculo que requieran análisis detallados, como agregaciones, uniones, creación de gráficos o cálculos personalizados.
Limitaciones de imágenes y gráficos en archivos que no son PDF
En el caso de los archivos que no son PDF, la API Responses no extrae las imágenes ni los gráficos integrados para incluirlos en el contexto del modelo.
Para conservar la fidelidad de los gráficos y diagramas, primero convierte el archivo a PDF y luego
envía el PDF como input_file.
Cómo funciona el enriquecimiento de hojas de cálculo
Para los archivos de tipo hoja de cálculo (como .xlsx, .xls, .csv, .tsv y
.iif), la API Responses usa un proceso de enriquecimiento específico para hojas de cálculo.
En lugar de pasar hojas completas al modelo, la API procesa hasta las primeras 1000 filas de cada hoja y agrega metadatos de resumen y encabezados generados por el modelo para que este pueda trabajar con una vista de los datos más reducida y estructurada.
Niveles de detalle de PDF
Para las entradas PDF en la API Responses, establece el campo opcional detail de un elemento
input_file en auto, low o high para controlar cómo procesa la API
las imágenes de las páginas. Si se omite, detail toma el valor predeterminado auto. En GPT-5.6 y modelos
posteriores, auto usa high; en modelos anteriores, usa low. Usa low para reducir la cantidad de
tokens de entrada, o high para obtener más detalle visual, por ejemplo, en gráficos densos, letra pequeña
o diagramas.
La configuración detail solo afecta al procesamiento de las imágenes de las páginas del PDF. El texto extraído del
PDF se sigue incluyendo. Los archivos de entrada de Chat Completions no admiten detail.
Así se ve un cuerpo mínimo de solicitud a la API Responses con un nivel de detalle alto establecido explícitamente:
{
"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."
}
]
}
]
}
Tipos de archivo admitidos
La siguiente tabla muestra los tipos de archivo comunes que la API Responses acepta como elementos
input_file. La lista completa de extensiones y tipos MIME aparece más adelante en
esta página. Chat Completions solo admite .pdf (application/pdf), tanto para
file_data como para file_id.
| Categoría | Extensiones comunes |
|---|---|
| Archivos PDF | .pdf |
| Texto y código | .txt, .md, .json, .html, .xml, archivos de código |
| Documentos con formato | .doc, .docx, .rtf, .odt |
| Presentaciones | .ppt, .pptx |
| Hojas de cálculo | .csv, .xls, .xlsx |
URL de archivos
Puedes proporcionar archivos de entrada mediante enlaces a URL externas.
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 no admite URL de archivos. Usa la API Responses para esta opción.
Subir archivos
El siguiente ejemplo sube un archivo con la API Files y luego hace referencia a su ID de archivo en una solicitud al modelo.
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?"
}
]
}
]
}'Archivos codificados en Base64
También puedes enviar archivos de entrada como datos de archivo codificados 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?"
}
]
}
]
}'Consideraciones de uso
Ten en cuenta estas restricciones al usar archivos de entrada:
- Uso de tokens: el procesamiento de PDF incluye tanto el texto extraído como las imágenes de las páginas en el contexto, lo que puede aumentar el uso de tokens. En la API Responses, establece
detailenauto(el valor predeterminado),lowohighpara controlar el nivel de detalle visual de las imágenes de las páginas del PDF. Antes de implementar a gran escala, revisa los precios y las implicaciones del uso de tokens. Más información sobre precios. - Límites de tamaño de archivo: una misma solicitud puede incluir más de un archivo, pero cada archivo debe tener un tamaño inferior a 50 MB. El límite combinado de todos los archivos de la solicitud es de 50 MB.
- Modelos compatibles: el procesamiento de PDF que incluye texto e imágenes de las páginas requiere modelos con capacidades de visión, como
gpt-4oy modelos posteriores. - Propósito de la carga de archivos: puedes subir archivos con cualquier propósito admitido, pero usa
user_datapara los archivos que planeas pasar como entradas al modelo.
Lista completa de tipos de archivo admitidos
Esta lista se aplica a la API Responses. Chat Completions solo admite .pdf
(application/pdf), tanto para file_data como para file_id.
| Categoría | Extensiones | Tipos MIME |
|---|---|---|
| Archivos PDF | Archivos PDF (.pdf) | application/pdf |
| Hojas de cálculo | Hojas de Excel (.xla, .xlb, .xlc, .xlm, .xls, .xlsx, .xlt, .xlw) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel |
| Hojas de cálculo | 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 |
| Documentos con formato | Documentos de 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 |
| Presentaciones | Diapositivas de 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 |
| Texto y código | Formatos de texto/código (.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 |
Próximos pasos
A continuación, puedes explorar alguno de estos recursos: