Использование слотов в ответах ассистента¶
Использование слотов в ответах ассистента¶
Слоты можно использовать в ответах бота, чтобы персонализировать сообщения или динамически подставлять сохраненные данные.
Содержание инструкции:
- 1. Базовое использование
- 2. Продвинутые техники
- 3. Работа с разными типами слотов
- 4. Продвинутые возможности
1. Базовое использование¶
Для добавления слота в ответ помощника окружите имя слота фигурными скобками { }. Например, "Рад знакомству, {PERSON}!"
Пример конфигурации:
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} руб."
Список слотов¶
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')"