Асинхронное использование компонентов языковой службы

Языковая служба позволяет асинхронно отправлять запросы API с помощью REST API или клиентской библиотеки. В запрос также можно включить несколько компонентов языковой службы, которые будут одновременно выполняться для ваших данных.

В настоящее время для асинхронного использования доступны следующие компоненты:

  • Связывание сущностей
  • Формирование сводных данных по документу
  • Формирование сводных данных по беседе
  • Извлечение ключевой фразы
  • Определение языка
  • Распознавание именованных сущностей (NER)
  • Обнаружение содержимого клиента
  • Анализ тональности и интеллектуальный анализ мнений
  • Анализ текста для сферы здравоохранения
  • Личные сведения (PII)

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

Отправка асинхронного задания с помощью REST API

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

  1. Добавьте документы в объект analysisInput.
  2. Добавьте в объект tasks операции, которые нужно выполнить с данными. Например, если вы хотите выполнить анализ тональности, добавьте объект SentimentAnalysisLROTask.
  3. Также при необходимости можно выполнить указанные ниже действия.
    1. Выберите конкретную версию модели для своих данных.
    2. Включите в объект дополнительные функции языковой tasks службы, которые будут одновременно выполняться с данными.

Когда текст JSON для запроса создан, добавьте ключ в заголовок Ocp-Apim-Subscription-Key. Затем отправьте запрос API в конечную точку создания задания. Пример:

POST https://your-endpoint.cognitiveservices.azure.com/language/analyze-text/jobs?api-version=2022-05-01

Успешный вызов вернет код отклика 202. Значение operation-location в заголовке ответа — это URL-адрес, который будет использоваться для получения результатов API. Это значение будет выглядеть аналогично следующему URL-адресу:

GET {Endpoint}/language/analyze-text/jobs/12345678-1234-1234-1234-12345678?api-version=2022-05-01

Чтобы получить состояние и результаты запроса, отправьте запрос GET на URL-адрес (operation-location) из заголовка в предыдущем ответе API. Не забудьте ввести ключ в качестве значения для Ocp-Apim-Subscription-Key. Ответ будет включать результаты вызова API.

Отправка асинхронных запросов API с помощью клиентской библиотеки

Для начала проверьте, установлена ли у вас клиентская библиотека для выбранного языка. Инструкции по установке клиентской библиотеки вы найдете в кратком руководстве для компонента, который нужно использовать.

Затем воспользуйтесь объектом клиента для отправки асинхронных вызовов API. Используемые вызовы методов зависят от языка. Примеры кода и справочная документация помогут вам приступить к работе.

Доступность результатов

При асинхронном использовании компонентов результаты API доступны в течение 24 часов с момента приема запроса и указываются в ответе. По истечении этого периода результаты очищаются и больше не будут доступны для извлечения.

Автоматическое распознавание языка

Начиная с версии 2022-07-01-preview REST API, вы можете запросить автоматическое определение языка в документах. Если задать для параметра language значение auto, обнаруженный код языка текста будет возвращен в качестве значения языка в ответе. Это определение языка не повлечет дополнительные расходы для ресурса Языка.

Ограничения данных

Примечание

  • Если необходимо выполнить анализ документов большего размера, чем разрешено, прежде чем отправлять их в API, текст можно разбить на фрагменты меньшего размера.
  • Документ — это одна строка текстовых символов.

В асинхронном запросе можно отправить до 125 000 символов во всех документах. Их количество подсчитывается с помощью свойства StringInfo.LengthInTextElements. Указанный лимит превышает ограничения для синхронных запросов, что позволяет улучшить пропускную способность.

Если в каком-то из документов запроса количество символов превышает допустимое, API отклонит весь этот запрос и отобразится ошибка 400 bad request.

См. также