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

Dateisuche

Ermögliche Modellen, deine Dateien nach relevanten Informationen zu durchsuchen, bevor sie eine Antwort generieren.

Die Dateisuche ist ein Tool der Responses API. Damit können Modelle Informationen aus einer Wissensbasis zuvor hochgeladener Dateien mithilfe semantischer Suche und Stichwortsuche abrufen. Indem du Vektorspeicher erstellst und Dateien darin hochlädst, kannst du das vorhandene Wissen der Modelle ergänzen: Du gibst ihnen Zugriff auf diese Wissensbasen, auch vector_stores genannt.

Mehr darüber, wie Vektorspeicher und die semantische Suche funktionieren, erfährst du in unserem Leitfaden zum Informationsabruf.

Dieses Tool wird von OpenAI gehostet und verwaltet. Du musst daher keinen eigenen Code für seine Ausführung implementieren. Wenn das Modell entscheidet, es zu verwenden, ruft es das Tool automatisch auf, ruft Informationen aus deinen Dateien ab und gibt ein Ergebnis zurück.

Verwendung

Bevor du die Dateisuche mit der Responses API verwenden kannst, musst du eine Wissensbasis in einem Vektorspeicher einrichten und Dateien darin hochladen.

Sobald deine Wissensbasis eingerichtet ist, kannst du das Tool file_search in die Liste der für das Modell verfügbaren Tools aufnehmen und die Liste der zu durchsuchenden Vektorspeicher angeben.

Tool zur Dateisuche
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-6-astra",
    input="What is deep research by OpenAI?",
    tools=[{"type": "file_search", "vector_store_ids": ["<vector_store_id>"]}],
)
print(response)

Wenn das Modell dieses Tool aufruft, erhältst du eine Antwort mit mehreren Ausgabeelementen:

  1. Ein Ausgabeelement vom Typ file_search_call, das die ID des Dateisuche-Aufrufs enthält.
  2. Ein Ausgabeelement vom Typ message, das die Antwort des Modells samt Quellenverweisen auf die Dateien enthält.
Antwort der Dateisuche
{
  "output": [
    {
      "type": "file_search_call",
      "id": "fs_67c09ccea8c48191ade9367e3ba71515",
      "status": "completed",
      "queries": ["What is deep research?"],
      "search_results": null
    },
    {
      "id": "msg_67c09cd3091c819185af2be5d13d87de",
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "Deep research is a sophisticated capability that allows for extensive inquiry and synthesis of information across various domains. It is designed to conduct multi-step research tasks, gather data from multiple online sources, and provide comprehensive reports similar to what a research analyst would produce. This functionality is particularly useful in fields requiring detailed and accurate information...",
          "annotations": [
            {
              "type": "file_citation",
              "index": 992,
              "file_id": "file-2dtbBZdjtDKS8eqWxqbgDi",
              "filename": "deep_research_blog.pdf"
            },
            {
              "type": "file_citation",
              "index": 992,
              "file_id": "file-2dtbBZdjtDKS8eqWxqbgDi",
              "filename": "deep_research_blog.pdf"
            },
            {
              "type": "file_citation",
              "index": 1176,
              "file_id": "file-2dtbBZdjtDKS8eqWxqbgDi",
              "filename": "deep_research_blog.pdf"
            },
            {
              "type": "file_citation",
              "index": 1176,
              "file_id": "file-2dtbBZdjtDKS8eqWxqbgDi",
              "filename": "deep_research_blog.pdf"
            }
          ]
        }
      ]
    }
  ]
}

Informationsabruf anpassen

Anzahl der Ergebnisse begrenzen

Wenn du das Tool zur Dateisuche mit der Responses API verwendest, kannst du festlegen, wie viele Ergebnisse aus den Vektorspeichern abgerufen werden sollen. Dadurch lassen sich Tokenverbrauch und Latenz reduzieren, allerdings kann die Qualität der Antworten darunter leiden.

Anzahl der Ergebnisse begrenzen
response = client.responses.create(
    model="gpt-6-astra",
    input="What is deep research by OpenAI?",
    tools=[
        {
            "type": "file_search",
            "vector_store_ids": ["<vector_store_id>"],
            "max_num_results": 2,
        }
    ],
)
print(response)

Suchergebnisse in die Antwort aufnehmen

Im Ausgabetext siehst du zwar Anmerkungen mit Verweisen auf Dateien, der Dateisuche-Aufruf gibt jedoch standardmäßig keine Suchergebnisse zurück.

Um Suchergebnisse in die Antwort aufzunehmen, kannst du beim Erstellen der Antwort den Parameter include verwenden.

Suchergebnisse aufnehmen
response = client.responses.create(
    model="gpt-6-astra",
    input="What is deep research by OpenAI?",
    tools=[
        {
            "type": "file_search",
            "vector_store_ids": ["<vector_store_id>"],
        }
    ],
    include=["file_search_call.results"],
)
print(response)

Nach Metadaten filtern

Du kannst die Suchergebnisse anhand der Metadaten der Dateien filtern. Weitere Informationen findest du in unserem Leitfaden zum Informationsabruf. Dort erfährst du:

Nach Metadaten filtern
response = client.responses.create(
    model="gpt-6-astra",
    input="What is deep research by OpenAI?",
    tools=[
        {
            "type": "file_search",
            "vector_store_ids": ["<vector_store_id>"],
            "filters": {
                "type": "in",
                "key": "category",
                "value": ["blog", "announcement"],
            },
        }
    ],
)
print(response)

Unterstützte Dateien

Für MIME-Typen mit text/ muss die Zeichenkodierung utf-8, utf-16 oder ascii sein.

DateiformatMIME-Typ
.ctext/x-c
.cpptext/x-c++
.cstext/x-csharp
.csstext/css
.docapplication/msword
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
.gotext/x-golang
.htmltext/html
.javatext/x-java
.jstext/javascript
.jsonapplication/json
.mdtext/markdown
.pdfapplication/pdf
.phptext/x-php
.pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentation
.pytext/x-python
.pytext/x-script.python
.rbtext/x-ruby
.shapplication/x-sh
.textext/x-tex
.tsapplication/typescript
.txttext/plain

Hinweise zur Nutzung

API-Verfügbarkeit Ratenlimits Hinweise

Stufe 1
100 RPM

Stufe 2 und 3
500 RPM

Stufe 4 und 5
1.000 RPM

Preise
ZDR und Datenresidenz