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

Recherche dans les fichiers

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

La recherche dans les fichiers est un outil de l’API Responses. Elle permet aux modèles de retrouver des informations dans une base de connaissances constituée de fichiers déjà importés, grâce à la recherche sémantique et à la recherche par mots-clés. En créant des bases vectorielles et en y important des fichiers, vous pouvez enrichir les connaissances des modèles en leur donnant accès à ces bases de connaissances, appelées vector_stores.

Pour en savoir plus sur le fonctionnement des bases vectorielles et de la recherche sémantique, consultez notre guide de la recherche d’informations.

OpenAI héberge et gère cet outil. Vous n’avez donc aucun code à écrire 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 dans les fichiers avec l’API Responses, créez une base de connaissances dans une base vectorielle et importez-y vos fichiers.

Une fois votre base de connaissances prête, vous pouvez ajouter l’outil file_search à la liste des outils accessibles au modèle et préciser la liste des bases vectorielles à interroger.

Outil de recherche dans les 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, la réponse contient plusieurs éléments de sortie :

  1. Un élément file_search_call qui contient l’identifiant de l’appel à l’outil de recherche dans les fichiers.
  2. Un élément message qui contient la réponse du modèle et les références aux fichiers cités.
Réponse à une recherche dans les 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 recherche

Limitez le nombre de résultats

Avec l’outil de recherche dans les fichiers de l’API Responses, vous pouvez choisir le nombre de résultats à récupérer dans les bases vectorielles. Limiter ce nombre peut réduire la consommation de tokens et la latence, mais aussi la qualité des réponses.

Limitation du 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

Le texte de sortie peut contenir des annotations qui renvoient aux fichiers, mais l’appel à l’outil de recherche dans les fichiers ne renvoie pas les résultats de recherche par défaut.

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

Inclusion des 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 selon les métadonnées des fichiers. Pour plus de détails, consultez notre guide de la recherche d’informations, 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 fichier Type MIME
.c text/x-c
.cpp text/x-c++
.cs text/x-csharp
.css text/css
.doc application/msword
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.go text/x-golang
.html text/html
.java text/x-java
.js text/javascript
.json application/json
.md text/markdown
.pdf application/pdf
.php text/x-php
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
.py text/x-python
.py text/x-script.python
.rb text/x-ruby
.sh application/x-sh
.tex text/x-tex
.ts application/typescript
.txt text/plain

Notes d’utilisation

Disponibilité par APILimites de débitNotes

Build
500 requêtes par minute

Launch et Grow
1 000 requêtes par minute

Tarifs
ZDR et résidence des données