Страница 4 из 38

Re: Модуль API.AI

Добавлено: Вт фев 21, 2017 6:46 pm
Gelezako
Столкнулся с проблемой, что модуль не создаёт пустую процедуру если приходит джесон от созданного мною Intent, а значит он содержит другой набор свойств в "parameters". Пытаюсь распарсить его и достучаться до моих данных. Гуру парсинга, подскажите плиз. Вот пример джейсона:

Код: Выделить всё

{
  "id": "98933f94-796f-4db3-ade0-4d57d3e86011",
  "timestamp": "2017-02-21T13:41:13.438Z",
  "lang": "ru",
  "result": {
    "source": "agent",
    "resolvedQuery": "мой запрос",
    "action": "",
    "actionIncomplete": false,
    "parameters": {
      "exercises": "пресс",
      "quantity": "20"
    },
...
} 
моя задача достучаться до вот этих свойств и сохранить значение в МД.

Код: Выделить всё

      "exercises": "пресс",
      "quantity": "20" 
-----
Нагуглил как добраться до значений, но теперь не получается решить задачу как достать имена названий "exercises" и "quantity". В данном Intent'е их 2 шт. Но в другом будет другое количество и будут другие имена. Т.е. Задача выяснить сколько их всего, какие имена и все значения. Подскажите хотяб запрос для гугла правильный. Есть примеры, но все они направлены на доставание значений что у меня уже получилось сделать.
-----

Путём проб и ошибок я нашёл способ как использовать мои свойства, а так же сделал фикс как создать процедуру от моего интента. Результат своих исследований я описал в видео https://www.youtube.com/watch?v=jMAKK0fWFJg , возможно кому то будет полезно, но лично для меня это серьёзное улучшение.

Сергей, я форкнул на гитхабе этот модуль, сделал в своём репозитории комит и отправил Pull requests. Буду рад если рассмотришь. Я нуб в пхп, возможно там есть какая-то ошибка, вижу как она мелькает перед отрисовкой основного шаблона.

Ссылка на форкнутую ветку исходного кода модуля api.ai https://github.com/Gelezako/majordomo-apiai

Re: Модуль API.AI

Добавлено: Ср мар 01, 2017 12:51 pm
Gelezako
новое обучающее видео на основе плагина API.AI о том как:
- голосом запустить воспроизведение музыки нужного вам канала, жанра, источника
- голосом спросить погоду и получить ответ тоже голосом

https://www.youtube.com/watch?v=4B4ImDR2st4

Re: Модуль API.AI

Добавлено: Чт мар 02, 2017 11:53 am
Gelezako
"... и тут Остапа понесло... " :)
уж больно нравится мне учить новым фишкам своего асистента умного дома :)
В новой серии создаём финансового помошника, который умеет получать актуальные курсы основных валют по отношению к гривне и рублю. Поддерживаются команды вида:

- "Курс валют"
если вы не зададите валюту, то система спросит какую

- "Курс евро"
сразу выдаст ответ, если указали валюту

- Сколько будет 10 долларов в рублях
умеет подсчитывать сколько будет в рублях или гривнах та или иная сумма в валюте.

Почти во все стороны пожно подставлять гривны, рубли, евро и доллар. Так фразу можно перефразировать как хочешь. Пример: Я нашел 1000 долларов, сколько это будет в рублях?

Видео специально снял с расчётом на тех кто мало или совсем не знаком с Мажордомо, модулями, сценариями.
https://www.youtube.com/watch?v=wZSfGWjE6lc

Re: Модуль API.AI

Добавлено: Чт мар 30, 2017 2:04 am
panda5
Gelezako писал(а):вот https://wit.ai/ аналог этого же сервиса и у них в хелпе написано что всё БЕСПЛАТНО с НЕОГРАНИЧЕННЫМ колличеством запросов. Но если запросов будет больше чем 1 в секунду, что для использования человеком нереально, то они простопросятнаписать им и уведомить. Может есть смысл добавить в модуль возможность переключатся между ними. Схема такая же, токеты, ентити, интенсы, вот только доменов я нге нашёл.
это ограничение чтобы спаммеры не использовали сервис, но зато этот вариант поддерживает русский язык

----

а применительно к валюте конечно интересно для пробы, но эти все вещи давно есть и в амазоне и в сири, тупо копировать - смысл?

намного интереснее все же вернуться к умному дому. Сейчас объектная база знаний в умном доме нулевая. Банально Алиса (на голой системе) подключенная не понимает ни одного вопроса. Т.е. даже базового набора о системе, нет.

А те шаблоны диалогов, которые после этой системы остаются как подтвержденные, как раз не плохо было бы оставлять в ОБЩЕЙ базе системы. Только вот применительно к объектам и свойствам реального дома: к примеру объект телевизор + и база вопросов о нем, его свойствах и всем что с ним можно и нельзя делать, включая его отношения с другими объектами. Так описывая (по ходу практики) каждый объект в доме, система начнет как раз такие подстановки объектов и свойств. Когда будут уже не заране написанные 20 сценариев ответ-вопрос, а массив, который будет постепенно образовывать новые связи, но для развития такой системы одного только описания в коде будет недостаточно. Слишком мало знаний о реальном мире, когда проводником этих знаний для всей системы являются всего пара человек, да и то, основываясь только на опыте инсталляции на свой вариант системы. До тех пор, пока эта база обучения не будет общей, универсальной, и пока стандарт описания объектов в умном доме не станет единым для всех инсталляций = такие шаблоны будут игрушкой, которая слишком медленно развивается (вернее набирает код, пока сама она не развивается).

Re: Модуль API.AI

Добавлено: Чт мар 30, 2017 12:00 pm
Gelezako
panda5 писал(а): а применительно к валюте конечно интересно для пробы, но эти все вещи давно есть и в амазоне и в сири, тупо копировать - смысл?
В амазоне на русском есть? У Сири какой исчточник курса? Есои у вас есть сири, спросите у неё про курс и сравните с настоящим. Нам же нужно не для галочки, а реально правдивую информацию.
panda5 писал(а): намного интереснее все же вернуться к умному дому. Сейчас объектная база знаний в умном доме нулевая. Банально Алиса (на голой системе) подключенная не понимает ни одного вопроса. Т.е. даже базового набора о системе, нет.
Если подключите модуль api.ai, то вам автоматически станет доступен набор фраз и прикольных ответов. Список фраз я публиковал тут http://blog.gelezako.com/?p=7
panda5 писал(а): А те шаблоны диалогов, которые после этой системы остаются как подтвержденные, как раз не плохо было бы оставлять в ОБЩЕЙ базе системы. Только вот применительно к объектам и свойствам реального дома: к примеру объект телевизор + и база вопросов о нем, его свойствах и всем что с ним можно и нельзя делать, включая его отношения с другими объектами. Так описывая (по ходу практики) каждый объект в доме, система начнет как раз такие подстановки объектов и свойств. Когда будут уже не заране написанные 20 сценариев ответ-вопрос, а массив, который будет постепенно образовывать новые связи, но для развития такой системы одного только описания в коде будет недостаточно. Слишком мало знаний о реальном мире, когда проводником этих знаний для всей системы являются всего пара человек, да и то, основываясь только на опыте инсталляции на свой вариант системы. До тех пор, пока эта база обучения не будет общей, универсальной, и пока стандарт описания объектов в умном доме не станет единым для всех инсталляций = такие шаблоны будут игрушкой, которая слишком медленно развивается (вернее набирает код, пока сама она не развивается).
Когда критикуешь - предлагай свой вариант решения, а иначе критика ломаного гроша не стоит.

Re: Модуль API.AI

