Перейти к содержанию

Использование слотов в ответах ассистента

Использование слотов в ответах ассистента

Слоты можно использовать в ответах бота, чтобы персонализировать сообщения или динамически подставлять сохраненные данные.

Содержание инструкции:


1. Базовое использование

Для добавления слота в ответ помощника окружите имя слота фигурными скобками { }. Например, "Рад знакомству, {PERSON}!"

Пример конфигурации:

responses:
 utter_greet_user:
 - text: Привет, {user_name}! Как я могу помочь?

2. Продвинутые техники

Условные ответы

responses:
 utter_welcome_message:
 - text: Доброе утро, {user_name}!
 condition: "tracker.get_slot('time_of_day') == 'morning'"
 - text: Добрый день, {user_name}!
 condition: "tracker.get_slot('time_of_day') == 'afternoon'"

Динамический контент

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

responses:
  utter_confirm_booking:
    - text: "Вы забронировали столик на {booking_date} для {num_guests} человек. Ваше имя: {user_name}."

Если слоты booking_date, num_guests и user_name заполнены, бот отправит сообщение: Вы забронировали столик на 2023-10-15 для 4 человек. Ваше имя: Алексей.

3. Работа с разными типами слотов

Текстовые и числовые слоты

responses:
 utter_price_info:
 - text: "Цена за единицу: {unit_price} руб."
 - text: "Общая сумма: {total_price} руб."

Список слотов

responses:
 utter_shopping_list:
 - text:  вашем списке покупок: {shopping_items}"

4. Продвинутые возможности

Динамическая подстановка

def custom_response(dispatcher, tracker, domain):
 user_name = tracker.get_slot('user_name')
 if user_name:
 dispatcher.utter_message(text=f"Здравствуйте, {user_name}!")
 else:
 dispatcher.utter_message(text="Здравствуйте!")

Условная логика

responses:
 utter_greet:
 - text: "Привет! Как я могу помочь?"
 condition: "not tracker.get_slot('is_returning_user')"
 - text: "Добро пожаловать обратно, {user_name}!"
 condition: "tracker.get_slot('is_returning_user')"