Блок Генерация ответа предназначен для генерации ответа пользователю чат-бота через GigaChat.
Блок выполняет запрос в GigaChat. По параметрам, заданным в настройках блока, выполняется генерация ответа в GigaChat. После получения ответа выполняется переход по сценарию.
В настоящее время возможна генерация ответа только для проектов на русском языке.
Как подключить блок в сценарий
Для подключения блока в сценарий:
Откройте проект сценария Graph для вашего чат-бота.
Выберите в сценарии шаг, на котором вы хотите добавить обращение в GigaChat.
Добавьте блок Генерация ответа.
Заполните параметры блока.
Сохраните и соберите сценарий.
С рекомендациями по созданию промптов вы можете ознакомиться в разделе Создание промптов.
Параметры блока
Параметр | Описание | Обязательность | Пример |
---|---|---|---|
Системный промпт | Текстовое поле, многострочное. Не более 1500 символов. Позволяет задать промпт для настройки контекста обработки основного промпта. Поддерживает использование переменных сценария | Нет | "Отвечай в стиле Винни Пуха" |
Запрос | Текстовое поле, многострочное. Не более 1500 символов. Текст вопроса к GigaChat. Поддерживает использование переменных сценария | Да | $queryText содержит вопрос пользователя из чата с ботом, например, "Где купить гречишный мед?". В блоке можно вручную заполнить переменную с историей, указав ее в нужном месте текста промпта |
Ответ от GigaChat | Текстовое поле для указания названия переменной, в которую должен сохраниться ответ от GigaChat. Не более 30 символов | Да | |
Выводить результат пользователю | Отметка об отправке сообщения пользовалтелю | Да | true : отправлять сообщение клиенту бота при выполнении блока, в случае успешного выполнения и получения ответа от GigaChat false : не отправлять сообщение. Результат будет сохранен в указанную переменную |
Учитывать контекст диалога | Отметка о включении отправки истории переписки | Да | true : история переписки отправляется false : история переписки не добавляется в запрос в GigaChat. Отправка истории отключена вручную |
Выходы из блока в сценарии
- Успешно - успешное выполнение запроса в GigaChat и получение ответа
- Ошибка - при выполнении запроса в GigaChat возникла ошибка
- Сработал цензор - при срабатывании цензора в ходе обработки, когда GigaChat не отвечает на вопрос. Такой переход отображается только в случае, если в настройках блока включена настройка Включить цензор
Обратите внимание: клиенту не будут показаны дополнительные сообщения или уведомления пока не будет получен ответ от GigaChat.
Обработка ошибок
В рамках выполнения блока может возникнуть ошибки по различным причинам. При возникновении ошибки выход из блока произойдет по переходу Ошибка. Для подробной обработки ошибки необходимо сохранять ответ со статусом ошибки в системные переменные:
Название | Описание | Комментарий |
---|---|---|
$gigaChatResponseStatus | Код ошибки, возникшей при выполнении запроса | Пример значения: 408 (Таймаут при выполнении запроса) В сценарии можно использовать в блоке Условия, добавив кастомное условие, например, $gigaChatResponseStatus==408 и сделать переход из блока для случаев таймаута |
$gigaChatResponseError | Текст ошибки, возникшей при выполнении запроса | Пример значения: Read timed out |
Список возвращаемых статусов ошибок
Кейс | Код ошибки | Описание ошибки |
---|---|---|
Таймаут выполнения запроса (выполнение запроса не выполнено в указанный таймаут) | 408 | Read timed out |
Превышены лимиты по размеру полей Запрос или Системный промпт | 413 | Content is too large |
Ошибка при выполнении запроса в GigaChat | 500 | Request failed |
Достигнуто максимальное количество обращений на одного клиента | 503.1 | The limit of requests for the user per day |
Достигнуто максимальное количество обращений для тестового виджета | 503.2 | The limit of requests for test per project |
Запросы ограничены для текущей интеграции | 503.3 | Restricted for the channelType |
При совершении более 50 запросов в течение 10 минут будет произведена блокировка на 10 минут, по истечению которой вы сможете продолжить работу. Максимальное количество обращений от одного клиента - 500.
Ниже вы можете найти примеры использования блока с реальными промптами. Вы можете классифицировать сообщение пользователя по нескольким категориям.
Пример классификации сообщений
Паспортный стол Любое обращение, в котором упоминается паспортный стол или регистрация человека по месту его нахождения. В обращении используются ключевые слова:
паспортный стол
,регистрация граждан по месту жительства
,регистрация граждан по месту пребывания
,снятие с регистрационного учета через портал Госуслуги
,снятие с регистрационного учета через МФЦ
.Получить ключ Любое обращение, в котором спрашивают про ключ или ключи. В обращении используются ключевые слова:
получить ключи от домофона
,получить метку
,получить ключи от подъезда
.Регистрация в мобильном приложении Любое обращение, в котором спрашивают про регистрацию в мобильном приложении. В обращении используются ключевые слова:
зарегистрироваться в мобильном приложении
,регистрация в мобильном приложении
.Добавление объекта в мобильном приложении Любое обращение, содержащее запросы:
добавить объект в мобильном приложении
,добавить в мобильном приложении
.Контакты Любое обращение, содержащее запросы:
номер телефона
,контакты
,номер телефона управляющей компании
,телефон единого контакт-центра
.Показания счетчика Любое обращение, содержащее запросы:
как передать показания счетчика
,кому передать показания
,показания приборов учетов
.Отключение Любое обращение, в котором клиент спрашивает про отключение пожарной сигнализации или иного ресурса в квартире при выполнении любых работ.
Пример промпта
В ответе верни только название категории к которой относится сообщение пользователя.
Если обращение не соответствует никакой категории, ответь "Нет категории".
Если ты не понял вопрос, ответь "Я не понял".
Если пользователь задал вопрос, не отвечай на него, а верни категорию, к которой этот вопрос относится.