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

文件输入

了解如何在 OpenAI API 中将文件用作输入。

文件输入的支持情况取决于 API 端点。Responses API 接受下列文件类型作为 input_file 项。Chat Completions 仅接受 PDF 文件作为 file 内容部分。

输入方式Responses APIChat Completions
Base64 编码的文件数据(file_data下列支持的文件类型仅限 PDF
已上传文件的 ID(file_id下列支持的文件类型仅限 PDF
外部文件 URL(file_url下列支持的文件类型不支持

对于非 PDF 文件输入,请使用 Responses API。要在 Chat Completions 中使用文件中的文本,请在您的应用中读取文件,并将其内容作为 text 内容部分发送。

工作原理

在 Responses API 中,input_file 的处理方式取决于文件类型:

  • PDF 文件:对于具有视觉能力的模型(例如 gpt-4o 及更新的模型),API 会提取文本和页面图像,并将两者一并发送给模型。
  • 非 PDF 文档和文本文件 (例如 .docx.pptx.txt 和代码文件):API 仅提取文本。
  • 电子表格文件 (例如 .xlsx.csv.tsv):API 会运行专门针对电子表格的增强流程(详见下文)。

如果以下相关工具更适合您的任务,请使用它们:

  • 使用文件搜索来检索大型文件,而不是将这些文件直接作为 input_file 传入。
  • 对于需要详细分析且涉及大量电子表格处理的任务,例如聚合、连接、绘图或自定义计算,请使用托管式 Shell

非 PDF 文件的图像和图表限制

对于非 PDF 文件,Responses API 不会将其中嵌入的图像或图表提取到 模型上下文中。

为保留图表和示意图的细节,请先将文件转换为 PDF,然后 将 PDF 作为 input_file 发送。

电子表格增强的工作原理

对于电子表格类文件(例如 .xlsx.xls.csv.tsv.iif),Responses API 会采用专门针对电子表格的增强流程。

API 不会将整个工作表传给模型,而是最多解析每个工作表的前 1,000 行, 并添加模型生成的摘要和表头元数据, 让模型能够基于更精简的结构化数据视图开展工作。

PDF 细节级别

对于 Responses API 中的 PDF 输入,可将 input_file 项中的可选 detail 字段 设为 autolowhigh,以控制 API 处理 页面图像的方式。如果省略,detail 默认为 auto。对于 GPT-5.6 及更新的 模型,auto 使用 high;对于更早的模型,则使用 low。使用 low 可减少 输入 Token 用量;使用 high 则可获取更多视觉细节,例如密集图表、小字号文字 或示意图中的细节。

detail 设置仅影响 PDF 页面图像的处理。从 PDF 中提取的文本 仍会包含在内。Chat Completions 的文件输入不支持 detail

以下是一个明确指定高细节级别的最简 Responses API 请求体:

{
  "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."
        }
      ]
    }
  ]
}

支持的文件类型

下表列出了 Responses API 接受作为 input_file 项的常见文件类型。扩展名和 MIME 类型的完整列表见 本页后文。Chat Completions 仅支持 .pdfapplication/pdf),无论使用 file_data 还是 file_id

类别常见扩展名
PDF 文件.pdf
文本和代码.txt.md.json.html.xml、代码文件
富文本文档.doc.docx.rtf.odt
演示文稿.ppt.pptx
电子表格.csv.xls.xlsx

文件 URL

您可以通过外部 URL 链接提供文件输入。

使用外部文件 URL
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"
                    }
                ]
            }
        ]
    }'

上传文件

以下示例使用 Files API 上传文件,然后在发送给模型的请求中引用该文件的 ID。

上传文件
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?"
                    }
                ]
            }
        ]
    }'

Base64 编码文件

您也可以将文件输入作为 Base64 编码的文件数据发送。

发送 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?"
                    }
                ]
            }
        ]
    }'

使用注意事项

