Retornar uma resposta semântica na Pesquisa de IA do Azure

Ao invocar a classificação semântica e as legendas, você pode, opcionalmente, extrair conteúdo dos documentos correspondentes que "respondem" diretamente à consulta. Uma ou mais respostas podem ser incluídas na resposta, que você pode renderizar em uma página de pesquisa para melhorar a experiência do usuário do seu aplicativo.

Uma resposta semântica é o conteúdo literal em seu índice de pesquisa que um modelo de compreensão de leitura reconheceu como uma resposta à consulta feita na solicitação. Não é uma resposta gerada. Para obter orientação sobre um modelo de interação do usuário no estilo de bate-papo que usa IA generativa para compor respostas do seu conteúdo, consulte Recuperação de geração aumentada (RAG).

Neste artigo, saiba como solicitar uma resposta semântica, descompactar a resposta e descobrir quais características de conteúdo são mais propícias para produzir respostas de alta qualidade.

Pré-requisitos

Todos os pré-requisitos que se aplicam a consultas semânticas também se aplicam a respostas, incluindo camada de serviço e região.

  • A lógica de consulta deve incluir os parâmetros de consulta semântica "queryType=semantic", mais o parâmetro "answers". Os parâmetros necessários são discutidos neste artigo.

  • As cadeias de caracteres de consulta inseridas pelo usuário devem ser reconhecíveis como uma pergunta (o quê, onde, quando, como).

  • Os documentos de pesquisa no índice devem conter texto com as características de uma resposta, e esse texto deve existir em um dos campos listados na configuração semântica. Por exemplo, dada uma consulta "o que é uma tabela de hash", se nenhum dos campos na configuração semântica contiver passagens que incluam "Uma tabela de hash é...", é improvável que uma resposta seja retornada.

Nota

A partir de 2021-04-30-Preview, em solicitações de Criar ou Atualizar Índice (Visualização), é necessário um "semanticConfiguration" para especificar campos de entrada para classificação semântica.

O que é uma resposta semântica?

Uma resposta semântica é uma subestrutura de uma resposta de consulta semântica. Consiste numa ou mais passagens literais de um documento de pesquisa, formuladas como resposta a uma consulta que se assemelha a uma pergunta. Para retornar uma resposta, frases ou frases devem existir em um documento de pesquisa que tenham as características de linguagem de uma resposta, e a própria consulta deve ser colocada como uma pergunta.

O Azure AI Search usa um modelo de compreensão de leitura de máquina para reconhecer e escolher a melhor resposta. O modelo produz um conjunto de respostas potenciais a partir do conteúdo disponível e, quando atinge um nível de confiança suficientemente elevado, propõe uma como resposta.

As respostas são retornadas como um objeto independente de nível superior na carga útil de resposta da consulta que você pode optar por renderizar nas páginas de pesquisa, juntamente com os resultados da pesquisa. Estruturalmente, é um elemento de matriz dentro da resposta que consiste em texto, uma chave de documento e uma pontuação de confiança.

Formular uma consulta REST para "respostas"

Para retornar uma resposta semântica, a consulta deve ter a semântica "queryType", , "queryLanguage""semanticConfiguration"e os "answers" parâmetros. Especificar esses parâmetros não garante uma resposta, mas a solicitação deve incluí-los para que o processamento da resposta ocorra.

{
    "search": "how do clouds form",
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "semanticConfiguration": "my-semantic-config",
    "answers": "extractive|count-3",
    "captions": "extractive|highlight-true",
    "count": "true"
}
  • Uma cadeia de caracteres de consulta não deve ser nula e deve ser formulada como pergunta.

  • "queryType" deve ser definido como "semântico.

  • "queryLanguage"deve ser um dos valores da lista de idiomas suportados (API REST).

  • A "semanticConfiguration" determina quais campos de cadeia de caracteres fornecem tokens para o modelo de extração. Os mesmos campos que produzem legendas também produzem respostas. Consulte Criar uma configuração semântica para obter detalhes.

  • Para "answers", a construção de parâmetros é , onde o número padrão de respostas retornadas é "answers": "extractive"um. Você pode aumentar o número de respostas adicionando um como mostrado no exemplo acima, até um count máximo de 10. Se você precisa de mais de uma resposta depende da experiência do usuário do seu aplicativo e de como você deseja renderizar os resultados.

