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

Dateieingaben

Erfahre, wie du Dateien als Eingaben in der OpenAI API verwendest.

Die Unterstützung für Dateieingaben hängt vom API-Endpunkt ab. Die Responses API akzeptiert die unten aufgeführten Dateitypen als Elemente vom Typ input_file. Chat Completions akzeptiert ausschließlich PDF-Dateien als Inhaltsbestandteile vom Typ file.

EingabemethodeResponses APIChat Completions
Base64-kodierte Dateidaten (file_data)Unten aufgeführte unterstützte DateitypenNur PDF
ID der hochgeladenen Datei (file_id)Unten aufgeführte unterstützte DateitypenNur PDF
Externe Datei-URL (file_url)Unten aufgeführte unterstützte DateitypenNicht unterstützt

Verwende die Responses API für Dateieingaben in anderen Formaten als PDF. Um Text aus einer Datei in Chat Completions zu verwenden, lies die Datei in deiner Anwendung ein und sende ihren Inhalt als Inhaltsbestandteil vom Typ text.

So funktioniert es

In der Responses API hängt die Verarbeitung von input_file vom Dateityp ab:

  • PDF-Dateien: Bei Modellen mit Bildverarbeitungsfunktionen, etwa gpt-4o und neueren Modellen, extrahiert die API sowohl Text als auch Seitenbilder und sendet beides an das Modell.
  • Dokument- und Textdateien in anderen Formaten als PDF (zum Beispiel .docx, .pptx, .txt und Codedateien): Die API extrahiert nur Text.
  • Tabellendateien (zum Beispiel .xlsx, .csv, .tsv): Die API führt einen speziell auf Tabellen abgestimmten Anreicherungsprozess aus (siehe unten).

Verwende diese verwandten Tools, wenn sie besser zu deiner Aufgabe passen:

  • Verwende die Dateisuche, um Informationen aus großen Dateien abzurufen, anstatt sie direkt als input_file zu übergeben.
  • Verwende Hosted Shell für Aufgaben, bei denen du intensiv mit Tabellen arbeitest und detaillierte Analysen wie Aggregationen, Joins, Diagrammerstellung oder individuelle Berechnungen benötigst.

Einschränkungen bei Bildern und Diagrammen in anderen Dateiformaten als PDF

Bei anderen Dateiformaten als PDF extrahiert die Responses API keine eingebetteten Bilder oder Diagramme für den Modellkontext.

Damit Diagramme und Schaubilder originalgetreu erhalten bleiben, konvertiere die Datei zuerst in PDF. Sende die PDF-Datei dann als input_file.

So funktioniert die Anreicherung von Tabellendaten

Für tabellarische Dateien (etwa .xlsx, .xls, .csv, .tsv und .iif) verwendet die Responses API ein speziell auf Tabellen abgestimmtes Anreicherungsverfahren.

Anstatt ganze Tabellenblätter an das Modell zu übergeben, liest die API pro Tabellenblatt bis zu 1.000 der ersten Zeilen ein und ergänzt vom Modell generierte Zusammenfassungen und Metadaten zu den Spaltenüberschriften. So kann das Modell mit einer kompakteren, strukturierten Darstellung der Daten arbeiten.

Detailstufen für PDF-Dateien

Für PDF-Eingaben in der Responses API kannst du das optionale Feld detail eines input_file-Elements auf auto, low oder high setzen. Damit steuerst du, wie die API Seitenbilder verarbeitet. Ohne Angabe wird für detail standardmäßig auto verwendet. Bei GPT-5.6 und neueren Modellen entspricht auto dem Wert high, bei älteren Modellen dem Wert low. Verwende low, um weniger Eingabetokens zu verbrauchen, oder high für mehr visuelle Details, etwa bei dicht gefüllten Diagrammen, Kleingedrucktem oder Schaubildern.

Die Einstellung detail wirkt sich nur auf die Verarbeitung der PDF-Seitenbilder aus. Der aus der PDF-Datei extrahierte Text wird weiterhin einbezogen. Dateieingaben in Chat Completions unterstützen detail nicht.

Ein minimaler Request-Body für die Responses API mit explizit hoher Detailstufe sieht so aus:

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

Akzeptierte Dateitypen

Die folgende Tabelle zeigt gängige Dateitypen, die die Responses API als Elemente vom Typ input_file akzeptiert. Die vollständige Liste der Dateiendungen und MIME-Typen findest du weiter unten auf dieser Seite. Chat Completions unterstützt ausschließlich .pdf (application/pdf), sowohl für file_data als auch für file_id.

KategorieGängige Dateiendungen
PDF-Dateien.pdf
Text und Code.txt, .md, .json, .html, .xml, Codedateien
Formatierte Dokumente.doc, .docx, .rtf, .odt
Präsentationen.ppt, .pptx
Tabellen.csv, .xls, .xlsx

Datei-URLs

Du kannst Dateieingaben bereitstellen, indem du externe URLs angibst.

Eine externe Datei-URL verwenden
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"
                    }
                ]
            }
        ]
    }'

Dateien hochladen

Das folgende Beispiel lädt eine Datei über die Files API hoch und verweist anschließend in einer Anfrage an das Modell auf ihre Datei-ID.

Eine Datei hochladen
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-codierte Dateien

Du kannst Dateieingaben auch als Base64-codierte Dateidaten senden.

Eine Base64-codierte Datei senden
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?"
                    }
                ]
            }
        ]
    }'

Hinweise zur Nutzung

Beachte bei der Verwendung von Dateieingaben diese Einschränkungen:

  • Tokenverbrauch: Bei der PDF-Verarbeitung werden sowohl extrahierter Text als auch Seitenbilder in den Kontext aufgenommen. Das kann den Tokenverbrauch erhöhen. Setze in der Responses API detail auf auto (Standard), low oder high, um den visuellen Detailgrad der PDF-Seitenbilder zu steuern. Prüfe vor dem Einsatz in größerem Umfang die Preise und die Auswirkungen auf den Tokenverbrauch. Mehr zu den Preisen.
  • Größenbeschränkungen für Dateien: Eine einzelne Anfrage kann mehrere Dateien enthalten, aber jede Datei muss kleiner als 50 MB sein. Für alle Dateien in der Anfrage zusammen gilt eine Grenze von 50 MB.
  • Unterstützte Modelle: Die PDF-Verarbeitung mit Text und Seitenbildern erfordert Modelle mit Bildverarbeitungsfunktionen, etwa gpt-4o und neuere Modelle.
  • Verwendungszweck beim Datei-Upload: Du kannst Dateien mit jedem unterstützten Verwendungszweck hochladen. Verwende jedoch user_data für Dateien, die du als Modelleingaben übergeben möchtest.

Vollständige Liste der akzeptierten Dateitypen

Diese Liste gilt für die Responses API. Chat Completions unterstützt ausschließlich .pdf (application/pdf), sowohl für file_data als auch für file_id.

KategorieDateiendungenMIME-Typen
PDF-DateienPDF-Dateien (.pdf)application/pdf
TabellenkalkulationenExcel-Tabellen (.xla, .xlb, .xlc, .xlm, .xls, .xlsx, .xlt, .xlw)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel
TabellenkalkulationenCSV / TSV / IIF (.csv, .tsv, .iif), Google Sheetstext/csv, application/csv, text/tsv, text/x-iif, application/x-iif, application/vnd.google-apps.spreadsheet
Formatierte DokumenteWord-/ODT-/RTF-Dokumente (.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äsentationenPowerPoint-Folien (.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
Text und CodeText-/Codeformate (.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

Nächste Schritte

Als Nächstes kannst du dir eine dieser Ressourcen ansehen: