For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Pesquisa de arquivos

Permita que os modelos pesquisem informações relevantes nos seus arquivos antes de gerar uma resposta.

A pesquisa de arquivos é uma ferramenta disponível na Responses API. Ela permite que os modelos recuperem informações de uma base de conhecimento composta por arquivos enviados anteriormente, usando pesquisa semântica e por palavras-chave. Ao criar repositórios de vetores e enviar arquivos para eles, você pode ampliar o conhecimento inerente dos modelos, dando a eles acesso a essas bases de conhecimento, ou vector_stores.

Para saber mais sobre como funcionam os repositórios de vetores e a pesquisa semântica, consulte nosso guia de recuperação.

Esta é uma ferramenta hospedada e gerenciada pela OpenAI, ou seja, você não precisa implementar código para cuidar da execução dela. Quando o modelo decidir usá-la, ele chamará a ferramenta automaticamente, recuperará informações dos seus arquivos e retornará uma saída.

Como usar

Antes de usar a pesquisa de arquivos com a Responses API, você precisa configurar uma base de conhecimento em um repositório de vetores e enviar arquivos para ele.

Depois de configurar sua base de conhecimento, você pode incluir a ferramenta file_search na lista de ferramentas disponíveis para o modelo, junto com a lista de repositórios de vetores nos quais pesquisar.

Ferramenta de pesquisa de arquivos
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)

Quando o modelo chamar esta ferramenta, você receberá uma resposta com várias saídas:

  1. Um item de saída file_search_call, que contém o ID da chamada de pesquisa de arquivos.
  2. Um item de saída message, que contém a resposta do modelo junto com as citações dos arquivos.
Resposta da pesquisa de arquivos
{
  "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"
            }
          ]
        }
      ]
    }
  ]
}

Personalização da recuperação

Como limitar o número de resultados

Ao usar a ferramenta de pesquisa de arquivos com a Responses API, você pode personalizar o número de resultados que deseja recuperar dos repositórios de vetores. Isso pode ajudar a reduzir tanto o uso de tokens quanto a latência, mas pode diminuir a qualidade da resposta.

Limite o 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)

Inclua os resultados da pesquisa na resposta

Embora você possa ver anotações (referências a arquivos) no texto de saída, a chamada de pesquisa de arquivos não retorna os resultados da pesquisa por padrão.

Para incluir os resultados da pesquisa na resposta, você pode usar o parâmetro include ao criar a resposta.

Inclua os resultados da pesquisa
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)

Filtragem por metadados

Você pode filtrar os resultados da pesquisa com base nos metadados dos arquivos. Para mais detalhes, consulte nosso guia de recuperação, que explica:

Filtragem por metadados
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)

Arquivos compatíveis

Para os tipos MIME text/, a codificação deve ser utf-8, utf-16 ou ascii.

Formato do arquivoTipo 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

Observações de uso

Disponibilidade da API Limites de taxa Observações

Nível 1
100 RPM

Níveis 2 e 3
500 RPM

Níveis 4 e 5
1000 RPM

Preços
ZDR e residência de dados