Создать запрос NLP
Last updated
Last updated
NLP-запрос — это задача по обработке текста на естественном языке (Natural Language Processing, NLP), которую выполняет большая языковая модель в AI Server. Ответ модели зависит от выбранного навыка:
Генерация — модель создает текст на основе начального ввода или заданного контекста.
Суммаризация — модель кратко излагает текст с ацентом на указанные темы.
Экстракция — модель извлекает из текста информацию по заданным ключам поиска.
Классификация — модель отвечает на запрос, исходя из заранее определенного списка возможных ответов.
Элемент Создать запрос NLP позволяет отправить запрос к LLM-модели и получить идентификатор запроса, который впоследствии можно использовать для просмотра ответа с помощью элемента Получить результат NLP.
Установите в Студии библиотеку Primo.AI.Server.
Найдите на панели элементов группу AI > NLP и перетащите элемент Создать запрос NLP в процесс.
Настройте параметры подключения к Server AI в контейнере Сервер Primo.AI.
Убедитесь, что на стороне Server AI создан проект, в котором запущена модель с подходящим навыком и ключом маршрутизации.
Обязательные свойства отмечены символом *
. Описание общих свойств см. в этом разделе.
Обработка:
Текст* [String] — входной текст для обработки LLM-моделью. Пример: "Текст договора"
.
Ключи ответа [List<String>] — проивольные ключи, которые помогут модели сформировать наиболее релевантный ответ. Ключи ответа зависят от NLP-навыка:
Для навыка экстракции укажите ключи поиска, по которым модель будет извлекать информацию из входного текста. Пример: new List<string>(){"дата договора", "стороны"}
.
Для навыка генерации можно не указывать ключи или передать в них структурные элементы ответа. Пример для генерации вакансии: new List<string>(){"Обязанности", "Требования", "Будет плюсом", "Мы предлагаем"}
.
Для навыка суммаризации укажите основные темы, которые необходимо передать при кратком изложении текста. Пример: new List<string>(){"основная идея", "факты", "выводы"}
.
Для навыка классификации укажите классы, которые могут быть присвоены тексту. Пример классификации писем: new List<string>(){"заявка", "спам"}
.
Длина ответа* [Int32] — максимальная длина ответа модели, которая измеряется в токенах. Для русского языка 1 слово ~ 1.5 токена. По умолчанию 256
.
Ключ маршрутизации* [String] — ключ маршрутизации запроса. Каждый ключ ассоциирован с навыком NLP-модели и должен существовать в Server AI. Пример ключа маршрутизации для навыка экстракции: "nlp-extraction"
.
Контекст [String] — путь к файлу с контекстом (.json
) на локальном диске. Файл контекста определяет поведение модели относительно запросов. По умолчанию с каждым ключом маршрутизации уже ассоциирован файл контекста на сервере. Используйте это свойство, если хотите заменить данный файл своим.
Температура* [Double] — управляет уровнем случайности в ответах модели. При низкой температуре модель склоняется к выбору наиболее вероятных текстовых единиц, что приводит к более логичным и предсказуемым ответам. При высокой температуре модель генерирует более разнообразные ответы. По умолчанию 0.1
. В качестве максимального значения рекомендуется указывать не более 1.0
.
Min p* [Double] — минимальный порог вероятности для выбора токенов в ответе, где 0.0
— любой токен, 1.0
— самый вероятный. Под токеном подразумевается единица текста: слово, символ и т.д. Чем выше порог, тем наиболее вероятные токены модель возьмет в ответ, исключая из выборки редкие или неуместные токены. По умолчанию 0.1
.
Свойства Температура и Min p дополняют друг друга. Сначала отбирается диапазон вероятных токенов в соответствии с температурой, а затем токены дополнительно фильтруются по минимальному порогу. Таким образом, если вы хотите:
максимально увеличить вариативность ответа, то указывайте температуру 1.0, а min p — 0.0.
максимально снизить вариативность — указывайте температуру 0.1, а min_p 1.0.
Наиболее оптимальные значения — 0.1 для обоих свойств.
Вывод:
Результат [System.Guid] — название переменной, в которой сохранится идентификатор запроса.