ym88659208ym87991671
GigaChat для чат-ботов | Документация для разработчиков

Генерируем ответ с помощью GigaChat

Обновлено 9 декабря 2024

Блок Генерация ответа предназначен для генерации ответа пользователю чат-бота через GigaChat.

Блок выполняет запрос в GigaChat. По параметрам, заданным в настройках блока, выполняется генерация ответа в GigaChat. После получения ответа выполняется переход по сценарию.

В настоящее время возможна генерация ответа только для проектов на русском языке.

Как подключить блок в сценарий

Для подключения блока в сценарий:

  1. Откройте проект сценария Graph для вашего чат-бота.

  2. Выберите в сценарии шаг, на котором вы хотите добавить обращение в GigaChat.

  3. Добавьте блок Генерация ответа.

  4. Заполните параметры блока.

  5. Сохраните и соберите сценарий.

С рекомендациями по созданию промптов вы можете ознакомиться в разделе Создание промптов.

Параметры блока

ПараметрОписаниеОбязательностьПример
Системный промптТекстовое поле, многострочное. Не более 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

Список возвращаемых статусов ошибок

КейсКод ошибкиОписание ошибки
Таймаут выполнения запроса (выполнение запроса не выполнено в указанный таймаут)408Read timed out
Превышены лимиты по размеру полей Запрос или Системный промпт413Content is too large
Ошибка при выполнении запроса в GigaChat500Request failed
Достигнуто максимальное количество обращений на одного клиента503.1The limit of requests for the user per day
Достигнуто максимальное количество обращений для тестового виджета503.2The limit of requests for test per project
Запросы ограничены для текущей интеграции503.3Restricted for the channelType

При совершении более 50 запросов в течение 10 минут будет произведена блокировка на 10 минут, по истечению которой вы сможете продолжить работу. Максимальное количество обращений от одного клиента - 500.

Ниже вы можете найти примеры использования блока с реальными промптами. Вы можете классифицировать сообщение пользователя по нескольким категориям.

Пример классификации сообщений

  • Паспортный стол Любое обращение, в котором упоминается паспортный стол или регистрация человека по месту его нахождения. В обращении используются ключевые слова: паспортный стол, регистрация граждан по месту жительства, регистрация граждан по месту пребывания, снятие с регистрационного учета через портал Госуслуги, снятие с регистрационного учета через МФЦ.

  • Получить ключ Любое обращение, в котором спрашивают про ключ или ключи. В обращении используются ключевые слова: получить ключи от домофона, получить метку, получить ключи от подъезда.

  • Регистрация в мобильном приложении Любое обращение, в котором спрашивают про регистрацию в мобильном приложении. В обращении используются ключевые слова: зарегистрироваться в мобильном приложении, регистрация в мобильном приложении.

  • Добавление объекта в мобильном приложении Любое обращение, содержащее запросы: добавить объект в мобильном приложении, добавить в мобильном приложении.

  • Контакты Любое обращение, содержащее запросы: номер телефона, контакты, номер телефона управляющей компании, телефон единого контакт-центра.

  • Показания счетчика Любое обращение, содержащее запросы: как передать показания счетчика, кому передать показания, показания приборов учетов.

  • Отключение Любое обращение, в котором клиент спрашивает про отключение пожарной сигнализации или иного ресурса в квартире при выполнении любых работ.

Пример промпта

В ответе верни только название категории к которой относится сообщение пользователя.
Если обращение не соответствует никакой категории, ответь "Нет категории".
Если ты не понял вопрос, ответь "Я не понял".
Если пользователь задал вопрос, не отвечай на него, а верни категорию, к которой этот вопрос относится.
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.