Descompacte uma "resposta" da resposta

As respostas são fornecidas na matriz, que aparece primeiro na "@search.answers" resposta da consulta. Cada resposta na matriz inclui:

  • Chave do documento
  • Texto ou conteúdo da resposta, em texto simples ou com formatação
  • Pontuação de confiança

Se uma resposta for indeterminada, a resposta aparece como "@search.answers": []. A matriz de respostas é seguida pela matriz de valores, que é a resposta padrão em uma consulta semântica.

Dada a consulta "como as nuvens se formam", o exemplo a seguir ilustra uma resposta:

{
    "@search.answers": [
        {
            "key": "4123",
            "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the   atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case),   but not where it is descending (over the river).",
            "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the   atmosphere until it cools and condenses into water droplets. Clouds generally form<em> where air is ascending</em> (over land in this case),   but not where it is<em> descending</em> (over the river).",
            "score": 0.94639826
        }
    ],
    "value": [
        {
            "@search.score": 0.5479723,
            "@search.rerankerScore": 1.0321671911515296,
            "@search.captions": [
                {
                    "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.",
                    "highlights": "Like all<em> clouds</em>, it<em> forms</em> when the air reaches its dew point—the temperature at    which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley<em> fog</em>, which is common in the Pacific Northwest of North America."
                }
            ],
            "title": "Earth Atmosphere",
            "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at  \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
            "locations": [
                "Pacific Northwest",
                "North America",
                "Vancouver"
            ]
        }
    ]
}

Ao criar uma página de resultados de pesquisa que inclua respostas, certifique-se de lidar com casos em que as respostas não são encontradas.

Dentro de @search.answers:

  • "key" é a chave do documento ou ID da correspondência. Dada uma chave de documento, você pode usar a API de Documento de Pesquisa para recuperar qualquer ou todas as partes do documento de pesquisa para incluir na página de pesquisa ou em uma página de detalhes.

  • "texto" e "destaques" fornecem conteúdo idêntico, tanto em texto simples como com destaques.

    Por padrão, os destaques são estilizados como <em>, que você pode substituir usando os parâmetros highlightPreTag e highlightPostTag existentes. Como já foi referido, o conteúdo literal de uma resposta é o conteúdo literal de um documento de pesquisa. O modelo de extração procura características de uma resposta para encontrar o conteúdo apropriado, mas não compõe uma nova linguagem na resposta.

  • "pontuação" é uma pontuação de confiança que reflete a força da resposta. Se houver várias respostas na resposta, essa pontuação é usada para determinar a ordem. As principais respostas e legendas principais podem ser derivadas de diferentes documentos de pesquisa, onde a resposta principal é originária de um documento e a legenda superior de outro, mas, em geral, os mesmos documentos aparecem nas primeiras posições dentro de cada matriz.

As respostas são seguidas pela matriz "value", que sempre inclui pontuações, legendas e quaisquer campos que possam ser recuperados por padrão. Se você especificou o parâmetro select, a matriz "value" será limitada aos campos especificados. Consulte Configurar classificação semântica para obter detalhes.

Dicas para produzir respostas de alta qualidade

Para obter melhores resultados, retorne respostas semânticas em um corpus de documentos com as seguintes características:

  • O "semanticConfiguration" deve incluir campos que ofereçam texto suficiente no qual é provável encontrar uma resposta. Os campos com maior probabilidade de conter respostas devem ser listados primeiro em "priorizdContentFields". Apenas o texto literal de um documento pode aparecer como resposta.

  • As cadeias de caracteres de consulta não devem ser nulas (search=*) e a cadeia de caracteres deve ter as características de uma pergunta, como "o que é" ou "como", em oposição a uma pesquisa por palavra-chave que consiste em termos ou frases em ordem arbitrária. Se a cadeia de caracteres de consulta não parecer ser uma pergunta, o processamento de respostas será ignorado, mesmo que a solicitação especifique "respostas" como um parâmetro de consulta.

  • A extração semântica e a sumarização têm limites sobre quantos tokens por documento podem ser analisados em tempo hábil. Em termos práticos, se você tiver documentos grandes com centenas de páginas, tente dividir o conteúdo em documentos menores primeiro.

Próximos passos