Filtrar pesquisas por relevância no nível do documento

Ao pesquisar no app da Vertex AI para Pesquisa, é possível especificar filtros de relevância no nível do documento para que apenas os documentos que atendem ao limite do filtro sejam retornados como resultados. Esta página explica os tipos de limite, a importância de otimizar o limite e como especificar filtros de relevância e o limite deles.

Sobre a filtragem por relevância no nível do documento

Quando uma consulta de pesquisa retorna um resultado, ela atribui um nível de relevância a cada documento recuperado. Na solicitação de pesquisa, é possível definir um limite para retornar apenas os documentos que atendem a ele. Definir um limite alto pode reduzir o número de documentos retornados pela consulta. Já definir um limite baixo pode diluir os resultados com documentos que têm pouca relevância para a consulta do usuário.

Portanto, se você achar que o resultado contém muitos documentos de relevância insuficiente para seus usuários, defina um limite alto para restringir os resultados apenas aos mais relevantes. Se um limite alto for muito restritivo, diminua para um valor mais adequado.

Tipos de pesquisas

É possível aplicar filtros de relevância aos seguintes tipos de pesquisa:

  • Pesquisa com palavra-chave: recupera documentos com base na pesquisa de palavras-chave.
  • Pesquisa de similaridade semântica: recupera documentos com base em embeddings.

Na definição do filtro de relevância, é possível especificar o tipo de limite para cada uma dessas pesquisas. A pesquisa recupera os documentos para a pesquisa especificada e aplica o limite especificado.

Tipos de limite

É possível especificar um dos seguintes tipos de limite para pesquisa de palavra-chave e similaridade semântica ao enviar sua solicitação de pesquisa.

  • Limite de relevância: quando você define esse limite, a pesquisa usa um modelo proprietário para determinar a relevância de um documento. Nesse caso, a pesquisa pode usar qualquer indicador pertinente, como pontuação de similaridade de palavra-chave, pontuação de relevância e pontuação de similaridade semântica.

    O limite de relevância é uma configuração de granularidade grosseira que permite os seguintes valores: HIGH, MEDIUM, LOW e LOWEST. Um limite HIGH pode retornar menos documentos com uma pontuação de relevância alta, enquanto um limite LOWEST pode retornar mais documentos que talvez não sejam relevantes para a consulta de pesquisa.

  • Limite de relevância semântica: quando você define esse limite, o filtro depende apenas da pontuação de similaridade semântica para determinar a relevância de um documento.

    O limite de relevância semântica é uma configuração refinada e um pontuação flutuante no intervalo [0,1]. Definir o limite como zero retorna todos os documentos, enquanto definir como um retorna os documentos mais relevantes.

Definição e exemplo de filtro de relevância

Para definir filtros de relevância na sua solicitação de pesquisa, especifique apenas um tipo de limite (relevância e relevância semântica) para cada tipo de pesquisa (palavra-chave e semântica). É possível especificar um ou os dois tipos de pesquisa na especificação do filtro de relevância. No entanto, só pode haver um tipo de limite definido em cada tipo de pesquisa. Por exemplo, considere o seguinte:

{
  "relevanceFilterSpec": {
    "keywordSearchThreshold":  {
      "relevanceThreshold": "LOW"
    },
    "semanticSearchThreshold":  {
      "semanticRelevanceThreshold": 0.871
    }
  }
}

Nessa solicitação de pesquisa, os resultados são retornados em duas etapas: recuperação e filtragem.

  • A pesquisa recupera os documentos de acordo com a correspondência de palavras-chave e, em seguida, filtra os documentos com um limite de relevância baixo. Isso retorna um grande número de documentos recuperados.
  • Ao mesmo tempo, a pesquisa recupera os documentos de acordo com a similaridade semântica e os filtra com um limite de relevância semântica alto de 0.871. Isso retorna menos documentos recuperados.

A ênfase da pesquisa é mais na correspondência de palavras-chave do que na similaridade semântica. Os filtros permitem mais documentos recuperados devido à correspondência de palavras-chave.

Da mesma forma, é possível definir o filtro de relevância da seguinte maneira para retornar menos documentos com palavras-chave correspondentes e mais documentos com similaridade semântica.

"relevanceFilterSpec": {
    "keywordSearchThreshold":  {
        "semanticRelevanceThreshold": 0.871
    },
    "semanticSearchThreshold":  {
        "relevanceThreshold": "LOW"
    }
}

Tipos de dados e apps compatíveis com o filtro de relevância no nível do documento

O filtro de relevância no nível do documento pode ser aplicado a repositórios de dados com os seguintes tipos de dados:

  • Dados do site com indexação avançada de sites
  • Dados não estruturados personalizados
  • Dados estruturados personalizados

O filtro de relevância no nível do documento não funciona para repositórios de dados com indexação básica de sites, dados de mídia ou dados de saúde.

Além disso, o filtro de relevância no nível do documento não pode ser usado com apps de pesquisa combinada. Os apps de pesquisa combinada são conectados a vários repositórios de dados.

Outros tipos de filtros

O filtro de relevância no nível do documento não é a única maneira de filtrar os dados retornados pelas consultas. Também é possível usar expressões de filtro para filtrar resultados com base em metadados (em indexação avançada de sites e repositórios de dados não estruturados com metadados) e valores de campo (em repositórios de dados estruturados).

Confira mais informações em:

Se você usar uma expressão de filtro e o filtro de relevância no nível do documento, a expressão será aplicada primeiro aos resultados e, em seguida, o filtro de relevância no nível do documento.

Antes de começar

Verifique se você criou um app e um repositório de dados e se ingeriu dados no repositório. Para mais informações, consulte Criar um app de pesquisa. Consulte também Tipos de dados e apps compatíveis com o filtro de relevância no nível do documento.

Para filtrar por relevância, siga estas etapas:

  1. Encontre o ID do app. Se você já tiver o ID do app, pule para a próxima etapa.

    1. No console Google Cloud , acesse a página Aplicativos de IA.

      Acessar "Apps".

    2. Na página Apps, encontre o nome do app e confira o ID dele na coluna ID.

  2. Para filtrar a pesquisa por relevância no nível do documento, especifique o campo relevanceFilterSpec, que define apenas um tipo de limite para cada tipo de pesquisa usando o método engines.servingConfigs.search. Ou seja, você pode especificar relevanceThreshold ou semanticRelevanceThreshold para um determinado tipo de pesquisa.

    curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
    -d '{
     "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search",
    "query": "QUERY",
    "relevanceFilterSpec": {
      "keywordSearchThreshold":  {
          "relevanceThreshold": "RELEVANCE_THRESHOLD"
      },
      "semanticSearchThreshold":  {
          "semanticRelevanceThreshold": SEMANTIC_RELEVANCE_THRESHOLD
      }
    }
    }'
    

    Substitua:

    • PROJECT_ID: o ID do seu projeto do Google Cloud .
    • APP_ID: o ID do app da Vertex AI para Pesquisa que você quer consultar.
    • QUERY: o texto da consulta a ser pesquisado.
    • RELEVANCE_THRESHOLD: um dos seguintes: HIGH, MEDIUM, LOW, LOWEST.
    • SEMANTIC_RELEVANCE_THRESHOLD: um valor de ponto flutuante no intervalo [0,1].
  3. Teste várias consultas com diferentes limites para determinar as melhores configurações de limite para seus dados e aplicativo.