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.
| Eingabemethode | Responses API | Chat Completions |
|---|---|---|
Base64-kodierte Dateidaten (file_data) | Unten aufgeführte unterstützte Dateitypen | Nur PDF |
ID der hochgeladenen Datei (file_id) | Unten aufgeführte unterstützte Dateitypen | Nur PDF |
Externe Datei-URL (file_url) | Unten aufgeführte unterstützte Dateitypen | Nicht 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-4ound 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,.txtund 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_filezu ü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.
| Kategorie | Gä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.
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 unterstützt keine Datei-URLs. Verwende dafür die Responses API.
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.
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?"
}
]
}
]
}'Base64-codierte Dateien
Du kannst Dateieingaben auch als Base64-codierte Dateidaten 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?"
}
]
}
]
}'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?"
}
]
}
]
}'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
detailaufauto(Standard),lowoderhigh, 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-4ound neuere Modelle. - Verwendungszweck beim Datei-Upload: Du kannst Dateien mit jedem unterstützten Verwendungszweck hochladen. Verwende jedoch
user_datafü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.
| Kategorie | Dateiendungen | MIME-Typen |
|---|---|---|
| PDF-Dateien | PDF-Dateien (.pdf) | application/pdf |
| Tabellenkalkulationen | Excel-Tabellen (.xla, .xlb, .xlc, .xlm, .xls, .xlsx, .xlt, .xlw) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel |
| Tabellenkalkulationen | 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 |
| Formatierte Dokumente | Word-/ODT-/RTF-Dokumente (.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äsentationen | PowerPoint-Folien (.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 |
| Text und Code | Text-/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: