Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Foundation Models
    • Все инструкции
    • Отключить логирование запросов
    • Получить API-ключ
    • Пакетная обработка данных
      • Использовать классификаторы по промту
      • Использовать дообученные классификаторы
  • Yandex Cloud ML SDK
  • Совместимость с OpenAI
  • Управление доступом
  • Правила тарификации
  • Публичные материалы
  • История изменений

В этой статье:

  • Перед началом работы
  • Отправьте запрос к классификатору
  1. Пошаговые инструкции
  2. Классификация
  3. Использовать классификаторы по промту

Использовать классификаторы по промту на базе YandexGPT

Статья создана
Yandex Cloud
Обновлена 18 марта 2025 г.
  • Перед началом работы
  • Отправьте запрос к классификатору

Сервис Yandex Foundation Models предоставляет классификаторы по промту на базе YandexGPT двух видов: Zero-shot и Few-shot. Чтобы направить запрос к классификатору по промту, используйте метод fewShotClassify Text Classification API или Yandex Cloud ML SDK.

Перед началом работыПеред началом работы

Чтобы воспользоваться примерами:

SDK
cURL
  1. Создайте сервисный аккаунт и назначьте ему роль ai.languageModels.user.

  2. Получите и сохраните API-ключ сервисного аккаунта.

    В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.

  3. С помощью менеджера пакетов pip установите библиотеку ML SDK:

    pip install yandex-cloud-ml-sdk
    
  1. Получите данные для аутентификации в API, как описано в разделе Аутентификация в API Yandex Foundation Models.

  2. Чтобы воспользоваться примерами, установите cURL.

Отправьте запрос к классификаторуОтправьте запрос к классификатору

SDK
cURL

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

  • Пример 1: запрос к классификатору Zero-shot.
  • Пример 2: запрос к классификатору Few-shot.
  1. Создайте файл classify.py и добавьте в него следующий код:

    #!/usr/bin/env python3
    # pylint: disable=duplicate-code
    
    from __future__ import annotations
    from yandex_cloud_ml_sdk import YCloudML
    
    request_text = 'переведи на английский "какая погода в лондоне?"'
    
    
    def main():
        sdk = YCloudML(
            folder_id="<идентификатор_каталога>",
            auth="<API-ключ>",
        )
    
        # Sample 1: Zero-shot classification
        model = sdk.models.text_classifiers("yandexgpt").configure(
            task_description="определи тип интента",
            labels=["перевод", "будильник", "погода"],
        )
    
        result = model.run(request_text)
    
        print("Zero-shot classification:")
    
        for prediction in result:
            print(prediction)
    
        # Sample 2: Few-shot classification
        model = model.configure(
            task_description="определи тип интента",
            labels=["перевод", "будильник", "погода"],
            samples=[
                {"text": "поставь будильник", "label": "будильник"},
                {"text": "погода на завтра", "label": "погода"},
                {"text": 'переведи фразу "поставь будильник"', "label": "перевод"},
            ],
        )
    
        result = model.run(request_text)
    
        print("Few-shot classification:")
    
        for prediction in result:
            print(prediction)
    
    
    if __name__ == "__main__":
        main()
    

    Где:

    • request_text — текстовое содержимое сообщения.

      В качестве входных данных для запроса Yandex Cloud ML SDK может принимать строку, словарь, объект класса TextMessage или массив, содержащий любое сочетание указанных типов данных. Подробнее см. в разделе Использование Yandex Cloud ML SDK.

    • <идентификатор_каталога> — идентификатор каталога, в котором создан сервисный аккаунт.

    • <API-ключ> — API-ключ сервисного аккаунта, полученный ранее и необходимый для аутентификации в API.

      В примерах используется аутентификация с помощью API-ключа. Yandex Cloud ML SDK также поддерживает аутентификацию с помощью IAM-токена и OAuth-токена. Подробнее см. в разделе Аутентификация в Yandex Cloud ML SDK.

    Подробнее о том, как обращаться к моделям классификаторов, см. в разделе Обращение к моделям.

  2. Выполните созданный файл:

    python3 classify.py
    

    В ответе сервис вернет результаты классификации для обоих примеров с определенными значениями вероятности (confidence) отнесения текста запроса к каждому из классов:

    TextClassificationLabel(label='перевод', confidence=0.9999947046656092)
    TextClassificationLabel(label='будильник', confidence=6.01089130732152e-09)
    TextClassificationLabel(label='погода', confidence=4.289328794822987e-06)
    Few-shot classification:
    TextClassificationLabel(label='перевод', confidence=0.9999989886405171)
    TextClassificationLabel(label='будильник', confidence=4.4148929001561725e-09)
    TextClassificationLabel(label='погода', confidence=6.945601458737463e-09)
    

Пример ниже разработан для выполнения в операционных системах MacOS и Linux. Чтобы выполнить его в системе Windows, ознакомьтесь с особенностями работы с Bash в Microsoft Windows.

  1. Создайте файл с телом запроса (например, body.json):

    Классификатор Zero-shot
    {
      "modelUri": "cls://<идентификатор_каталога>/yandexgpt/latest",
      "text": "5:0",
      "task_description": "Определи категорию статьи по ее заголовку",
      "labels": [
        "культура",
        "технологии",
        "спорт"
      ]
    }
    

    Где:

    • modelUri — идентификатор модели, которая будет использоваться для классификации сообщения. Параметр содержит идентификатор каталога Yandex Cloud.

    • text — текстовое содержимое сообщения.

    • taskDescription — текстовое описание задания для классификатора.

    • labels — массив классов.

      Задавайте осмысленные названия для классов labels: это обязательное условие получения корректных результатов классификации. Например: вместо классов хм и фз используйте классы химия и физика.

    Классификатор Few-shot
    {
      "modelUri": "cls://<идентификатор_каталога>/yandexgpt/latest",
      "text": "переведи на английский \"какая погода в лондоне?\"",
      "task_description": "определи тип интента",
      "labels": [
        "перевод",
        "будильник",
        "погода"
      ],
      "samples": [
        {
          "text": "поставь будильник",
          "label": "будильник"
        },
        {
          "text": "погода на завтра",
          "label": "погода"
        },
        {
          "text": "переведи фразу \"поставь будильник\"",
          "label": "перевод"
        }
      ]
    }
    

    Где:

    • modelUri — идентификатор модели, которая будет использоваться для классификации сообщения. Параметр содержит идентификатор каталога Yandex Cloud.

    • text — текстовое содержимое сообщения.

    • taskDescription — текстовое описание задания для классификатора.

    • labels — массив классов.

      Задавайте осмысленные названия для классов labels: это обязательное условие получения корректных результатов классификации. Например: вместо классов хм и фз используйте классы химия и физика.

    • samples — массив с примерами запросов для классов, заданных в поле labels. Примеры запросов передаются в виде объектов, каждый из которых содержит один образец текстового запроса и класс, к которому такой запрос следует относить.

  2. Отправьте запрос к классификатору, выполнив команду:

    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
    {
      "predictions": [
        {
          "label": "культура",
          "confidence": 2.2111835562554916e-7
        },
        {
          "label": "технологии",
          "confidence": 0.0003487042267806828
        },
        {
          "label": "спорт",
          "confidence": 0.9996510744094849
        }
      ],
      "modelVersion": "07.03.2024"
    }
    
    Классификатор Few-shot
    {
      "predictions": [
        {
          "label": "перевод",
          "confidence": 0.9357050657272339
        },
        {
          "label": "будильник",
          "confidence": 0.00061939493753016
        },
        {
          "label": "погода",
          "confidence": 0.06367553025484085
        }
      ],
      "modelVersion": "07.03.2024"
    }
    

Сумма значений полей вероятности (confidence) для всех классов всегда равна 1.

См. такжеСм. также

  • Классификаторы на базе YandexGPT
  • Примеры работы с ML SDK на GitHub

Была ли статья полезна?

Предыдущая
Пакетная обработка данных
Следующая
Использовать дообученные классификаторы
Проект Яндекса
© 2025 ООО «Яндекс.Облако»