Добавлено: Чт мар 30, 2017 2:53 pm
panda5
Gelezako писал(а):
panda5 писал(а): а применительно к валюте конечно интересно для пробы, но эти все вещи давно есть и в амазоне и в сири, тупо копировать - смысл?
В амазоне на русском есть? У Сири какой исчточник курса? Есои у вас есть сири, спросите у неё про курс и сравните с настоящим. Нам же нужно не для галочки, а реально правдивую информацию.
panda5 писал(а): намного интереснее все же вернуться к умному дому. Сейчас объектная база знаний в умном доме нулевая. Банально Алиса (на голой системе) подключенная не понимает ни одного вопроса. Т.е. даже базового набора о системе, нет.
Если подключите модуль api.ai, то вам автоматически станет доступен набор фраз и прикольных ответов. Список фраз я публиковал тут http://blog.gelezako.com/?p=7
panda5 писал(а): А те шаблоны диалогов, которые после этой системы остаются как подтвержденные, как раз не плохо было бы оставлять в ОБЩЕЙ базе системы. Только вот применительно к объектам и свойствам реального дома: к примеру объект телевизор + и база вопросов о нем, его свойствах и всем что с ним можно и нельзя делать, включая его отношения с другими объектами. Так описывая (по ходу практики) каждый объект в доме, система начнет как раз такие подстановки объектов и свойств. Когда будут уже не заране написанные 20 сценариев ответ-вопрос, а массив, который будет постепенно образовывать новые связи, но для развития такой системы одного только описания в коде будет недостаточно. Слишком мало знаний о реальном мире, когда проводником этих знаний для всей системы являются всего пара человек, да и то, основываясь только на опыте инсталляции на свой вариант системы. До тех пор, пока эта база обучения не будет общей, универсальной, и пока стандарт описания объектов в умном доме не станет единым для всех инсталляций = такие шаблоны будут игрушкой, которая слишком медленно развивается (вернее набирает код, пока сама она не развивается).
Когда критикуешь - предлагай свой вариант решения, а иначе критика ломаного гроша не стоит.

Согласен, критики тут на форуме гораздо больше чем интересных мыслей.... но увы, так же и в реальной жизни, тех кто ею недоволен на порядки больше чем тех, кто ее меняет к лучшему, (ну это небольшое философское отвлечение)...


Вернемся к баранам

Задача с которой тут мы все ежедневно сталкиваемся намного сложнее точного курса валют, вот о чем я говорил.

Попробую описать более детально:

Во первых, сама архитектура подобного Джарвиса делится как минимум на 4 далеко не тривиальных задачи:
Между "распознавание вопроса" и "выдача понятного человеку ответа", есть еще поиск этого ответа, и анализ эмоций и других деталей, которые меняются во времени, воздействуют на пользователя и повлияют на восприятие его ответа.

Тот модуль о котором идет речь - не позволяет решать все эти задачи. Ну к примеру, анализ работы моего отопительного котла, чтобы кривая его экономии была лучше термостата Nest который стоит у меня в системе и пропущен через дополнительный статистический фильтр, который показывает, что он не всегда эффективно работает...... (ну это маленькое отвлечение). Вернемся все же к баранам.

Курсы валют...

по сравнению с системой мажордомо я такую систему сделал еще в 2000 году, да да, тогда телефоны еще были чернобелыми, сони эриксон впервые выпустил маленький телефон с двумя строчками.... Система Бионлайн, которую я тогда делал с большой командой так же крутилась в цикле, слушала что хочет пользователь, парсила по смс запросу от пользователя КУРС ДОЛЛАРА, новости, анекдоты, позже продавала картинки и ПОЛИФОНИЧЕСКИЕ мелодии по смс запросам пользователей (весть этот тогдашний спамм, был результатом той самой системы).

Искусственного интеллекта там не было, хотя некоторые алгоритмы все же мерили и анализировали уровень нагрузки и вовремя ее перераспределяли...

Так о чем мы, о баранах:

просто парсить чужие странички, точно программируя что и как должно быть - этого как раз на форуме много, и это не УМНЫЙ дом. По сути сейчас все так уныло и скучно только потому, что несколько однозначно запрограммированных функций типа прогноза погоды, где парсится яндекс или гисметео, и алиса голосом говорит несколько десятков давно запрограммированных фраз с однозначной логикой.

Ну а теперь вернемся от критики к решениям

Первая сложность в реализации всей цепочки из этих четырех блоков, это область знаний об окружающем мире - у нашего Джарвиса (Алисы) нет глаз, датчиков довольно мало, вебкамеры и д3 камеры нет пока в комплексе мажордома, а значит как минимум нет данных о том что сейчас реально происходит в помещении, где сидит многоуважаемый пользователь задающий вопрос.

Вторая сложность по блоку знаний об окружающем мире внутри дома (только не говорите мне про ту возможность, что мы уже научились задавать Алисе вопросы из википедии), пока у мажордомо не будет СОБСТВЕННОЙ ВИКИПЕДИИ!!! - с большой базой многоуровневых знаний об объектах умного и не умного дома, да и всего чего только есть в наших жилищах (от аптечки до кулинарных рецептов) - без этих знаний об объектах дома, он не имеет права стать умным. Кстати, если Сергей это читает, значит не все потеряно. (Но только опять же статической эта вики база быть не может.)

Ну и сложность под номером 2.2 - окружающий мир внутри дома неразрывно связан с тем бушующим миром вокруг этого корабля - нужны знания об этом окружающем нас мире.........

А теперь от лирики к практике, как любили говорить физики


Цепочка:вопрос- разбор вопроса на объекты - поиск внутри базы объектов - анализ - ответ

должна быть для начала НАПОЛНЕНА.

Итак, прежде чем от системы требовать умного поведения не пора ли посмотреть в зеркало, и ответить на один самый кстати важный вопрос: разрешите системе задавать вопросы!

Ну и второй вопрос вдогонку к этому: чтобы наполнить (действительно наполнить эту внутреннюю вики базу) Я предлагаю для начала совместно с несколькими активистами этого форума начать разработку того самого ГОЛОСОВОГО инструмента наполнения базы.

Во первых это очень быстро начнет набирать знания и описания объектов (телевизор, холодильник, тумбочка, столовые приборы и т.д.), а во вторых - отшлифует механизм настройки на пользователя диалога с системой(а этого уже не хватает ни сири, ни амазону ни другим конкурентам). (кстати Амазон с недавних пор с русским по платным подпискам работает...)

И второе конкретное предложение: локально для себя я сервис свой сделал еще года 4 назад, но в составе умного дома это было бы интереснее: речь про личную базу знаний, на основе голосового движка встроенного в браузер: сейчас плагин в хром используется не совсем по назначению, как то он обходит тот факт, что работает в браузере и может именно там быть полезен. А в моем случае я голосом делаю закладки и пометки к каждой странице, наговаривая какой то текст, который описывает что именно на этой странице я хотел бы запомнить, или что именно мне понравилось. А это колоссальное количество знаний о внешнем мире, которое в базе знаний мажордомо могло бы очень помочь.

По крайней мере сузить область поиска в тех запросах, которые дает пользователь.


Итак вывод из этого поста: на первом этапе нужен механизм централизованного сбора и классификации знаний об объектах умного дома.

Сценарий следующий (пока сырое предложение, но главное начало):

- разрешить Алисе задавать вопросы (возможно в плане эксперимента не для всех пользователей, а только узкой группе разработчиков-модераторов), вопросы касающиеся любых объектов дома. Объект - его свойства, его действия, действия над ним, взаимодействия этого объекта с другими объектами, ну и конечно же потенциальное описание видов этого объекта (и возможных технических коммуникаций с ним).

Так будет у нас телевизор, его можно смотреть, он выдает звук, он может ломаться, он управляется с пульта(или по сети), может быть умным, с соответственными дополнительными функциями, даже будильником, к нему можно подключать смартфон, камеру, через него можно смотреть программы которые показываются по внешнему расписанию, или контент, который можно скачать/заказать по кабельному, а дополнительно он может для системы умного дома служить монитором для того чтобы показать определенную информацию.


Это очень разный набор знаний, а еще бывают разные производители телевизоров, и разные модели, и его нельзя включать громко если в соседней комнате спит ребенок, и т.д. - знаний будет много, намного больше чем мы предполагаем сейчас, и без систематизации этих знаний, и удобного механизма их модерации и управления сценарием использования этого механизма в этих знаниях мы утонем, и они станут бесполезным хламом, так же, какой хлам сейчас хранится в интернете вместе взятом - без механизма работы с этим хламом - его невозможно будет использовать.

Поэтому самая первая задача сделать механизм наполнения ВИКИПЕДИИ умного дома. Механизма легкого и понятного.

Итак все же сценарий:

- вечером после работы, модератор-разработчик из группы наших новых ВИКИ-модераторов отводит пол часика для того чтобы поговорить с системой, система на выбор предлагает список объектов, о которых пользователи спрашивали за день, модератор выбирает конкретный объект, и слушает те вопросы, которые интересовали пользователей вокруг этого объекта.
- управление ТОЛЬКО ГОЛОСОВОЕ (на этапе грубой работы модераторов), НО пока механизм только начал работу, система должна предоставлять возможность по каждому вопросу оставлять пометки (для программистов, для доработки функционала, или для других важных замечаний)
- второй уровень модерации (административный), это как раз мегамодератор, к которому приходят эти самые спорные вопросы, опасности, предостережения, ограничения, и др. вопросы, которые требуют серьезного анализа и таких решений, которые могут затрагивать в том числе и юридические сложности
- а третий уровень модерации - подключение внешних источников информации, для ответов на некоторые вопросы..... но это уже совсем другие технические мощности, о которых пока рано говорить на этом этапе развития системы.

