В настоящее время у меня есть чат-бот, у которого есть сущность для каждого символа акции. Их более 3000. Для моего диалога я хочу иметь возможность обнаруживать такие вопросы, как #get @price @stockSymbol. Есть ли способ справиться с большим количеством сущностей без написания оператора if для каждого из них?
Диалог Watson Conversation для большого количества сущностей?
Ответы (2)
Вам разрешено иметь только 100 объектов в одной рабочей области. Однако эти объекты могут иметь 100 000 значений.
Таким образом, вы можете создать объект с именем @StockSymbol
, и тогда каждое значение будет идентификатором Stock (например, IBM).
Таким образом, вам потребуется только один оператор IF, чтобы определить, что это акция, а затем передать информацию об объекте вызывающему приложению, чтобы принять меры по значению.
Чтобы поместить это программно, если это одноразовая вещь, вы можете создать файл CSV следующим образом:
StockSymbol,IBM
StockSymbol,MSFT
StockSymbol,APPL
и так далее. Затем импортируйте этот файл сущности. В качестве альтернативы вы можете использовать API рабочей области для обновления уже развернутой рабочей области.
К сожалению, в пользовательском интерфейсе службы разговоров нет процесса, который бы имел метод автоматического создания диалога. В подобных случаях многие команды создают внешний скрипт, который может читать файл с вашими сущностями в нем, а затем создает JSON-файл рабочей области с необходимыми диалоговыми узлами. JSON-файл рабочей области имеет относительно простой формат, и я обнаружил, что вы можете легко объединить любой новый json-файл в уже созданную рабочую область. На самом деле с новым API можно даже загружать новые элементы в работающую рабочую область. (хотя, если вы новичок в этом, создайте дубликат ws и объедините его с этим или загрузите и объедините через хороший редактор.)
dictionary
, возможно, это то, что вам нужно. - person MackM   schedule 24.03.2017