Блок: Старт

Данный блок всегда начинает нашу цепочку обработки данных в рамках создаваемого бизнес процесса

Описание

  • Описание - указываем какую задачу выполняет данный блок, с какой логики начинается бинес-процесс

Количество символов для подгрузки истории

  • Параметр "Количество символов для подгрузки истории" отвечает за подгрузку ранее полученной информации от пользователя, чтобы GPT-модель могла оперировать контекстом прошлых коммуникаций в рамках текущего сценария.


    Пример использования:

    • Пользователь ранее сообщил важные данные, которые связаны с текущим сценарием (например, имя, детали заказа или другие ключевые сведения).

    • Если эти данные входят в указанные 2048 символов истории, они автоматически подгружаются, и их повторный запрос не требуется.


    Регулировка символов:

    • Вы можете задать любое значение для объёма подгружаемой истории, но важно учитывать, что:

      • Больше символов — больше контекста, но выше расход токенов.

      • Меньше символов — ниже расход токенов, но меньше объём доступного контекста.


    Влияние на бизнес-процесс:

    • Подгрузка релевантной информации сокращает время на повторные запросы данных.

    • Учитывая лимит символов, вы можете оптимизировать работу модели, выбирая наиболее важный объём истории для подгрузки.


    Зависимость от GPT-модели: Количество символов влияет на количество токенов, используемых GPT-моделью. Это напрямую связано с затратами на обработку каждого запроса.

    Рекомендации:

    • Установить оптимальный лимит, достаточный для обработки критически важного контекста.

    • Оценивать стоимость обработки и необходимость в детализации истории для каждого сценария.

Системный промт

  • Системный промт — это инструкция для чат-бота, задающая его роль и поведение в процессе взаимодействия с пользователем. Промт определяет, как бот должен реагировать на сообщения и выполнять задачи.

  • Элементы системного промта:

    • Роль бота:

      • Задаёт, кем является бот в рамках сценария.

        • Пример: "Ты — чат-бот, который обрабатывает запросы, связанные с машинами."

        • Основная задача:

          • Описывает ключевую цель взаимодействия.

          • Пример: "На любое сообщение пользователя всегда возвращай вызов одной из заранее определённых функций."

        • Контекст работы:

          • Уточняет, как бот должен интерпретировать сообщения пользователя.

          • Пример: "Обрабатывай запросы и используй вызовы функций для выполнения задач."


    Пример использования:

    • Сценарий: Бот работает в техподдержке и обрабатывает запросы на регистрацию.

    • Промт: "Ты — бот, который регистрирует классы и обрабатывает запросы пользователей. Твоя задача — анализировать сообщения и возвращать подходящий ответ или функцию."


    Зачем нужен:

    • Для чёткого определения роли и задач бота.

    • Чтобы бот корректно реагировал на сообщения, следуя заданным инструкциям.

    • Для ограничения действий бота в рамках заданного сценария.


    Итог: Системный промт — ключевой элемент, определяющий поведение бота. Он помогает установить роль, задачи и контекст для правильной работы в сценарии.

    Вариант примера №1

    Вариант примера №2

    Пример системного промта №2:

    Роль: Ты — чат-бот, который обрабатывает запросы, связанные с занятиями и записями на занятия. Твоя задача — на любое сообщение пользователя всегда возвращать вызов одной из заранее определённых функций.

    Правила:

    1. IMPORTANT: Параметр "phone" является необязательным. Никогда не предлагайте пользователю ввести "phone"

    2. Вам нужно помнить, что сегодняшняя дата - ${today}, а день - ${day}.

    3. Не задавай дополнительных вопросов пользователю. Всегда сразу выбирай и вызывай соответствующую функцию.

    4. Основывайся на предоставленных функциях, всегда вызывай одну из них, в зависимости от запроса пользователя.

    5. Если сообщение пользователя не содержит информации, связанной с занятиями, вызывай функцию anyQuestion.

    6. Используй доступные параметры, если они указаны в запросе пользователя. Если каких-то параметров не хватает, всё равно вызывай функцию с теми данными, что есть.

  • Использование нескольких системных промтов

    Особенность работы: СВсе системные промпты рассматриваются как совокупный контекст. Если они не противоречат друг другу, модель учитывает их как единый набор инструкций.

    Если системные промпты противоречат друг другу (например, один требует формальности, а другой — неформальности), модель пытается найти компромисс. Если компромисс невозможен, приоритет отдается более конкретным или последним инструкциям.

    Системные промпты могут обновляться в процессе диалога. Если в какой-то момент контекст меняется, модель будет следовать последним указаниям.ция.

Функции с запрашиваемыми параметрами/переменными

  • Функции — это дополнительные инструменты, которые можно использовать в сценарии для обработки запросов пользователя. Они позволяют динамически обрабатывать входящие данные, уточнять недостающую информацию "параметры/переменные" и выстраивать взаимодействие с внешними API или JSON.

Этапы работы с функциями

Добавление функции

  • Каждая функция имеет название и описание, которые объясняют её назначение.

  • Пример:

    • Название: cars

    • Описание: "Когда пользователь хочет узнать о наличии машин, следует вызвать эту функцию."

Определение переменных

  • Для каждой функции задаётся список переменных, с которыми она работает.

  • Переменные бывают:

    • Обязательные: данные, без которых функция не может выполнить запрос.

    • Необязательные: данные, которые могут быть дополнены позже.

  • Пример:

    • Переменные: модель, минимальная цена, максимальная цена, цвет

Как происходит обработка запроса

  • Если пользователь предоставил все необходимые данные (например, "Мне нужна белая Лада Веста"), каждая из сущностей совпадающая с указанным списком переменных сохраняется как переменные.

Использование нескольких функций

  • Добавление второй функции необходимо для обработки случаев, которые не соответствуют основной логике первой функции. Это позволяет расширить сценарий и обеспечить корректное завершение работы или передачу запроса в зависимости от ситуации.


    Цели добавления второй функции

    1. Обработка исключений:

      • Если запрос пользователя не соответствует основной функции, вторая функция определяет, как с ним работать.

      • Это предотвращает зависание сценария и обеспечивает корректное завершение.

    2. Динамическая маршрутизация:

      • Вторая функция позволяет перенаправить запрос к другому подразделению или обработчику, если это необходимо.

    3. Завершение сценария:

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


    Примеры использования второй функции

    Пример 1: Передача запроса

    • Ситуация: Основная функция связана с автомобилями Лада, но пользователь запрашивает другую марку.

    • Действие:

      • Вторая функция перенаправляет запрос в подразделение, ответственное за обработку других марок.

      • Пользователь получает уведомление о передаче запроса: "Ваш запрос передан в отдел, работающий с автомобилями Тойота."

    Пример 2: Завершение сценария

    • Ситуация: Компания работает только с Ладой, и пользователь спрашивает про другую марку.

    • Действие:

      • Вторая функция завершает сценарий с уведомлением: "Мы работаем только с автомобилями Лада. Спасибо за обращение."


    Преимущества добавления второй функции

    1. Гибкость сценариев: Возможность адаптировать сценарий для разных типов запросов.

    2. Повышение пользовательского опыта: Чёткие ответы и маршрутизация запросов вместо игнорирования.

    3. Эффективность обработки: Разграничение задач между функциями упрощает логику и ускоряет выполнение.

Вариант примера №1

Вариант примера №2

Last updated