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

Что такое слоты

Что такое слоты

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


Определение

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

Слоты определяются в файле domain.yml.


Типы слотов

Тип слота Хранение Применение Особенности
Text Строки Имена, адреса Частичный поиск
Boolean True/False Подтверждения Бинарное состояние
Categorical Список значений Категории Фиксированный набор
Float Числа с точкой Цены, метрики Математические операции
List Массив значений Множественный выбор Гибкая структура
Any Любой тип Универсальное Максимальная гибкость
Unfeaturized Любые данные Технические Без влияния на ML

1. Текстовые слоты (Text Slot)

  • Тип: text.
  • Описание: Хранит текстовые данные.
  • Применение: Имена, адреса, описания, любые текстовые значения
  • Особенности:

    • Может хранить любые строки
    • Поддерживает частичный поиск
    • Идеален для свободной текстовой информации

Пример записи в файле domain.yml:

slots:
  user_name:
    type: text
    initial_value: ""

2. Логические слоты (Boolean Slot)

  • Тип: bool
  • Описание: Хранит логические значения (true/false)
  • Применение:

    • Подтверждения
    • Флаги состояний
    • Да/Нет вопросы
  • Особенности:

    • Бинарное значение
    • Простое управление состоянием
    • Эффективное использование в условиях

Пример записи в файле domain.yml:

slots:
  is_member:
    type: boolean
    initial_value: false

3. Категориальные слоты (Categorical Slot)

  • Тип: categorical
  • Описание: Хранит значения из предопределенного списка
  • Применение:

    • Категории товаров
    • Типы услуг
    • Ограниченный выбор опций
  • Особенности:

    • Фиксированный набор значений
    • Валидация на уровне типа
    • Удобная работа с ограниченным выбором

Пример записи в файле domain.yml:

slots:
  product_category:
    type: categorical
    values: ["electronics", "clothing", "books"]

4. Числовые слоты (Float Slot)

  • Тип: float
  • Описание: Хранит числовые значения с плавающей точкой
  • Применение:

    • Цены
    • Координаты
    • Метрические данные
  • Особенности:

    • Работа с дробными числами
    • Математические операции
    • Точное представление числовых значений

Пример записи в файле domain.yml:

slots:
  price:
    type: float
    initial_value: 0.0

5. Список слотов (List Slot)

  • Тип: list
  • Описание: Хранит список значений. Длина списка, хранящегося в слоте, не влияет на диалог. Имеет значение только то, равна ли длина списка нулю или отличной от нуля.

  • Применение:

    • Множественный выбор
    • История действий
    • Накопительные данные
  • Особенности:

    • Гибкая структура
    • Возможность добавления/удаления элементов
    • Работа с коллекциями данных

Пример записи в файле domain.yml:

slots:
  favorite_colors:
    type: list
    initial_value: []

6. Слоты любого типа (Any Slot)

  • Тип: any
  • Описание: Хранит значения любого типа
  • Применение:

    • Универсальное хранение произвольных значений (они могут быть любого типа, например, словари или списки)
    • Сложные структуры данных
    • Экспериментальные сценарии
  • Особенности:

    • Максимальная гибкость
    • Возможность хранения любых данных
    • Требует дополнительной валидации

Пример записи в файле domain.yml:

slots:
  user_profile:
    type: any
    initial_value: {}

7. Unfeaturized Slot

  • Тип: unfeaturized
  • Описание: Хранит данные, но не влияет на предсказание следующего действия (не используется в ML-модели)
  • Применение:

    • Временные данные
    • Промежуточные значения
    • Технические параметры
  • Особенности:

    • Не влияет на предсказания
    • Чистое хранение
    • Быстрый доступ

Пример записи в файле domain.yml:

slots:
  temp_value:
    type: unfeaturized
    initial_value: ""