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

Búsqueda de archivos

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

La búsqueda de archivos es una herramienta disponible en la API Responses. Permite que los modelos recuperen información de una base de conocimientos de archivos cargados previamente mediante búsquedas semánticas y por palabras clave. Al crear almacenes vectoriales y cargar archivos en ellos, puedes ampliar los conocimientos propios de los modelos al darles acceso a estas bases de conocimientos o vector_stores.

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

Esta es una herramienta alojada y administrada por OpenAI, por lo que no tienes que implementar código de tu lado para gestionar su ejecución. Cuando el modelo decida usarla, llamará automáticamente a la herramienta, recuperará información de tus archivos y devolverá un resultado.

Cómo usarla

Antes de usar la búsqueda de archivos con la API Responses, debes haber configurado una base de conocimientos en un almacén vectorial y haber cargado archivos en él.

Una vez configurada tu base de conocimientos, puedes incluir la herramienta file_search en la lista de herramientas disponibles para el modelo, junto con la lista de almacenes vectoriales en los que se realizará la búsqueda.

Herramienta de búsqueda de 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 llame a esta herramienta, recibirás una respuesta con varios elementos de salida:

  1. Un elemento de salida file_search_call, que contiene el identificador de la llamada de búsqueda de archivos.
  2. Un elemento de salida message, que contiene la respuesta del modelo junto con las citas de los archivos.
Respuesta de búsqueda de 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"
            }
          ]
        }
      ]
    }
  ]
}

Personalización de la recuperación

Limitar la cantidad de resultados

Al usar la herramienta de búsqueda de archivos con la API Responses, puedes personalizar la cantidad de resultados que quieres recuperar de los almacenes vectoriales. Esto puede ayudar a reducir tanto el consumo de tokens como la latencia, pero puede disminuir la calidad de las respuestas.

Limitar la cantidad 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 de búsqueda de archivos no devolverá resultados de búsqueda de forma predeterminada.

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

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)

Filtrado 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, que explica:

Filtrado 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 archivoTipo 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

Notas de uso

Disponibilidad de la API Límites de solicitudes Notas

Nivel 1
100 RPM

Niveles 2 y 3
500 RPM

Niveles 4 y 5
1000 RPM

Precios
ZDR y residencia de datos