Использовать классификаторы по промту на базе YandexGPT
Сервис Yandex Foundation Models предоставляет классификаторы по промту на базе YandexGPT двух видов: Zero-shot и Few-shot. Чтобы направить запрос к классификатору по промту, используйте метод fewShotClassify Text Classification API.
Перед началом работы
Получите данные для аутентификации в API, как описано в разделе Аутентификация в API Yandex Foundation Models.
Отправьте запрос к классификатору
Чтобы отправить запрос к классификатору:
-
Создайте файл с телом запроса (например,
body.json
):Классификатор Zero-shotКлассификатор Few-shot{ "modelUri": "cls://<идентификатор_каталога>/yandexgpt/latest", "text": "5:0", "task_description": "Определи категорию статьи по ее заголовку", "labels": [ "культура", "технологии", "спорт" ] }
Где:
-
modelUri
— идентификатор модели, которая будет использоваться для классификации сообщения. Параметр содержит идентификатор каталога Yandex Cloud. -
text
— текстовое содержимое сообщения. -
taskDescription
— текстовое описание задания для классификатора. -
labels
— массив классов.Задавайте осмысленные названия для классов
labels
: это обязательное условие получения корректных результатов классификации. Например: вместо классовхм
ифз
используйте классыхимия
ифизика
.
{ "modelUri": "cls://<идентификатор_каталога>/yandexgpt/latest", "text": "переведи на английский \"какая погода в лондоне?\"", "task_description": "определи тип интента", "labels": [ "перевод", "будильник", "погода" ], "samples": [ { "text": "поставь будильник", "label": "будильник" }, { "text": "погода на завтра", "label": "погода" }, { "text": "переведи фразу \"поставь будильник\"", "label": "перевод" } ] }
Где:
-
modelUri
— идентификатор модели, которая будет использоваться для классификации сообщения. Параметр содержит идентификатор каталога Yandex Cloud. -
text
— текстовое содержимое сообщения. -
taskDescription
— текстовое описание задания для классификатора. -
labels
— массив классов.Задавайте осмысленные названия для классов
labels
: это обязательное условие получения корректных результатов классификации. Например: вместо классовхм
ифз
используйте классыхимия
ифизика
. -
samples
— массив с примерами запросов для классов, заданных в полеlabels
. Примеры запросов передаются в виде объектов, каждый из которых содержит один образец текстового запроса и класс, к которому такой запрос следует относить.
-
-
Отправьте запрос к классификатору, выполнив команду:
BashЧтобы воспользоваться примерами, установите cURL
.Пример ниже разработан для выполнения в операционных системах MacOS и Linux. Чтобы выполнить его в системе Windows, ознакомьтесь с особенностями работы с Bash в Microsoft Windows.
export IAM_TOKEN=<IAM-токен> curl \ --request POST \ --header "Authorization: Bearer ${IAM_TOKEN}" \ --data "@<путь_к_файлу_с_телом_запроса>" \ "https://llm.api.cloud.yandex.net/foundationModels/v1/fewShotTextClassification"
Примечание
Эндпоинт
https://llm.api.cloud.yandex.net/foundationModels/v1/fewShotTextClassification
работает только с классификаторами по промту. Для дообученных классификаторов используйтеhttps://llm.api.cloud.yandex.net:443/foundationModels/v1/textClassification
.В ответе сервис вернет результаты классификации с определенными значениями вероятности (
confidence
) отнесения текста запроса к каждому из классов:Классификатор Zero-shotКлассификатор Few-shot{ "predictions": [ { "label": "культура", "confidence": 2.2111835562554916e-7 }, { "label": "технологии", "confidence": 0.0003487042267806828 }, { "label": "спорт", "confidence": 0.9996510744094849 } ], "modelVersion": "07.03.2024" }
{ "predictions": [ { "label": "перевод", "confidence": 0.9357050657272339 }, { "label": "будильник", "confidence": 0.00061939493753016 }, { "label": "погода", "confidence": 0.06367553025484085 } ], "modelVersion": "07.03.2024" }
Сумма значений полей вероятности (
confidence
) для всех классов всегда равна1
.