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

Recherche de fichiers

Permettez aux modèles de rechercher des informations pertinentes dans vos fichiers avant de générer une réponse.

La recherche de fichiers est un outil disponible dans l’API Responses. Elle permet aux modèles de récupérer des informations dans une base de connaissances constituée de fichiers préalablement importés, grâce à la recherche sémantique et par mots-clés. En créant des espaces de stockage vectoriel et en y important des fichiers, vous pouvez enrichir les connaissances initiales des modèles en leur donnant accès à ces bases de connaissances, ou vector_stores.

Pour en savoir plus sur le fonctionnement des espaces de stockage vectoriel et de la recherche sémantique, consultez notre guide de récupération.

Cet outil hébergé est géré par OpenAI : vous n’avez donc pas à écrire de code pour gérer son exécution. Lorsque le modèle décide de l’utiliser, il appelle automatiquement l’outil, récupère des informations dans vos fichiers et renvoie un résultat.

Utilisation

Avant d’utiliser la recherche de fichiers avec l’API Responses, vous devez avoir configuré une base de connaissances dans un espace de stockage vectoriel et y avoir importé des fichiers.

Une fois votre base de connaissances configurée, vous pouvez inclure l’outil file_search dans la liste des outils disponibles pour le modèle, ainsi que la liste des espaces de stockage vectoriel dans lesquels effectuer la recherche.

Outil de recherche de fichiers
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)

Lorsque le modèle appelle cet outil, vous recevez une réponse contenant plusieurs éléments de sortie :

  1. Un élément de sortie file_search_call, qui contient l’identifiant de l’appel à la recherche de fichiers.
  2. Un élément de sortie message, qui contient la réponse du modèle ainsi que les citations des fichiers.
Réponse de la recherche de fichiers
{
  "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"
            }
          ]
        }
      ]
    }
  ]
}

Personnalisation de la récupération

Limitation du nombre de résultats

Lorsque vous utilisez l’outil de recherche de fichiers avec l’API Responses, vous pouvez définir le nombre de résultats à récupérer dans les espaces de stockage vectoriel. Cela peut contribuer à réduire à la fois la consommation de tokens et la latence, mais risque de diminuer la qualité des réponses.

Limitez le nombre de résultats
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)

Incluez les résultats de recherche dans la réponse

Bien que des annotations (références aux fichiers) apparaissent dans le texte de sortie, l’appel à la recherche de fichiers ne renvoie pas les résultats de recherche par défaut.

Pour inclure les résultats de recherche dans la réponse, vous pouvez utiliser le paramètre include lors de la création de la réponse.

Incluez les résultats de recherche
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)

Filtrage par métadonnées

Vous pouvez filtrer les résultats de recherche en fonction des métadonnées des fichiers. Pour plus de détails, consultez notre guide de récupération, qui explique :

Filtrage par métadonnées
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)

Fichiers pris en charge

Pour les types MIME text/, l’encodage doit être utf-8, utf-16 ou ascii.

Format de fichierType MIME
.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

Notes d’utilisation

Disponibilité dans les API Limites de débit Notes

Niveau 1
100 RPM

Niveaux 2 et 3
500 RPM

Niveaux 4 et 5
1000 RPM

Tarifs
ZDR et résidence des données