Динамические сценарии

Динамические сценарии — это ключ к созданию по-настоящему умного и полезного ассистента. Они позволяют вашему боту выходить за рамки заготовленных ответов, обращаться к внешним системам, получать данные в реальном времени и предоставлять персонализированные ответы.

Статические vs. Динамические сценарии

Чтобы понять силу динамических сценариев, давайте сравним их со статическими.

  • Статические сценарии работают с заранее известной информацией. Они идеальны для ответов на общие вопросы (FAQ), где ответ всегда одинаков.

    • Пример: «Какие у вас часы работы?» → «Мы работаем с 9:00 до 18:00.»

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

    • Пример: «Где мой заказ?» → «Ваш заказ #12345 будет доставлен завтра в 15:00.»

Подробнее в Динамические сценарии

Как работают динамические сценарии?

Магия динамических сценариев заключается в сниппетах — фрагментах кода на JavaScript, которые выполняются прямо внутри сценария.

С помощью сниппетов ваш ассистент может:

  • Обращаться к вашему API для получения или отправки данных (например, проверить статус заказа, узнать баланс пользователя, создать новую заявку).

  • Выполнять сложные вычисления (рассчитать стоимость доставки, применить скидку).

  • Динамически формировать текст ответа, подставляя в него полученные данные.

Пример: Проверка статуса заказа

Давайте посмотрим, как это работает на практике. Пользователь спрашивает: "Где мой заказ #S-54321?"

  1. Сценарий определяет намерение (узнать_статус_заказа) и извлекает сущность (номер_заказа: "S-54321").

  2. Запускается реакция "Сниппет", в которой выполняется следующий код:

    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('К сожалению, не удалось найти информацию по вашему заказу. Пожалуйста, проверьте номер и попробуйте еще раз.');
      }
    }
  3. Пользователь получает персонализированный ответ, основанный на данных из вашей системы.

Последнее обновление