chatme.ai
Search
⌃K

Распознавание сущностей | Слот Synonym

Назначение и общая информация

Слот Synonym позволяет совершать поиск по таблице с данными — Словарю — и сохранять найденную информацию в контекстную переменную.
При выражении намерения естественным языком Собеседник может использовать в Реплике различные Сущности. К примеру, в реплике “Как добраться в Питер на поезде” присутствует Сущность “город” (Питер) и “транспорт” (поезд). Сущности могут быть выражены разными словами-синонимами. К примеру, “Питер” можно назвать “Санкт-Петербургом”, или “северной столицей”, а “поезд” — “электричкой” или “жд”. В некоторых сценариях требуется выделять значения Сущностей и записывать их в Контекстные переменные чата для последующего использования в Сценарии. Для выделения Сущностей используется Слот Synonym в сочетании с функционалом Словарей.
Примеры:
  1. 1.
    Необходимо определить полное официальное название города для передачи его во внешнюю систему. Для этого производится поиск в Реплике названия города и далее в Сценарии используется название соответствующей ему Сущности.
  2. 2.
    Необходимо разделить Сценарий после определения Интента в зависимости от содержащейся в Реплике Сущности. Интент: “Как найти <Сущность>?”. Набор Сущностей: “кабинет начальника”, “гардеробная”, “переговорная”, “кафетерий”, “кабинет врача”, “кухня”, “туалет”. С помощью слота Synonym производится поиск Сущности в Реплике, затем с помощью Слота Transition Rule производится деление Сценария на несколько Веток в зависимости от Сущности.
Важно: функционал работает только в Агентах с новой версией синтаксиса (подробнее: Новый синтаксис)

Создание и настройки слота

Атрибуты слота

  1. 1.
    Name — название Слота, которое будет отображено в Дереве сценария. Максимальная длина значения поля — 40 символов.
    1. 1.
      При сохранении Слота проверяется значение в поле:
      1. 1.
        если поле пустое, выводится ошибка Please enter a slot name
        image.png
      2. 2.
        если в поле более 40 символов, выводится ошибка Name must contain no more than 40 characters
        image.png
  2. 2.
    Source — Проверяемая строка, в которой слот будет совершать поиск Синонимов из Словаря. Может быть выражена Контекстной переменной, указанной с помощью синтаксиса {{ variable }}, Выражением или Управляющей конструкцией.
    1. 1.
      При сохранении Слота проверяется значение в поле:
      1. 1.
        если поле пустое, выводится ошибка Please enter a source variable
        image.png
  3. 3.
    RESULT VARIABLE — имя Пользовательской контекстной переменной, в которую запишется найденная слотом информация. При прохождении слота система удалит Контекстную переменную с указанным названием, затем, если поиск по Словарю даст результат, Контекстная переменная будет создана заново. В противном случае данной Контекстной переменной не будет в Контексте Чата.
    1. 1.
      При сохранении Слота проверяется значение в поле:
      1. 1.
        если поле пустое, выводится ошибка Please enter a result variable
        image.png
      2. 2.
        если имя переменной не соответствует требования к именам Пользовательских контекстных переменных, выводится ошибка Invalid name
        image.png
  4. 4.
    VOCABULARY — Словарь из Ресурсов компании.
    1. 1.
      При сохранении Слота проверяется значение в поле:
      1. 1.
        если поле пустое, выводится ошибка Please choose a vocabulary
        image.png
    2. 2.
      Пар RESULT VARIABLE + VOCABULARY может быть несколько. Для добавления новой пары необходимо кликнуть по кнопке Add search.
    3. 3.
      При добавлении каждой дополнительной пары RESULT VARIABLE + VOCABULARY в поле VOCABULARY в выпадающем списке отображаются те Словари Компании, которые не использованы в других полях VOCABULARY этого Слота. Таким образом, пар RESULT VARIABLE + VOCABULARY в одном Слоте Synonym может быть максимум 20 (это максимальное количество Словарей в Компании).

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

В Слоте Synonym допустимо использование Выражений и Управляющих конструкций в поле Source. Подробнее: Переход на новый синтаксис

Словари

О том, как создать и загрузить Словарь, читайте в статье Вкладка словарей — Vocabularies

Работа слота

  1. 1.
    Слот принимает Проверяемую строку, указанную в поле Source;
  2. 2.
    Приводит содержимое Проверяемой строки к нижнему регистру;
  3. 3.
    Разбивает содержимое Проверяемой строки по словам;
  4. 4.
    Удаляет из Контекста Чата все Контекстные переменные, указанные в поле RESULT VARIABLE данного Слота;
  5. 5.
    Совершает поиск каждого слова из Проверяемой строки в Словаре, указанном в поле VOCABULARY;
  6. 6.
    В случае, если одно или несколько слов из Проверяемой строки совпадет/ут с Синонимом/ами из Словарz, в Контекстt Чата будет создана соответствующая Контекстная переменная, указанная в поле RESULT VARIABLE, в которую будет записан результат поиска:
    1. 1.
      Формат результата — JSON с информацией: [{'synonym': 'найденный в переменной синоним', 'reference': 'первый синоним в строке', 'entity': 'название сущности', 'start': порядковый номер первого символа найденного в переменной синонима, 'end': порядковый номер последнего символа найденного в переменной синонима}]
    2. 2.
      В случае, если в Словаре найдено несколько совпадений (при наличии одинакового Синонима в разных Сущностях либо при наличии нескольких одинаковых Синонимов в одной Проверяемой строке), JSON-ов может быть несколько, пример: [{'synonym': 'honda', 'reference': 'HONDA', 'entity': '42639f67-b170-11ea-b78c-0050568041d3', 'start': 0, 'end': 5}, {'synonym': 'honda', 'reference': 'HONDA', 'entity': '42639f67-b170-11ea-b78c-0050568041d3', 'start': 6, 'end': 11}]
  7. 7.
    Если в Слоте несколько пар RESULT VARIABLE - VOCABULARY, Слот проходит по каждой по порядку, повторяя описанное в пунктах 4-5.
Важно: регистр Синонимов в Словаре и Проверяемой строки не влияет на результат распознавания.