ym88659208ym87991671
Настройка справочника примеров STS для смартапов | Документация SmartMarket
Skip to main content

Настройка справочника примеров

Перед началом работы подключите классификатор и укажите его параметры в файле chatbot.yaml.

При использовании классификатора в сценарии используются теги:

  • глобальные: eg! и e!;
  • локальные: eg и e.

Использование единичного примера

Использование тегов e и e! предполагает использование единичного примера: один тег — одна реплика. Например, в сценарии:

theme: /Bank
state: Credit
e!: Дайте кредит.
a: Чтобы взять кредит, вам нужно просто...

state: CatchAll
q!: *
a: Извините, я вас не понимаю.

Под тегом e! мы прописываем фразу, с которой будут сравниваться запросы пользователей. Если запросы по смыслу похожи на реплику-пример, то они будут опознаны смартапом как относящиеся к тому же классу, и поведение для них будет одинаковое.

Например, фразы "получить кредит", "как оформить кредит", "взять кредит", "дайте кредит" будут попадать в стейт Credit. А фраза "хочу оформить кредитную карту" будет определена к стейту CatchAll.

Использование группы примеров

Когда примеров много используйте теги eg и eg!, а примеры указывайте в отдельном файле-справочнике. Справочник заполняется вручную.

Работу с группой примеров можно условно разделить на этапы:

Создание справочника примеров

В папке /src/dictionaries создайте файл examples.json. Файл справочника создается в .json-форате и включает в себя массив объектов, каждый из которых описывает один класс примеров.

В справочнике укажите параметры. В каждом объекте можно определить следующие теги:

  • id: необязательное поле. Задает идентификатор класса для использования в сценариях в тегах eg и eg!. Идентификатор по умолчанию соответствует пути класса, записанному через точку.
  • path: путь к стейту, в котором вызывается классификатор для обработки конкретного класса.
  • description: необязательное поле. Текстовое описание класса.
  • disabled: задается булево значение true или false. Отключение класса примеров в классификаторе.
  • phrases: массив строк, который содержит примеры для класса.

Пример класса:

{
"classes": [
{
"id": "common", // id класса
"path": "/PlayGames/Games", // путь к стейту, в котором вызывается классификатор
"description": "", // описание класса
"disabled": false, // отключение класса
"phrases": [
// массив примеров
"давай поиграем в какие-нибудь игры"
]
},
{
"id": "",
"path": "/PlayGames/Games/CanYouPlay",
"description": "",
"disabled": false,
"phrases": ["ты умеешь во что-нибудь играть?", "ты знаешь какие-нибудь игры?", "ты знаешь как играть?"]
}
]
}

После подготовки справочника, укажите путь к нему в конфигурационном файле chatbot.yaml:

exampleGroups:
- src/dictionaries/examples.json

Обращение к справочнику примеров в сценарии

Обращение к группе примеров, если id класса прописан:


state: Order
eg!: common // прописываем id класса
a: Давай сыграем!

Обращение к группе примеров, если id класса не указан:

state: CanYouPlay
q!: * [во что] * (умеешь/можешь/знаешь как) играть *
q!: * {игры * (знаешь/умеешь/можешь)} *
eg!: PlayGames.Games.CanYouPlay // id класса не указан, прописываем путь к стейту через символ `.`
q: * как* [игры] * || fromState = "/Education/What can you do", onlyThisState = true
script:
$temp.canYouPlay = true;
go!: ../../Games
Обновлено 21 июня 2022

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней