For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal
Theme

Búsqueda en archivos

Permite que los modelos busquen información relevante en tus archivos antes de generar una respuesta.

La búsqueda en archivos es una herramienta disponible en la API de Responses. Los modelos pueden usar búsquedas semánticas y por palabras clave para recuperar información de una base de conocimiento formada por archivos que ya subiste. Al crear almacenes vectoriales y subir archivos a ellos, puedes complementar lo que los modelos ya saben al darles acceso a estas bases de conocimiento o vector_stores.

Para saber cómo funcionan los almacenes vectoriales y la búsqueda semántica, consulta nuestra guía de recuperación de información.

OpenAI aloja y administra esta herramienta, así que no necesitas escribir código para gestionar su ejecución. Cuando el modelo decide usarla, llama automáticamente a la herramienta, recupera información de tus archivos y devuelve un resultado.

Cómo usar la búsqueda en archivos

Antes de usar la búsqueda en archivos con la API de Responses, debes configurar una base de conocimiento en un almacén vectorial y subir archivos a ese almacén.

Una vez configurada la base de conocimiento, puedes incluir la herramienta file_search en la lista de herramientas disponibles para el modelo y proporcionar la lista de almacenes vectoriales en los que debe buscar.

Herramienta de búsqueda en archivos
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)

Cuando el modelo llama a esta herramienta, recibes una respuesta con varios elementos de salida:

  1. Un elemento de tipo file_search_call que contiene el identificador de la llamada a la herramienta de búsqueda en archivos.
  2. Un elemento de tipo message que contiene la respuesta del modelo junto con las referencias a los archivos citados.
Respuesta de la búsqueda en archivos
{
  "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"
            }
          ]
        }
      ]
    }
  ]
}

Personalizar la recuperación de información

Limitar el número de resultados

Cuando usas la herramienta de búsqueda en archivos con la API de Responses, puedes ajustar la cantidad de resultados que quieres recuperar de los almacenes vectoriales. Limitar esa cantidad puede reducir tanto el consumo de tokens como la latencia, aunque también puede disminuir la calidad de la respuesta.

Limitar el número de resultados
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)

Incluir los resultados de búsqueda en la respuesta

Aunque puedes ver anotaciones (referencias a archivos) en el texto de salida, la llamada a la herramienta de búsqueda en archivos no devuelve los resultados de búsqueda de forma predeterminada.

Para incluir los resultados de búsqueda en la respuesta, puedes usar el parámetro include al crearla.

Incluir los resultados de búsqueda
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)

Filtrar por metadatos

Puedes filtrar los resultados de búsqueda según los metadatos de los archivos. Para obtener más detalles, consulta nuestra guía de recuperación de información, que explica:

Filtrar por metadatos
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)

Archivos compatibles

Para los tipos MIME text/, la codificación debe ser utf-8, utf-16 o ascii.

Formato de archivo Tipo 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

Notas de uso

Disponibilidad por APILímites de solicitudesNotas

Build
500 RPM

Launch y Grow
1000 RPM

Precios
ZDR y residencia de datos