Adicione classificação semântica a consultas no IA do Azure Search
Você pode aplicar a classificação semântica a consultas de texto, consultas híbridas e consultas de vetores se os documentos de pesquisa contiverem campos de cadeia de caracteres e a consulta de vetores tiver uma representação de texto no documento de pesquisa.
Este artigo explica como invocar o classificador semântico em consultas.
Pré-requisitos
Um serviço de pesquisa, de nível básico ou superior, com o classificador semântico habilitado.
Um índice de pesquisa existente com uma configuração semântica e conteúdo de rich text.
Examine a classificação semântica se você precisar de uma introdução ao recurso.
Observação
As legendas e as respostas são extraídas literalmente do texto no documento de pesquisa. O subsistema semântico usa a compreensão de leitura de computador para reconhecer o conteúdo que tem as características de uma legenda ou resposta, mas não compõe novas frases ou orações. Por isso, o conteúdo que inclui explicações ou definições funciona melhor para a classificação semântica. Se você deseja ter uma interação no estilo chat com respostas geradas, confira RAG (Geração Aumentada de Recuperação).
Selecione um cliente
Você pode usar qualquer uma das seguintes ferramentas e SDKs para criar uma consulta que use a classificação semântica:
- Portal do Azure, usando o designer de índice para adicionar uma configuração semântica.
- Visual Studio Code com um cliente REST
- SDK do Azure para .NET
- SDK do Azure para Python
- SDK do Azure para Java
- SDK do Azure para JavaScript
Evitar recursos que ignoram a pontuação de relevância
Alguns recursos de consulta ignoram a pontuação de relevância, o que os torna incompatíveis com a classificação semântica. Se a lógica de consulta incluir os seguintes recursos, você não poderá classificar os resultados semanticamente:
Uma consulta com
search=*
ou uma cadeia de caracteres de pesquisa vazia, como consulta somente filtro puro, não funcionará porque não há nada para medir a relevância semântica e, portanto, as pontuações de pesquisa são zero. A consulta deve fornecer termos ou frases que possam ser avaliados durante o processamento.A classificação (cláusulas orderBy) em campos específicos substitui as pontuações de pesquisa e uma pontuação semântica. Considerando que a pontuação semântica deve fornecer a classificação, adicionar uma cláusula orderby resultará em um erro HTTP 400, se você aplicar a classificação semântica sobre os resultados ordenados.
Configurar a consulta
Nesta etapa, adicione parâmetros à solicitação de consulta. Para ser bem-sucedida, sua consulta deve ser uma pesquisa de texto completo (usando o parâmetro search
para passar uma cadeia de caracteres) ou uma consulta de vetor e o índice deve conter campos de texto com conteúdo semântico avançado e uma configuração semântica.
O Gerenciador de Pesquisa inclui opções de classificação semântica.
Entre no portal do Azure.
Abra o índice de pesquisa e selecione Gerenciador de pesquisa.
Selecione Opções de Consulta. Se você já definiu uma configuração semântica, ela será selecionada por padrão. Se você não tiver uma, crie uma configuração semântica para o índice.
Insira uma consulta, como "hotel histórico com boa comida" e selecione Pesquisar.
Como alternativa, selecione o modo de exibição JSON e cole as definições no editor de consultas:
Aqui está um texto JSON que você pode colar na exibição:
{ "queryType": "semantic", "search": "historic hotel with good food", "semanticConfiguration": "my-semantic-config", "answers": "extractive|count-3", "captions": "extractive|highlight-true", "highlightPreTag": "<strong>", "highlightPostTag": "</strong>", "select": "HotelId,HotelName,Description,Category", "count": true }
Avaliar a resposta
Somente as principais 50 correspondências dos resultados iniciais podem ser classificadas semanticamente. Assim como acontece com todas as consultas, uma resposta é composta por todos os campos marcados como recuperáveis ou apenas pelos campos listados no parâmetro select
. Uma resposta inclui a pontuação de relevância original e também pode incluir uma contagem ou resultados em lote, dependendo de como a solicitação foi formulada.
Em uma classificação semântica, a resposta tem mais elementos: uma nova pontuação de relevância classificada semanticamente, uma legenda opcional em texto sem formatação e com destaques e uma resposta opcional. Se os resultados não incluírem esses elementos extras, sua consulta poderá estar configurada incorretamente. Como uma primeira etapa para solucionar o problema, verifique a configuração semântica para garantir que ela seja especificada na definição de índice e na consulta.
Em um aplicativo cliente, você pode estruturar a página de pesquisa para incluir uma legenda como descrição da correspondência, em vez de todo o conteúdo de um campo específico. Essa abordagem é útil quando campos individuais são muito densos para a página de resultados da pesquisa.
A resposta da consulta de exemplo acima retorna a correspondência exibida abaixo como a seleção superior. As legendas são retornadas porque a propriedade "captions" está definida, com texto sem formatação e versões realçadas. As respostas foram omitidas do exemplo porque não foi possível encontrar uma para esta consulta e corpus em especial.
"@odata.count": 35,
"@search.answers": [],
"value": [
{
"@search.score": 1.8810667,
"@search.rerankerScore": 1.1446577133610845,
"@search.captions": [
{
"text": "Oceanside Resort. Luxury. New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
"highlights": "<strong>Oceanside Resort.</strong> Luxury. New Luxury Hotel. Be the first to stay.<strong> Bay</strong> views from every room, location near the pier, rooftop pool, waterfront dining & more."
}
],
"HotelName": "Oceanside Resort",
"Description": "New Luxury Hotel. Be the first to stay. Bay views from every room, location near the pier, rooftop pool, waterfront dining & more.",
"Category": "Luxury"
},
...
]
Cargas de trabalho esperadas
Para a classificação semântica, você deve esperar que um serviço de pesquisa dê suporte a até 10 consultas simultâneas por réplica.
O serviço limita as solicitações de classificação semântica se os volumes forem muito altos. Uma mensagem de erro que inclua essas frases indica que o serviço está no limite da capacidade da classificação semântica:
Error in search query: Operation returned an invalid status 'Partial Content'`
@search.semanticPartialResponseReason`
CapacityOverloaded
Se você prevê requisitos de taxa de transferência consistentes próximos, iguais ou superiores a esse nível, registre um tíquete de suporte para que possamos provisionar sua carga de trabalho.
Próximas etapas
A classificação semântica pode ser usada em consultas híbridas que combinam busca de palavra-chave e busca em vetores em uma única solicitação e uma resposta unificada.