Filtrar com o processamento 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 filtros automaticamente
para consultas de pesquisa e, portanto, melhorar a qualidade dos
resultados retornados.
Você pode usar esse recurso com apps de pesquisa conectados a repositórios de dados estruturados
Sobre a compreensão de consultas de linguagem natural
Se você tiver um app de pesquisa personalizado com dados estruturados,
as consultas de linguagem natural dos usuários poderão ser reformuladas como consultas filtradas
Isso pode levar a resultados de pesquisa de melhor qualidade do que pesquisar palavras
na string de consulta.
Por exemplo, uma consulta de 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\").
Há dois tipos de filtros que podem ser aplicados para a compreensão de consultas de linguagem natural: rígidos
e flexíveis.
Rígidos. Por padrão, os filtros extraídos são aplicados como
critérios obrigatórios que um resultado precisa atender para ser retornado.
O comportamento é semelhante ao campo filter na
SearchRequest
mensagem.
Flexíveis. Uma alternativa ao filtro rígido é aplicar um aumento aos
resultados da pesquisa. Os resultados aumentados têm mais probabilidade de serem retornados, mas
os resultados que não atendem ao critério de aumento também podem ser retornados.
O comportamento é semelhante ao campo boost_spec na
SearchRequest
mensagem.
Você pode testar os dois tipos de filtro. Se as pesquisas não retornarem
resultados suficientes, tente o filtro flexível em vez do rígido.
Exemplo: extração de campos de consultas (filtro rígido)
Esse recurso de compreensão de consultas de linguagem natural é explicado pelo exemplo de pesquisa de um
hotel.
Considere a seguinte consulta feita a um repositório de dados estruturados para um site de hotel:
"Find me a family-friendly hotel with at least four stars that costs less
than 300 a night, lets me bring my dog, and has free Wi-Fi."
Sem a compreensão de consultas de linguagem natural, o app de pesquisa procura documentos que contenham as palavras
na consulta.
Com a compreensão de consultas de linguagem natural e dados estruturados adequadamente, a pesquisa se torna mais
eficaz substituindo 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 poderá 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 Vertex AI para Pesquisa tem a capacidade de reconhecer locais em uma consulta e
criar filtros de proximidade para os locais.
Considere a seguinte consulta feita a um site comercial estadual:
"Find me a chic and stylish hotel with at least 4 stars that is in San
Francisco."
Com a compreensão de consultas de linguagem natural e o filtro de geolocalização, a pesquisa é reformulada para
incluir o seguinte filtro para um hotel com pelo menos 4 estrelas
e em um raio de 10 km de São Francisco:
Neste exemplo, o GEO_DISTANCE é um endereço, mas em outras consultas, ele
pode ser escrito como latitude e longitude, mesmo que a consulta original
contenha um endereço.
Exemplo: extração de campos de consultas (filtro flexível)
Esse recurso de compreensão de consultas de linguagem natural é explicado pelo exemplo de pesquisa
de um hotel, mas mostrando alguns resultados que não atendem a todos os critérios.
Considere a seguinte consulta feita a um site de viagens:
"Find me a family-friendly hotel with at least four stars that costs less
than 300 a night, and lets me bring my dog."
Com a compreensão de consultas de linguagem natural e dados estruturados adequadamente, a pesquisa se torna mais
eficaz substituindo 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 poderá ser reescrita como o
seguinte aumento:
Condição de aumento extraída da consulta de linguagem natural:
Nesse caso, talvez alguns hotéis com classificação mais baixa ou que não aceitam animais de estimação sejam
retornados.
A intensidade do aumento depende do número de filtros estruturados que um
documento corresponde. Se três condições forem extraídas e o documento corresponder
apenas a uma delas, o documento receberá um pequeno aumento.
Como alternativa, se o documento corresponder a todas as três condições, ele receberá
um aumento forte.
Limitações
As seguintes limitações se aplicam à compreensão de consultas de linguagem natural:
A compreensão de consultas de linguagem natural não pode ser aplicada a apps de pesquisa combinados. Você
recebe um erro se tentar usar a compreensão de consultas de linguagem natural com um app de pesquisa combinado.
A compreensão de consultas de linguagem natural funciona apenas para apps de pesquisa personalizados que usam repositórios de dados estruturados.
O uso da compreensão de consultas de linguagem natural aumenta a latência. Portanto, talvez você não queira usá-la
se a latência for um problema.
Para a geolocalização, o local precisa ser descrito explicitamente. Não
é possível usar locais como "perto de mim" ou "casa".
O raio da geolocalização é de 10 km e não pode ser configurado.
Campos booleanos não podem ser usados em filtros. Por exemplo, se a consulta for "Find
me a non-smoking hotel room", um campo booleano como
"non_smoking": true não será útil, mas um campo de string como
"non_smoking": "YES" poderá fazer parte do filtro.
Antes de começar
Antes de começar a usar a compreensão de consultas de linguagem natural, você precisa ativá-la para os repositórios de dados estruturados
conectados aos apps que você planeja usar.
Para ativar a compreensão de consultas de linguagem natural, siga estas etapas:
REST
Encontre o ID do repositório de dados. Se você já tiver o ID do repositório de dados, pule para a próxima etapa.
No Google Cloud console, acesse a página Aplicativos de IA e
no menu de navegação, clique em Repositórios de dados.
Repita as etapas 1 e 2 para cada repositório de dados.
Aguarde aproximadamente 24 horas.
Se você tentar usar a compreensão de consultas de linguagem natural antes que o repositório de dados esteja pronto, a resposta
recebida será 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 receber resultados otimizados para
consultas de linguagem natural, faça o seguinte:
Pesquisar, convertendo locais em consultas para filtros de geolocalização
Para pesquisar uma consulta em linguagem natural e receber resultados otimizados para
consultas de linguagem natural, incluindo a proximidade de locais, faça o seguinte:
Especificar campos para consultas de linguagem natural
Para que um campo seja usado como filtro na compreensão de consultas de linguagem natural, ele precisa ser marcado como
indexável no esquema. Para informações gerais sobre como visualizar e editar um
esquema, consulte Atualizar um esquema.
A Vertex AI para Pesquisa determina quais dos campos indexáveis no esquema
fazem sentido para usar em filtros de compreensão de consultas de linguagem natural. No entanto, se você incluir
campos que não quer, será necessário criar uma lista de permissões para
especificar quais campos podem ser usados.
Considere um site de reservas de hotéis, em que há campos como
amenities, id, price_per_night, rating, e room_types. Desses, se
o id for uma string de caracteres e números, é provável que a Vertex AI para Pesquisa o
exclua dos campos usados para a compreensão de consultas de linguagem natural.
No entanto, se você observar que a Vertex AI para Pesquisa está retornando resultados de consulta de baixa qualidade
porque não está excluindo os campos que deveria, será necessário
especificar quais campos podem ser usados. Por exemplo, se o esquema do hotel tiver um
campo para renovation_status que não seja útil para os clientes e possa ser
embaraçoso para a rede de hotéis, você poderá excluí-lo da lista de
campos permitidos.
Exemplo de um registro do repositório de dados estruturados de dados de hotel.
{"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 permissões adequada para campos neste exemplo seria ["amenities",
"price_per_night", "rating", "title"].
O renovation_status está ausente da lista.
Para especificar uma lista de permissões de campos que podem ser usados em uma compreensão de consultas de linguagem natural
em uma 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 2026-01-05 UTC."],[],[]]