[Модуль] API.AI (apiai)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Модуль API.AI

Сообщение Gelezako » Ср янв 10, 2018 3:24 pm

nick7zmail писал(а):Явно не хватает приоритетов - что сперва отрабатывать, что потом...например:
Простые устройства -> Шаблоны поведения -> Api.AI. Если команда не исполнена на одном из уровней - передаём на следующий...причем желательно, чтобы была возможность переставить первые 2 местами.
согласен, осталось только найти кто эти хотелки сделает :)
Думаю что в этом плане ещё не скоро что-то поменяется.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль API.AI

Сообщение nick7zmail » Ср янв 10, 2018 3:56 pm

Да мне хотя бы чтобы input.unknown отрабатывалась нормально, а не на включение простых устройств)))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Модуль API.AI

Сообщение fandaymon » Сб янв 13, 2018 5:15 pm

В Общих настройках системы есть вкладка Обработчики. В ней пункт 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 и простых устройствах.
За это сообщение автора fandaymon поблагодарили (всего 2):
lanket (Сб янв 13, 2018 6:08 pm) • vitt76 (Вт фев 13, 2018 2:35 pm)
Рейтинг: 2.33%
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль API.AI

Сообщение nick7zmail » Сб янв 13, 2018 11:26 pm

HOOK_EVENT_COMMAND вижу, но поле недоступно для редактирования... как изменить?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Модуль API.AI

Сообщение fandaymon » Вс янв 14, 2018 12:07 am

nick7zmail писал(а):HOOK_EVENT_COMMAND вижу, но поле недоступно для редактирования... как изменить?
Действительно недоступно... Ну можно в таблице settings поменять
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль API.AI

Сообщение nick7zmail » Вс янв 14, 2018 12:17 am

Поменял...реакции ноль...как отрабатывали оба, так и отрабатывают(( буду копать common.class
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Модуль API.AI

Сообщение fandaymon » Вс янв 14, 2018 12:26 am

nick7zmail писал(а):Поменял...реакции ноль...как отрабатывали оба, так и отрабатывают(( буду копать common.class
Отрабатывают они в любом случае оба, приоритет просто показывает в каком порядке.

В hooks.inc.php processSubscriptions можно глянуть как это работает - то что находится в поле загружается в массив, сортируется по приоритету и выполняется.
Последний раз редактировалось fandaymon Вс янв 14, 2018 12:31 am, всего редактировалось 1 раз.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Модуль API.AI

Сообщение nick7zmail » Вс янв 14, 2018 12:28 am

Дак вот не должны они оба отрабатывать)) А то простое устройство нормально реагирует...но при этом в api-ai вызывается input.unknown...
Система при этом говорит сделано, и тут же - я тебя не понимаю, или что нить подобное.
Это явно какой-то бред...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Модуль API.AI

Сообщение fandaymon » Вс янв 14, 2018 12:44 am

nick7zmail писал(а):Дак вот не должны они оба отрабатывать)) А то простое устройство нормально реагирует...но при этом в api-ai вызывается input.unknown...
Система при этом говорит сделано, и тут же - я тебя не понимаю, или что нить подобное.
Это явно какой-то бред...
Обработчики отрабатываются и один и другой. В тоже время перед отработкой в простых устройствах $processed сбрасывается в 0, поэтому если Простые устройства обрабатываются последними, то система не узнает что apiai нашла шаблон, отработает команду в шаблонах и после этого вызовет метод CommandRecieved, который и скажет про Неизвестную команду.
Поскольку по умолчанию и у Device и у apiai приоритет 100, то отрабатываются они в случайном порядке, поэтому когда apiai отработала последней и нашла шаблон, то выводит только сообщение от apiai, а если последним отрабатывали Простые устройства, то выводилось сообщение и от apiai и сообщение про неизвестную команду....
Аватара пользователя
vitt76
Сообщения: 372
Зарегистрирован: Вс апр 09, 2017 2:36 pm
Благодарил (а): 101 раз
Поблагодарили: 51 раз

Re: Модуль API.AI

Сообщение vitt76 » Вт фев 13, 2018 10:24 am

fandaymon писал(а):.................
В функции say вместо
.....................
После этого команды будут проверять сначала в шаблонах, а потом в apiai и простых устройствах.
Скажите, а после обновления системы это нужно будет делать снова?
Broadlink + Orange Pi PC ARMBIAN 5.31
Ответить