使用文件输入时,请注意以下限制:

  • Token 用量: PDF 解析会将提取的文本和页面图像都包含在上下文中,这可能会增加 Token 用量。在 Responses API 中,可将 detail 设为 auto(默认值)、lowhigh,以控制 PDF 页面图像的视觉细节量。在大规模部署之前,请了解定价和对 Token 用量的影响。了解更多定价信息
  • 文件大小限制: 单个请求可以包含多个文件,但每个文件必须小于 50 MB。请求中所有文件的总大小上限为 50 MB。
  • 支持的模型: 同时包含文本和页面图像的 PDF 解析需要具有视觉能力的模型,例如 gpt-4o 及更新的模型。
  • 文件上传用途: 您可以使用任何受支持的用途上传文件,但对于计划作为模型输入传入的文件,请使用 user_data

支持的文件类型完整列表

此列表适用于 Responses API。Chat Completions 仅支持 .pdfapplication/pdf),无论使用 file_data 还是 file_id

类别扩展名MIME 类型
PDF 文件PDF 文件(.pdfapplication/pdf
电子表格Excel 工作表(.xla.xlb.xlc.xlm.xls.xlsx.xlt.xlwapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.ms-excel
电子表格CSV / TSV / IIF(.csv.tsv.iif)、Google Sheetstext/csvapplication/csvtext/tsvtext/x-iifapplication/x-iifapplication/vnd.google-apps.spreadsheet
富文本文档Word/ODT/RTF 文档(.doc.docx.dot.odt.rtf)、Pages、Google Docsapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/mswordapplication/rtftext/rtfapplication/vnd.oasis.opendocument.textapplication/vnd.apple.pagesapplication/vnd.google-apps.documentapplication/vnd.apple.iwork
演示文稿PowerPoint 幻灯片(.pot.ppa.pps.ppt.pptx.pwz.wiz)、Keynote、Google Slidesapplication/vnd.openxmlformats-officedocument.presentationml.presentationapplication/vnd.ms-powerpointapplication/vnd.apple.keynoteapplication/vnd.google-apps.presentationapplication/vnd.apple.iwork
文本和代码文本/代码格式(.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.xmlapplication/javascriptapplication/typescripttext/xmltext/x-shellscripttext/x-rsttext/x-makefiletext/x-lisptext/x-asmtext/vbscripttext/cssmessage/rfc822application/x-sqlapplication/x-scalaapplication/x-rustapplication/x-powershelltext/x-difftext/x-patchapplication/x-patchtext/plaintext/markdowntext/x-javatext/x-script.pythontext/x-pythontext/x-ctext/x-c++text/x-golangtext/htmltext/x-phpapplication/x-phpapplication/x-httpd-phpapplication/x-httpd-php-sourcetext/x-rubytext/x-shtext/x-bashapplication/x-bashtext/x-zshtext/x-textext/x-csharpapplication/jsontext/x-typescripttext/javascripttext/x-gotext/x-rusttext/x-scalatext/x-kotlintext/x-swifttext/x-luatext/x-rtext/x-Rtext/x-juliatext/x-perltext/x-objectivectext/x-objectivec++text/x-erlangtext/x-elixirtext/x-haskelltext/x-clojuretext/x-groovytext/x-darttext/x-awkapplication/x-awktext/jsxtext/tsxtext/x-handlebarstext/x-mustachetext/x-ejstext/x-jinja2text/x-liquidtext/x-erbtext/x-twigtext/x-pugtext/x-jadetext/x-tmpltext/x-cmaketext/x-dockerfiletext/x-gradletext/x-initext/x-propertiestext/x-protobufapplication/x-protobuftext/x-sqltext/x-sasstext/x-scsstext/x-lesstext/x-hcltext/x-terraformapplication/x-terraformtext/x-tomlapplication/x-tomlapplication/graphqlapplication/x-graphqltext/x-graphqlapplication/x-ndjsonapplication/json5application/x-json5text/x-yamlapplication/tomlapplication/x-yamlapplication/yamltext/x-astrotext/srtapplication/x-subriptext/x-subriptext/vtttext/x-vcardtext/calendar

后续步骤

接下来,您可以探索以下资源: