Filtrar com a compreensão de linguagem natural
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Esta página explica como aplicar a compreensão de linguagem natural para criar automaticamente filtros para consultas de pesquisa e, por conseguinte, melhorar a qualidade dos resultados devolvidos.
Pode usar esta funcionalidade com apps de pesquisa ligadas a arquivos de dados estruturados.
Acerca da compreensão de consultas de linguagem natural
Se tiver uma app de pesquisa personalizada com dados estruturados, as consultas de linguagem natural dos seus utilizadores podem ser reformatadas como consultas filtradas. Isto pode gerar resultados da pesquisa de melhor qualidade do que pesquisar palavras na string de consulta.
Por exemplo, uma consulta em linguagem natural, como "Find a coffee shop serving
banana bread", pode ser reformulada como uma consulta e um filtro:
"query": "banana bread", "filter": "type": ANY(\"cafe\").
A utilização da compreensão de consultas em linguagem natural é mais fácil e flexível do que escrever as suas próprias expressões de filtro. Para obter informações sobre como escrever expressões de filtro, consulte o artigo
Filtre a pesquisa personalizada para dados estruturados ou não estruturados.
Filtros rígidos e flexíveis
Existem dois tipos de filtros que pode aplicar para a compreensão de consultas em linguagem natural: rígidos
e flexíveis.
Difícil. Por predefinição, os filtros extraídos são aplicados como critérios obrigatórios que um resultado tem de satisfazer para ser devolvido.
O comportamento é semelhante ao do campo filter na mensagem SearchRequest.
Suave. Uma alternativa ao filtro rígido é aplicar um aumento aos resultados da pesquisa. É mais provável que sejam devolvidos resultados melhorados, mas também podem ser devolvidos resultados que não cumprem o critério de melhoramento.
O comportamento é semelhante ao do campo boost_spec na mensagem SearchRequest.
Pode experimentar ambos os tipos de filtro. Se as pesquisas não estiverem a devolver resultados suficientes, experimente o filtro flexível em vez do filtro rígido.
Exemplo: extração de campos de consultas (filtro rígido)
Esta funcionalidade de compreensão de consultas de linguagem natural é explicada através do exemplo de uma pesquisa de um hotel.
Considere a seguinte consulta feita a um repositório de dados estruturados para um site de hotéis:
"Encontra um hotel adequado para famílias com, pelo menos, quatro estrelas, que custe menos de 300 € por noite, onde possa levar o meu cão e que tenha Wi-Fi grátis."
Sem a compreensão de consultas de linguagem natural, a app de pesquisa procura documentos que contenham as palavras na consulta.
Com a compreensão de consultas em linguagem natural e dados estruturados adequadamente, a pesquisa torna-se mais eficaz ao substituir parte da linguagem natural na consulta por filtros.
Se os dados estruturados tiverem campos para star_rating (números), price (números) e amenities (strings), a consulta pode ser formulada para incluir os seguintes filtros:
Exemplo: com um filtro de geolocalização (filtro rígido)
Este exemplo é semelhante ao anterior, exceto que inclui um filtro de geolocalização, que é um tipo especial de filtro extraído.
A Pesquisa do Vertex AI tem a capacidade de reconhecer localizações numa consulta e criar filtros de proximidade para as localizações.
Considere a seguinte consulta feita a um site de empresas a nível estadual:
"Encontra um hotel elegante e com estilo com, pelo menos, 4 estrelas em São Francisco."
Com a compreensão de consultas em linguagem natural e o filtro de geolocalização, a pesquisa é reformulada para incluir o seguinte filtro para um hotel com, pelo menos, uma classificação de 4 estrelas e num raio de 10 km de São Francisco:
Neste exemplo, GEO_DISTANCE é uma morada, mas noutras consultas, pode ser escrito como uma latitude e uma longitude, mesmo que a consulta original contivesse uma morada.
Exemplo: extração de campos de consultas (filtro flexível)
Esta funcionalidade de compreensão de consultas em linguagem natural é explicada através do exemplo de pesquisar um hotel, mas mostrar alguns resultados que não cumprem todos os critérios.
Considere a seguinte consulta feita a um site de viagens:
"Encontra um hotel adequado para famílias com, pelo menos, quatro estrelas que custe menos
de 300 por noite e que me permita levar o meu cão."
Com a compreensão de consultas de linguagem natural e dados estruturados adequadamente, a pesquisa torna-se mais eficaz ao substituir parte da linguagem natural na consulta por filtros flexíveis. Se os dados estruturados tiverem campos para star_rating (números), price (números) e amenities (strings), a consulta pode ser reescrita como o seguinte aumento:
Condição de aumento extraída da consulta de linguagem natural:
Neste caso, podem ser devolvidos alguns hotéis com classificações mais baixas ou que não aceitam animais de estimação.
Limitações
As seguintes limitações aplicam-se à compreensão de consultas em linguagem natural:
A compreensão de consultas de linguagem natural não pode ser aplicada a apps de pesquisa combinada. Recebe um erro se tentar usar a compreensão de consultas de linguagem natural com uma app de pesquisa combinada.
A compreensão de consultas de linguagem natural só funciona para apps de pesquisa personalizadas que usam arquivos de dados estruturados.
A utilização da compreensão de consultas em linguagem natural aumenta a latência, pelo que pode optar por não a usar se a latência for um problema.
Para a geolocalização, a localização tem de ser descrita explicitamente. Não pode usar localizações como "perto de mim" ou "casa".
O raio da geolocalização é de 10 km e não é configurável.
Não é possível usar campos Booleanos em filtros. Por exemplo, se a consulta for "Encontra-me
um quarto de hotel para não fumadores", um campo booleano como
"non_smoking": true não é útil, mas um campo de string como
"non_smoking": "YES" pode fazer parte do filtro.
Antes de começar
Antes de começar a usar a compreensão de consultas em linguagem natural, tem de a ativar para os arquivos de dados estruturados associados às apps que planeia usar.
Para ativar a compreensão de consultas em linguagem natural, siga estes passos:
REST
Encontre o ID do seu repositório de dados. Se já tiver o ID da loja de dados, avance para o passo seguinte.
Na Google Cloud consola, aceda à página Aplicações de IA e, no menu de navegação, clique em Armazenamentos de dados.
Repita os passos 1 e 2 para cada arquivo de dados.
Aguarde aproximadamente 24 horas.
Se tentar usar a compreensão de consultas em linguagem natural antes de o repositório de dados estar pronto, a resposta que recebe é a mesma que se filterExtractionCondition estivesse definido como DISABLED.
Pesquisar, convertendo consultas de linguagem natural em filtros
Para pesquisar uma consulta em linguagem natural e obter resultados otimizados para consultas de linguagem natural, faça o seguinte:
Pesquisa, convertendo localizações em consultas para filtros de geolocalização
Para pesquisar uma consulta em linguagem natural e obter resultados otimizados para consultas de linguagem natural, incluindo a proximidade a localizações, faça o seguinte:
Especifique campos para consultas de linguagem natural
Para que um campo seja usado como filtro na compreensão de consultas em linguagem natural, tem de ser marcado como indexável no esquema. (Para informações gerais sobre a visualização e edição de um esquema, consulte o artigo Atualize um esquema.)
A Pesquisa da Vertex AI determina quais dos campos indexáveis no esquema fazem sentido usar em filtros de compreensão de consultas de linguagem natural. No entanto, se forem incluídos campos que não quer, tem de criar uma lista de autorizações para especificar que campos podem ser usados.
Considere um site de reservas de hotéis, onde existem campos como amenities, id, price_per_night, rating e room_types. Destes, se o id for uma string de carateres e números, é provável que a Vertex AI Search o exclua dos campos usados para a compreensão de consultas em linguagem natural.
No entanto, se observar que a Pesquisa da Vertex AI está a devolver resultados de consulta de má qualidade porque não está a excluir campos que devia, tem de especificar que campos podem ser usados. Por exemplo, se o esquema de hotel tiver um campo para renovation_status que não seja útil para os clientes e possa ser embaraçoso para a cadeia de hotéis, pode excluí-lo da lista de campos permitidos.
Exemplo de um registo da loja de dados estruturados de dados de hotéis.
{"title":"Miller-Jones","rating":1.7,"price_per_night":115.16,"id":2902,…],"amenities":["Spa","Parking","Restaurant"…],"renovation_status":"Restaurant and spa renovation planned for 2027"}
Uma lista de autorizações adequada para os campos neste exemplo seria ["amenities",
"price_per_night", "rating", "title"].
O vídeo em falta na lista é renovation_status.
Para especificar uma lista de autorizações de campos que podem ser usados numa consulta de linguagem natural
de compreensão numa pesquisa, faça o seguinte:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-12-04 UTC."],[],[]]