Поделиться через


Возврат семантического ответа в поиске ИИ Azure

При вызове семантического ранжирования и заголовков можно дополнительно извлечь содержимое из документов с наибольшим соответствием, которые "отвечают" на запрос напрямую. В ответ можно включить один или несколько ответов, которые затем можно отобразить на странице поиска, чтобы улучшить взаимодействие с пользователем в приложении.

Семантический ответ — это подробное содержимое в индексе поиска, которое модель чтения распознала как ответ на запрос, создаваемый в запросе. Это не созданный ответ. Рекомендации по модели взаимодействия с пользователем в стиле чата, которая использует генерированный ИИ для создания ответов из содержимого, см. в статье "Извлечение дополненного поколения( RAG)".

В этой статье вы узнаете, как запросить семантический ответ, распаковывать ответ и узнать, какие характеристики контента наиболее способствуют созданию высококачественных ответов.

Необходимые компоненты

Все необходимые условия, применяемые к семантическим запросам, также применяются к ответам, включая уровень служб и регион.

  • Логика запроса должна включать параметры семантического запроса "queryType=semantic", а также параметр "answers" (ответы). Необходимые параметры описаны в этой статье.

  • Строки запросов, вводимые пользователем, должны распознаваться как вопросы (что, где, когда, как).

  • Поиск документов в индексе должен содержать текст с характеристиками ответа, и этот текст должен существовать в одном из полей, перечисленных в семантической конфигурации. Например, при выполнении запроса "что такое хэш-таблица", если ни одно из полей в семантической конфигурации содержит фрагменты, включающие "Хэш-таблица ..." , то вряд ли возвращается ответ.

Примечание.

Начиная с 2021-04-30-Preview запросы на создание или обновление индекса начали создавать "semanticConfiguration" требования к указанию полей ввода, используемых в семантическом ранжировании.

Что такое семантический ответ?

Семантический ответ — это подструктура ответа семантического запроса. Он состоит из одного или более дословных фрагментов из документа поиска, который формулируется как ответ на запрос, выглядящий как вопрос. Чтобы вернуть ответ, фразы или предложения должны существовать в документе поиска, который имеет языковые характеристики ответа, и сам запрос должен быть задан в качестве вопроса.

Служба "Поиск ИИ Azure" использует модель понимания машинного чтения для распознавания и выбора оптимального ответа. Модель создает набор потенциальных ответов из доступного содержимого, и когда он достигает достаточно высокого уровня достоверности, он предлагает один в качестве ответа.

Ответы возвращаются в виде независимого объекта верхнего уровня в полезных данных ответа на запрос, который можно выбрать для отображения на страницах поиска, а также в результатах поиска. Структурно это элемент массива в ответе, состоящий из текста, ключа документа и оценки достоверности.

Сформулировать запрос REST для "ответов"

Чтобы вернуть семантический ответ, запрос должен иметь семантику "queryType", "queryLanguage""semanticConfiguration"и "answers" параметры. Указание этих параметров не гарантирует ответ, но запрос должен включать их для обработки ответов.

{
    "search": "how do clouds form",
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "semanticConfiguration": "my-semantic-config",
    "answers": "extractive|count-3",
    "captions": "extractive|highlight-true",
    "count": "true"
}
  • Строка запроса не должна иметь значение null, и ее следует сформулировать как вопрос.

  • "queryType" значение "семантика" должно иметь значение "семантика".

  • "queryLanguage"должно быть одним из значений из списка поддерживаемых языков (REST API).

  • Определяет "semanticConfiguration" , какие строковые поля предоставляют маркеры модели извлечения. Те же поля, которые создают заголовки, дают и ответы. Дополнительные сведения см. в статье "Создание семантической конфигурации ".

  • Для "answers"параметра используется "answers": "extractive"построение параметров, где возвращаемое по умолчанию число ответов — одно. Вы можете увеличить количество ответов, добавив его count , как показано в приведенном выше примере, до максимум 10. Требуется ли больше одного ответа, зависит от взаимодействия с пользователем приложения и от того, как нужно отображать результаты.

Распакуйте "ответ" из ответа

Ответы предоставляются в массиве "@search.answers" , который отображается сначала в ответе запроса. Каждый ответ в массиве включает:

  • Ключ документа
  • Текст или содержимое ответа в виде обычного текста или форматирования
  • Степень достоверности

Если ответ не определен, ответ отображается как "@search.answers": []. За массивом ответов следует массив значений, который является стандартным ответом в семантическом запросе.

При выполнении запроса "как формы облаков", в следующем примере показано ответ:

{
    "@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"
            ]
        }
    ]
}

При разработке страницы результатов поиска, включающей ответы, обязательно следует обрабатывать случаи, когда ответы не найдены.

Внутри @search.answers:

  • "ключ" — это ключ документа или идентификатор соответствия. Используя ключ документа, можно использовать API документов подстановки для получения любых или всех частей документа поиска, включаемых на страницу поиска или на страницу сведений.

  • "текст" и "выделения" предоставляют одинаковое содержимое как в виде обычного текста, так и с выделением.

    По умолчанию основные элементы имеют стиль <em>, который можно переопределить с помощью существующих параметров highlightPreTag и highlightPostTag. Как отмечалось в других местах, содержимое ответа представляет собой буквальное содержимое из документа поиска. Модель извлечения ищет характеристики ответа, чтобы найти соответствующее содержимое, но не создает новый язык в ответе.

  • "оценка" — это оценка достоверности, которая отражает силу ответа. Если в выдаче есть несколько ответов, этот показатель используется для определения порядка. Верхние ответы и верхние заголовки могут быть производными от различных документов поиска, где верхний ответ исходит из одного документа, а верхний заголовок от другого, но в целом те же документы отображаются в верхних позициях в каждом массиве.

За ответами следует массив "value" , который всегда включает оценки, заголовки и все поля, которые по умолчанию извлекаются. Если указан параметр SELECT, массив "value" ограничивается указанными полями. Дополнительные сведения см. в разделе "Настройка семантического ранджера ".

Советы по созданию высококачественных ответов

Для получения наилучших результатов следует возвращать семантические ответы на корпус документов, имеющий следующие характеристики.

  • В поле "semanticConfiguration" должны содержаться поля, которые предлагают достаточный текст, в котором, скорее всего, будет найден ответ. Поля, скорее всего, содержат ответы, должны быть перечислены сначала в разделе "приоритетыContentFields". В качестве ответа может использоваться только буквальный текст из документа.

  • Строки запроса не должны иметь значение NULL (search=*), а строка должна иметь характеристики вопроса, например "что такое" или "как", в отличие от поиска ключевых слов, состоящих из терминов или фраз произвольного порядка. Если строка запроса не представляется вопросом, обработка ответов пропускается, даже если запрос указывает "ответы" в качестве параметра запроса.

  • Семантическое извлечение и формирование сводных данных имеют ограничения на то, сколько маркеров на документ можно проанализировать своевременно. В практическом плане, если у вас есть большие документы, которые выполняются на сотнях страниц, сначала попробуйте разбить содержимое на небольшие документы.

Следующие шаги