Надеюсь читатель не уснул благодаря моим литературным талантам.

Re: Модуль API.AI

Добавлено: Чт мар 30, 2017 3:11 pm
panda5
В дополнение, информация для размышлений:

Российская компания NtechLab стала победителем первого в мире чемпионата по распознаванию эмоций людей при помощи компьютерных алгоритмов EmotionNet Challenge.

Как бы ни пытались шутить некоторые тут на форуме, но система "учета эмоций" в работе умного дома, как раз одна из самых УМНЫХ функций. И не только в попытке веселых фраз и остроумных ответов умного дома (как в сериале Мажоры iДонна)

Re: Модуль API.AI

Добавлено: Чт мар 30, 2017 3:29 pm
panda5
Первые мысли, которые касаются нечеткой логики в данном приложении.

В нашу ВИКИПЕДИЮ умного дома стоит добавить раздел языковых обобщений: например команды к объекту лампа: включить / выключить, могут иметь языковые аналогии: зажечь, свет, слишком темно, светлее, не видно, ничего не видно, "выколи глаз", "да тут как у негра в ж...."

И все это машина должна привести к однозначной команде.

Re: Модуль API.AI

Добавлено: Чт мар 30, 2017 7:50 pm
Gelezako
panda5 писал(а): Во первых, сама архитектура подобного Джарвиса делится как минимум на 4 далеко не тривиальных задачи:
Между "распознавание вопроса" и "выдача понятного человеку ответа", есть еще поиск этого ответа, и анализ эмоций и других деталей, которые меняются во времени, воздействуют на пользователя и повлияют на восприятие его ответа.
Тот модуль о котором идет речь - не позволяет решать все эти задачи.
Сразу видно что вы ни минуты с ним не разбирались и не понимаете как он работает. В нём всё это есть и я это успешно применяю.
panda5 писал(а): Первая сложность в реализации всей цепочки из этих четырех блоков, это область знаний об окружающем мире - у нашего Джарвиса (Алисы) нет глаз, датчиков довольно мало, вебкамеры и д3 камеры нет пока в комплексе мажордома, а значит как минимум нет данных о том что сейчас реально происходит в помещении, где сидит многоуважаемый пользователь задающий вопрос.
О чём вы, Мажордомо как раз и был создан что бы объединить все эти устройства и сохранять данные со всех этих источников
panda5 писал(а): Вторая сложность по блоку знаний об окружающем мире внутри дома (только не говорите мне про ту возможность, что мы уже научились задавать Алисе вопросы из википедии), пока у мажордомо не будет СОБСТВЕННОЙ ВИКИПЕДИИ!!! - с большой базой многоуровневых знаний об объектах умного и не умного дома, да и всего чего только есть в наших жилищах (от аптечки до кулинарных рецептов) - без этих знаний об объектах дома, он не имеет права стать умным. Кстати, если Сергей это читает, значит не все потеряно. (Но только опять же статической эта вики база быть не может.)
Создание и храние своей собственной базы знаний это очень дорого, а анализировать в разумные сроки дак вобще неподъёмно, пусть этим гугл занимается. Проще всего использовать эти знания, которые предоставляют нам в удобном виде многочисленные сервисы. Нам останется лишь забрать их и озвучить.
panda5 писал(а): Цепочка:вопрос- разбор вопроса на объекты - поиск внутри базы объектов - анализ - ответ
должна быть для начала НАПОЛНЕНА.
База есть, просто она распределённая, а не храниться у вас на винте. Хотете возложить это на себя, пожалуйста, но я пас, у меня нет столько денег. Почитайте ещё про домены у этого сервиса.
panda5 писал(а): Итак, прежде чем от системы требовать умного поведения не пора ли посмотреть в зеркало, и ответить на один самый кстати важный вопрос: разрешите системе задавать вопросы!
Используя этот модуль можно делать диалоги и если вы в своей команде не укажите в одной фразе все необходимые входные данные МД вас переспросит: "А с этим что?". Это снова доказывает что вы не разбираль с сервисом и с самим модулем.
panda5 писал(а): Ну и второй вопрос вдогонку к этому: чтобы наполнить (действительно наполнить эту внутреннюю вики базу) Я предлагаю для начала совместно с несколькими активистами этого форума начать разработку того самого ГОЛОСОВОГО инструмента наполнения базы.
Во первых это очень быстро начнет набирать знания и описания объектов (телевизор, холодильник, тумбочка, столовые приборы и т.д.), а во вторых - отшлифует механизм настройки на пользователя диалога с системой(а этого уже не хватает ни сири, ни амазону ни другим конкурентам). (кстати Амазон с недавних пор с русским по платным подпискам работает...)
Я согласен что те данные, которые собираются с домашних датчиков иногда полезно хранить, возможно позже создать нейронную сеть и скормить ей данные накопленные за несколько лет, тогда умный дом будет знать ваш распорядок, привычки. Возможно сможет предсказывать какие-то мини желания на основе статистики. Но МД2 с лёгкостью решает и эту проблему. Вам ничего не мешает все значения с датчиков сохранять за любой период времени. Всё будет ограничего лишь вашим винтом и максимальным размером баз данных в MySQL , а в MySQL версии 3.23 это значение 8 миллионов терабайт :).
panda5 писал(а): - разрешить Алисе задавать вопросы (возможно в плане эксперимента не для всех пользователей, а только узкой группе разработчиков-модераторов), вопросы касающиеся любых объектов дома. Объект - его свойства, его действия, действия над ним, взаимодействия этого объекта с другими объектами, ну и конечно же потенциальное описание видов этого объекта (и возможных технических коммуникаций с ним).
Так будет у нас телевизор, его можно смотреть, он выдает звук, он может ломаться, он управляется с пульта(или по сети), может быть умным, с соответственными дополнительными функциями, даже будильником, к нему можно подключать смартфон, камеру, через него можно смотреть программы которые показываются по внешнему расписанию, или контент, который можно скачать/заказать по кабельному, а дополнительно он может для системы умного дома служить монитором для того чтобы показать определенную информацию.
Механизм есть, для этого есть разед "объекты", создайте себе объект "телевизор" и реализуйте в нём свойства: "смотреть", "сломался" итд, методы:"управляется с пульта", "управляется по сети" итд. В чём проблема? Зачем кого-то подключать? Просто садитесь и делаете, а когда всё получится, можно и на суд общий вынести :)
panda5 писал(а): В нашу ВИКИПЕДИЮ умного дома стоит добавить раздел языковых обобщений: например команды к объекту лампа: включить / выключить, могут иметь языковые аналогии: зажечь, свет, слишком темно, светлее, не видно, ничего не видно, "выколи глаз", "да тут как у негра в ж...."
И все это машина должна привести к однозначной команде.
Я вас прошу, ознакомтесь в сервисом api.ai. Он позволяет добавить по моему до 50ти синонимов к одному ит ому же слову, объекту, свойству. Всё это уже давно реализовано, остаётся только научится использовать.

Re: Модуль API.AI

Добавлено: Чт мар 30, 2017 9:55 pm
panda5
Gelezako писал(а):
panda5 писал(а):
Я вас прошу, ознакомтесь в сервисом api.ai. Он позволяет добавить по моему до 50ти синонимов к одному ит ому же слову, объекту, свойству. Всё это уже давно реализовано, остаётся только научится использовать.

Не изучил данную систему целиком, это правда, не было времени, но если вы действительно так утверждаете, что алфавит объектов, универсальный, в котором есть уже описание всех объектов умного дома существует, и надо просто научиться его использовать, то дайте ссылочку, где мне найти базу ВСЕХ телевизоров, хотя бы для примера.

А если нет, то давайте все же перестанем бросаться голословными "вы ничего не знаете". Мы слишком мало знакомы, чтобы делать подобные выводы. Это опенсорсный проект, и все тут имеют равные права, обсуждать, советовать, делать, ошибаться.

Прекрасно, что вы с таким усердием рекламируете свой модуль...... Вернее модуль гугла