Partilhar via


Adicionar classificação semântica a consultas no Azure AI Search

Você pode aplicar classificação semântica a consultas de texto, consultas híbridas e consultas vetoriais se seus documentos de pesquisa contiverem campos de cadeia de caracteres e a consulta vetorial tiver uma representação de texto no documento de pesquisa.

Este artigo explica como invocar o classificador semântico em consultas.

Pré-requisitos

Nota

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 automática para reconhecer conteúdo com as características de uma legenda ou resposta, mas não compõe novas frases ou frases. Por esse motivo, o conteúdo que inclui explicações ou definições funciona melhor para a classificação semântica. Se você quiser interação no estilo de bate-papo com as respostas geradas, consulte Geração aumentada de recuperação (RAG).

Escolha um cliente

Você pode usar qualquer uma das seguintes ferramentas e SDKs para criar uma consulta que usa classificação semântica:

Evite 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, não será possível classificar semanticamente os resultados:

  • Uma consulta com search=* ou uma cadeia de pesquisa vazia, como uma consulta somente de filtro pura, 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. Dado que a pontuação semântica deve fornecer a classificação, adicionar uma cláusula orderby resulta em um erro HTTP 400 se você aplicar classificação semântica sobre 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 search parâmetro para passar uma cadeia de caracteres) ou uma consulta vetorial, e o índice deve conter campos de texto com conteúdo semântico rico e uma configuração semântica.

O explorador de pesquisa inclui opções para classificação semântica.

  1. Inicie sessão no portal do Azure.

  2. Abra um índice de pesquisa e selecione Explorador de pesquisa.

  3. 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 seu índice.

    Captura de ecrã a mostrar opções de consulta no explorador de pesquisa.

  4. Insira uma consulta, como "hotel histórico com boa comida", e selecione Pesquisar.

  5. Como alternativa, selecione a visualização JSON e cole as definições no editor de consultas:

    Captura de ecrã a mostrar a sintaxe de consulta JSON no portal do Azure.

    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

Apenas as 50 melhores partidas dos resultados iniciais podem ser classificadas semanticamente. Como em todas as consultas, uma resposta é composta por todos os campos marcados como recuperáveis ou apenas os campos listados no select parâmetro. Uma resposta inclui a pontuação de relevância original e também pode incluir uma contagem ou resultados em lote, dependendo de como você formulou a solicitação.

Na classificação semântica, a resposta tem mais elementos: uma nova pontuação de relevância classificada semanticamente, uma legenda opcional em texto simples e com destaques e uma resposta opcional. Se os resultados não incluírem esses elementos extras, sua consulta poderá estar configurada incorretamente. Como primeiro passo para solucionar o problema, verifique a configuração semântica para garantir que ela seja especificada na definição do índice e na consulta.

Em um aplicativo cliente, você pode estruturar a página de pesquisa para incluir uma legenda como a 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 para a consulta de exemplo acima retorna a seguinte correspondência como a opção principal. As legendas são retornadas porque a propriedade "captions" está definida, com texto sem formatação e versões realçadas. As respostas são omitidas do exemplo porque não foi possível determinar uma para esta consulta e corpus em particular.

"@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 classificação semântica, você deve esperar que um serviço de pesquisa ofereça 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 inclui estas frases indica que o serviço está na capacidade de 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, envie um tíquete de suporte para que possamos provisionar sua carga de trabalho.

Próximos passos

A classificação semântica pode ser usada em consultas híbridas que combinam pesquisa de palavras-chave e pesquisa vetorial em uma única solicitação e uma resposta unificada.