Динамические сценарии
Динамические сценарии — это ключ к созданию по-настоящему умного и полезного ассистента. Они позволяют вашему боту выходить за рамки заготовленных ответов, обращаться к внешним системам, получать данные в реальном времени и предоставлять персонализированные ответы.
Статические vs. Динамические сценарии
Чтобы понять силу динамических сценариев, давайте сравним их со статическими.
Статические сценарии работают с заранее известной информацией. Они идеальны для ответов на общие вопросы (FAQ), где ответ всегда одинаков.
Пример: «Какие у вас часы работы?» → «Мы работаем с 9:00 до 18:00.»
Динамические сценарии работают с изменяемыми, персональными данными. Они необходимы, когда ответ зависит от конкретного пользователя или внешней информации.
Пример: «Где мой заказ?» → «Ваш заказ #12345 будет доставлен завтра в 15:00.»
Подробнее в Динамические сценарии
Как работают динамические сценарии?
Магия динамических сценариев заключается в сниппетах — фрагментах кода на JavaScript, которые выполняются прямо внутри сценария.
С помощью сниппетов ваш ассистент может:
Обращаться к вашему API для получения или отправки данных (например, проверить статус заказа, узнать баланс пользователя, создать новую заявку).
Выполнять сложные вычисления (рассчитать стоимость доставки, применить скидку).
Динамически формировать текст ответа, подставляя в него полученные данные.
Пример: Проверка статуса заказа
Давайте посмотрим, как это работает на практике. Пользователь спрашивает: "Где мой заказ #S-54321?"
Сценарий определяет намерение (
узнать_статус_заказа) и извлекает сущность (номер_заказа: "S-54321").Запускается реакция "Сниппет", в которой выполняется следующий код:
async function main(facts) { // Получаем номер заказа, извлеченный из сообщения пользователя const orderId = facts.get('номер_заказа'); try { // Отправляем запрос к API вашего магазина const response = await fetch(`https://api.your-shop.com/orders/${orderId}`); const orderData = await response.json(); // Формируем динамический ответ const message = `Ваш заказ №${orderId} сейчас в статусе "${orderData.status}". Ожидаемая дата доставки: ${orderData.delivery_date}.`; // Отправляем ответ пользователю await mail.sendText(message); } catch (error) { // Если что-то пошло не так (например, заказ не найден) await mail.sendText('К сожалению, не удалось найти информацию по вашему заказу. Пожалуйста, проверьте номер и попробуйте еще раз.'); } }Пользователь получает персонализированный ответ, основанный на данных из вашей системы.
Требования к API Для реализации динамических сценариев на вашей стороне должен быть подготовлен соответствующий API, к которому сможет обращаться платформа. Наша команда поможет с настройкой интеграции.
Последнее обновление