Страница 9 из 38
Re: Модуль API.AI
Добавлено: Ср янв 10, 2018 3:24 pm
Gelezako
nick7zmail писал(а):Явно не хватает приоритетов - что сперва отрабатывать, что потом...например:
Простые устройства -> Шаблоны поведения -> Api.AI. Если команда не исполнена на одном из уровней - передаём на следующий...причем желательно, чтобы была возможность переставить первые 2 местами.
согласен, осталось только найти кто эти хотелки сделает
Думаю что в этом плане ещё не скоро что-то поменяется.
Re: Модуль API.AI
Добавлено: Ср янв 10, 2018 3:56 pm
nick7zmail
Да мне хотя бы чтобы input.unknown отрабатывалась нормально, а не на включение простых устройств)))
Re: Модуль API.AI
Добавлено: Сб янв 13, 2018 5:15 pm
fandaymon
В Общих настройках системы есть вкладка Обработчики. В ней пункт HOOK_EVENT_COMMAND:, в котором указываются с каким приоритетом будут отрабатывать сообщения простые устройства (devices) и apiai. По умолчанию и у тех и у других стоит приоритет 100, поэтому иногда простые устройства будут срабатывать первыми, а иногда наоборот. Т.е. чтобы нормально отрабатывалась input.unknown надо поменять приоритет Простым устройствам, например, на 50...
Что касается второй проблемы - то что сначала отрабатываются простые устройства и apiai, а только потом шаблоны, то там только поменять код. А именно в директории var/www/lib файл common.class.php
В функции say вместо
Код: Выделить всё
if ($member_id)
{
$processed=processSubscriptions('COMMAND', array('level' => $level, 'message' => $ph, 'member_id' => $member_id));
if (!$processed) {
include_once(DIR_MODULES . 'patterns/patterns.class.php');
$pt = new patterns();
$res=$pt->checkAllPatterns($member_id);
processCommand($ph);
}
return;
}
надо написать
Код: Выделить всё
if ($member_id)
{
include_once(DIR_MODULES . 'patterns/patterns.class.php');
$pt = new patterns();
$res=$pt->checkAllPatterns($member_id);
if (!$res) {
$processed=processSubscriptions('COMMAND', array('level' => $level, 'message' => $ph, 'member_id' => $member_id));
if (!$processed) {
processCommand($ph);
}
}
return;
}
После этого команды будут проверять сначала в шаблонах, а потом в apiai и простых устройствах.
Re: Модуль API.AI
Добавлено: Сб янв 13, 2018 11:26 pm
nick7zmail
HOOK_EVENT_COMMAND вижу, но поле недоступно для редактирования... как изменить?
Re: Модуль API.AI
Добавлено: Вс янв 14, 2018 12:07 am
fandaymon
nick7zmail писал(а):HOOK_EVENT_COMMAND вижу, но поле недоступно для редактирования... как изменить?
Действительно недоступно... Ну можно в таблице settings поменять
Re: Модуль API.AI
Добавлено: Вс янв 14, 2018 12:17 am
nick7zmail
Поменял...реакции ноль...как отрабатывали оба, так и отрабатывают(( буду копать common.class
Re: Модуль API.AI
Добавлено: Вс янв 14, 2018 12:26 am
fandaymon
nick7zmail писал(а):Поменял...реакции ноль...как отрабатывали оба, так и отрабатывают(( буду копать common.class
Отрабатывают они в любом случае оба, приоритет просто показывает в каком порядке.
В hooks.inc.php processSubscriptions можно глянуть как это работает - то что находится в поле загружается в массив, сортируется по приоритету и выполняется.
Re: Модуль API.AI
Добавлено: Вс янв 14, 2018 12:28 am
nick7zmail
Дак вот не должны они оба отрабатывать)) А то простое устройство нормально реагирует...но при этом в api-ai вызывается input.unknown...
Система при этом говорит сделано, и тут же - я тебя не понимаю, или что нить подобное.
Это явно какой-то бред...
Re: Модуль API.AI
Добавлено: Вс янв 14, 2018 12:44 am
fandaymon
nick7zmail писал(а):Дак вот не должны они оба отрабатывать)) А то простое устройство нормально реагирует...но при этом в api-ai вызывается input.unknown...
Система при этом говорит сделано, и тут же - я тебя не понимаю, или что нить подобное.
Это явно какой-то бред...
Обработчики отрабатываются и один и другой. В тоже время перед отработкой в простых устройствах $processed сбрасывается в 0, поэтому если Простые устройства обрабатываются последними, то система не узнает что apiai нашла шаблон, отработает команду в шаблонах и после этого вызовет метод CommandRecieved, который и скажет про Неизвестную команду.
Поскольку по умолчанию и у Device и у apiai приоритет 100, то отрабатываются они в случайном порядке, поэтому когда apiai отработала последней и нашла шаблон, то выводит только сообщение от apiai, а если последним отрабатывали Простые устройства, то выводилось сообщение и от apiai и сообщение про неизвестную команду....
Re: Модуль API.AI
Добавлено: Вт фев 13, 2018 10:24 am
vitt76
fandaymon писал(а):.................
В функции say вместо
.....................
После этого команды будут проверять сначала в шаблонах, а потом в apiai и простых устройствах.
Скажите, а после обновления системы это нужно будет делать снова?