Блок: Старт
Last updated
Last updated
Данный блок всегда начинает нашу цепочку обработки данных в рамках создаваемого бизнес процесса
Описание - указываем какую задачу выполняет данный блок, с какой логики начинается бинес-процесс
Параметр "Количество символов для подгрузки истории" отвечает за подгрузку ранее полученной информации от пользователя, чтобы GPT-модель могла оперировать контекстом прошлых коммуникаций в рамках текущего сценария.
Пример использования:
Пользователь ранее сообщил важные данные, которые связаны с текущим сценарием (например, имя, детали заказа или другие ключевые сведения).
Если эти данные входят в указанные 2048 символов истории, они автоматически подгружаются, и их повторный запрос не требуется.
Регулировка символов:
Вы можете задать любое значение для объёма подгружаемой истории, но важно учитывать, что:
Больше символов — больше контекста, но выше расход токенов.
Меньше символов — ниже расход токенов, но меньше объём доступного контекста.
Влияние на бизнес-процесс:
Подгрузка релевантной информации сокращает время на повторные запросы данных.
Учитывая лимит символов, вы можете оптимизировать работу модели, выбирая наиболее важный объём истории для подгрузки.
Зависимость от GPT-модели: Количество символов влияет на количество токенов, используемых GPT-моделью. Это напрямую связано с затратами на обработку каждого запроса.
Рекомендации:
Установить оптимальный лимит, достаточный для обработки критически важного контекста.
Оценивать стоимость обработки и необходимость в детализации истории для каждого сценария.
Системный промт — это инструкция для чат-бота, задающая его роль и поведение в процессе взаимодействия с пользователем. Промт определяет, как бот должен реагировать на сообщения и выполнять задачи.
Элементы системного промта:
Роль бота:
Задаёт, кем является бот в рамках сценария.
Пример: "Ты — чат-бот, который обрабатывает запросы, связанные с машинами."
Основная задача:
Описывает ключевую цель взаимодействия.
Пример: "На любое сообщение пользователя всегда возвращай вызов одной из заранее определённых функций."
Контекст работы:
Уточняет, как бот должен интерпретировать сообщения пользователя.
Пример: "Обрабатывай запросы и используй вызовы функций для выполнения задач."
Пример использования:
Сценарий: Бот работает в техподдержке и обрабатывает запросы на регистрацию.
Промт: "Ты — бот, который регистрирует классы и обрабатывает запросы пользователей. Твоя задача — анализировать сообщения и возвращать подходящий ответ или функцию."
Зачем нужен:
Для чёткого определения роли и задач бота.
Чтобы бот корректно реагировал на сообщения, следуя заданным инструкциям.
Для ограничения действий бота в рамках заданного сценария.
Итог: Системный промт — ключевой элемент, определяющий поведение бота. Он помогает установить роль, задачи и контекст для правильной работы в сценарии.
Вариант примера №1
Вариант примера №2
Пример системного промта №2:
Роль: Ты — чат-бот, который обрабатывает запросы, связанные с занятиями и записями на занятия. Твоя задача — на любое сообщение пользователя всегда возвращать вызов одной из заранее определённых функций.
Правила:
IMPORTANT: Параметр "phone" является необязательным. Никогда не предлагайте пользователю ввести "phone"
Вам нужно помнить, что сегодняшняя дата - ${today}, а день - ${day}.
Не задавай дополнительных вопросов пользователю. Всегда сразу выбирай и вызывай соответствующую функцию.
Основывайся на предоставленных функциях, всегда вызывай одну из них, в зависимости от запроса пользователя.
Если сообщение пользователя не содержит информации, связанной с занятиями, вызывай функцию anyQuestion.
Используй доступные параметры, если они указаны в запросе пользователя. Если каких-то параметров не хватает, всё равно вызывай функцию с теми данными, что есть.
Использование нескольких системных промтов
Особенность работы: СВсе системные промпты рассматриваются как совокупный контекст. Если они не противоречат друг другу, модель учитывает их как единый набор инструкций.
Если системные промпты противоречат друг другу (например, один требует формальности, а другой — неформальности), модель пытается найти компромисс. Если компромисс невозможен, приоритет отдается более конкретным или последним инструкциям.
Системные промпты могут обновляться в процессе диалога. Если в какой-то момент контекст меняется, модель будет следовать последним указаниям.ция.
Функции — это дополнительные инструменты, которые можно использовать в сценарии для обработки запросов пользователя. Они позволяют динамически обрабатывать входящие данные, уточнять недостающую информацию "параметры/переменные" и выстраивать взаимодействие с внешними API или JSON.
Каждая функция имеет название и описание, которые объясняют её назначение.
Пример:
Название: cars
Описание: "Когда пользователь хочет узнать о наличии машин, следует вызвать эту функцию."
Для каждой функции задаётся список переменных, с которыми она работает.
Переменные бывают:
Обязательные: данные, без которых функция не может выполнить запрос.
Необязательные: данные, которые могут быть дополнены позже.
Пример:
Переменные: модель
, минимальная цена
, максимальная цена
, цвет
Если пользователь предоставил все необходимые данные (например, "Мне нужна белая Лада Веста"), каждая из сущностей совпадающая с указанным списком переменных сохраняется как переменные.
Добавление второй функции необходимо для обработки случаев, которые не соответствуют основной логике первой функции. Это позволяет расширить сценарий и обеспечить корректное завершение работы или передачу запроса в зависимости от ситуации.
Обработка исключений:
Если запрос пользователя не соответствует основной функции, вторая функция определяет, как с ним работать.
Это предотвращает зависание сценария и обеспечивает корректное завершение.
Динамическая маршрутизация:
Вторая функция позволяет перенаправить запрос к другому подразделению или обработчику, если это необходимо.
Завершение сценария:
Когда запрос не имеет отношения к основной функции, сценарий можно завершить с уведомлением пользователя, чтобы не оставлять запрос без ответа.
Пример 1: Передача запроса
Ситуация: Основная функция связана с автомобилями Лада, но пользователь запрашивает другую марку.
Действие:
Вторая функция перенаправляет запрос в подразделение, ответственное за обработку других марок.
Пользователь получает уведомление о передаче запроса: "Ваш запрос передан в отдел, работающий с автомобилями Тойота."
Пример 2: Завершение сценария
Ситуация: Компания работает только с Ладой, и пользователь спрашивает про другую марку.
Действие:
Вторая функция завершает сценарий с уведомлением: "Мы работаем только с автомобилями Лада. Спасибо за обращение."
Гибкость сценариев: Возможность адаптировать сценарий для разных типов запросов.
Повышение пользовательского опыта: Чёткие ответы и маршрутизация запросов вместо игнорирования.
Эффективность обработки: Разграничение задач между функциями упрощает логику и ускоряет выполнение.
Вариант примера №1
Вариант примера №2