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

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

Модератор: immortal

fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Пт дек 14, 2018 4:54 pm

Yashalta писал(а):
Пт дек 14, 2018 4:49 pm
fandaymon писал(а):
Пт дек 14, 2018 1:10 pm
Скрипт записывается в Actions модуля Api.Ai. Надо чтобы этот интент отработал, тогда в списке Actions появляется Add_Event с параметрами. Нажимая карандашик можно отредактировать, что именно он будет делать - именно туда надо скопировать мой скрипт.
Сделал так как Вы описали выше! Интент отработал и в списке Actions появился Add_Event далее нажал на карандашик и добавил Ваш скрипт! После положил фаил на Raspberry где у меня MajorDomo живет, по этому пути как у Вас /home/pi/Desktop/zerg_secret.json и так же в скрипте поправил эту строчку на свое значение

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

putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/pi/Desktop/zerg_secret.json');
Снова тестирую и получаю это в новом окне браузера

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

Warning: require_once(./Google/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4

Fatal error: require_once(): Failed opening required './Google/vendor/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4
Такое ощущение что просит какой то модуль?!?!
Просит не модуль, а пакет google-api-php-client https://github.com/googleapis/google-api-php-client
То что там находится в директории Google надо скачать к себе в /var/www/Google
Yashalta
Сообщения: 315
Зарегистрирован: Вс май 20, 2018 9:27 am
Благодарил (а): 160 раз
Поблагодарили: 29 раз

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

Сообщение Yashalta » Пт дек 14, 2018 8:22 pm

fandaymon писал(а):
Пт дек 14, 2018 4:54 pm
Просит не модуль, а пакет google-api-php-client https://github.com/googleapis/google-api-php-client
То что там находится в директории Google надо скачать к себе в /var/www/Google
Я сделал скрин того, что делал
Изображение
под цифрой 1 - это я показал, что скачал архив google-api-php-client-master.zip от сюда https://github.com/googleapis/google-api-php-client
на raspbery где живет у меня MajorDomo я создал папку /var/www/Google
Под цифрой 2 -показал, что содержимое архива google-api-php-client-master.zip я скопировал на Rassberry в папку /var/www/Google
Снова попробовал и результат тот же!

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

Warning: require_once(./Google/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4

Fatal error: require_once(): Failed opening required './Google/vendor/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4
Перезагрузил Raspberry попробовал снова и результат прежний.
Тогда я посмотрел права на созданную мною папку /var/www/Google и вот что оно показало

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

drwxr-xr-x  2 root root    3488 Dec 14 19:29 Google
Возможно нужно дать права пользователю "pi"?

Вопрос: У меня есть голосовые команды "Шаблоны поведения" и они полностью игнорируются системой! Все мои голосовые команды контролироваться при помощи модуля API.AI Можно ли реализовать что бы модуль API.AI работал только с теми голосовыми командами которые в нем прописаны и не трогать мои "Шаблоны поведения"?
Или тут нужно сделать выбор между "Шаблонами поведения" и Модулем API.AI?
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Пт дек 14, 2018 9:37 pm

Yashalta писал(а):
Пт дек 14, 2018 8:22 pm
fandaymon писал(а):
Пт дек 14, 2018 4:54 pm
Просит не модуль, а пакет google-api-php-client https://github.com/googleapis/google-api-php-client
То что там находится в директории Google надо скачать к себе в /var/www/Google
Я сделал скрин того, что делал
Изображение
под цифрой 1 - это я показал, что скачал архив google-api-php-client-master.zip от сюда https://github.com/googleapis/google-api-php-client
на raspbery где живет у меня MajorDomo я создал папку /var/www/Google
Под цифрой 2 -показал, что содержимое архива google-api-php-client-master.zip я скопировал на Rassberry в папку /var/www/Google
Снова попробовал и результат тот же!

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

Warning: require_once(./Google/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4

Fatal error: require_once(): Failed opening required './Google/vendor/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4
Перезагрузил Raspberry попробовал снова и результат прежний.
Тогда я посмотрел права на созданную мною папку /var/www/Google и вот что оно показало

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

drwxr-xr-x  2 root root    3488 Dec 14 19:29 Google
Возможно нужно дать права пользователю "pi"?

Вопрос: У меня есть голосовые команды "Шаблоны поведения" и они полностью игнорируются системой! Все мои голосовые команды контролироваться при помощи модуля API.AI Можно ли реализовать что бы модуль API.AI работал только с теми голосовыми командами которые в нем прописаны и не трогать мои "Шаблоны поведения"?
Или тут нужно сделать выбор между "Шаблонами поведения" и Модулем API.AI?
Надо было папку Гугл скопировать в папку Гугл. Ну или прописать в include правильный путь до файла autoload.php

У меня в файле исправлено, чтобы шаблоны вызывались раньше всего остального, поскольку в ранних версиях это нельзя было сделать настройками. Сейчас, кажется, в версии альфа можно расставить нужный порядок для вызова шаблонов, api.ai, простых устройств. Я не пробовал, поскольку не обновляю версию МДМ
За это сообщение автора fandaymon поблагодарил:
Yashalta (Пт дек 14, 2018 9:51 pm)
Рейтинг: 1.16%
Yashalta
Сообщения: 315
Зарегистрирован: Вс май 20, 2018 9:27 am
Благодарил (а): 160 раз
Поблагодарили: 29 раз

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

Сообщение Yashalta » Пт дек 14, 2018 10:01 pm

fandaymon писал(а):
Пт дек 14, 2018 9:37 pm
Надо было папку Гугл скопировать в папку Гугл. Ну или прописать в include правильный путь до файла autoload.php

У меня в файле исправлено, чтобы шаблоны вызывались раньше всего остального, поскольку в ранних версиях это нельзя было сделать настройками. Сейчас, кажется, в версии альфа можно расставить нужный порядок для вызова шаблонов, api.ai, простых устройств. Я не пробовал, поскольку не обновляю версию МДМ
Поправил пути в скрипте и сейчас "работает"! Теперь нужно потренировать на нескольких фразах, так чтобы бралась обязательная дата, необязательное время, а всё что после - в само напоминание с этим пока у меня проблема!
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Пт дек 14, 2018 10:59 pm

Yashalta писал(а):
Пт дек 14, 2018 10:01 pm
fandaymon писал(а):
Пт дек 14, 2018 9:37 pm
Надо было папку Гугл скопировать в папку Гугл. Ну или прописать в include правильный путь до файла autoload.php

У меня в файле исправлено, чтобы шаблоны вызывались раньше всего остального, поскольку в ранних версиях это нельзя было сделать настройками. Сейчас, кажется, в версии альфа можно расставить нужный порядок для вызова шаблонов, api.ai, простых устройств. Я не пробовал, поскольку не обновляю версию МДМ
Поправил пути в скрипте и сейчас "работает"! Теперь нужно потренировать на нескольких фразах, так чтобы бралась обязательная дата, необязательное время, а всё что после - в само напоминание с этим пока у меня проблема!
Отлично! 8-)
У меня 14 фраз забито - вроде работает без сбоев
Ещё добавил в скрипт, в начале

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

if ($params['Event_Time']=='' and (int)substr($params['Event_Date'],0,4)<2018) {
 $params['Event_Time']=substr($params['Event_Date'],0,2) . ':' . substr($params['Event_Date'],2,2);
 $params['Event_Date']='2018' . substr($params['Event_Time'],4);
}
а то иногда api.ai путало дату и время...
За это сообщение автора fandaymon поблагодарил:
Yashalta (Пт дек 14, 2018 11:34 pm)
Рейтинг: 1.16%
Yashalta
Сообщения: 315
Зарегистрирован: Вс май 20, 2018 9:27 am
Благодарил (а): 160 раз
Поблагодарили: 29 раз

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

Сообщение Yashalta » Пт дек 14, 2018 11:42 pm

fandaymon писал(а):
Пт дек 14, 2018 10:59 pm
Отлично! 8-)
У меня 14 фраз забито - вроде работает без сбоев
Ещё добавил в скрипт, в начале

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

if ($params['Event_Time']=='' and (int)substr($params['Event_Date'],0,4)<2018) {
 $params['Event_Time']=substr($params['Event_Date'],0,2) . ':' . substr($params['Event_Date'],2,2);
 $params['Event_Date']='2018' . substr($params['Event_Time'],4);
}
а то иногда api.ai путало дату и время...
Спасибо, добавил ваше дополнение в код! Но, я думаю, что то, где то я накосячил!
Сделал "наброски" голосовых команд и в результате модуль меня "ведет" в диалоге но, не записывает в календарь! Я проверял как в самом Gogole календаре так и в модуле на MajorDomо. Ничего ни где не добавляется!
Хотя все должно работать!

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

{
    "id": "6c1fae29-d6ac-4d48-87fd-cc5fa71598ab",
    "timestamp": "2018-12-14T20:30:24.476Z",
    "lang": "ru",
    "result": {
        "source": "agent",
        "resolvedQuery": "Купить нужно хлеб!",
        "action": "",
        "actionIncomplete": false,
        "parameters": {
            "Event_Desc": "Купить нужно хлеб",
            "Event_Time": "18:19:00",
            "Event_Date": "2018-12-23"
        },
        "contexts": [],
        "metadata": {
            "intentId": "3c92b935-c9e0-44f2-9a0b-b8e9df32fbfc",
            "webhookUsed": "false",
            "webhookForSlotFillingUsed": "false",
            "isFallbackIntent": "false",
            "intentName": "Add_Event"
        },
        "fulfillment": {
            "speech": "Все записала!",
            "messages": [
                {
                    "type": 0,
                    "speech": "Заметка добавлена!"
                }
            ]
        },
        "score": 1
    },
    "status": {
        "code": 200,
        "errorType": "success"
    },
    "sessionId": ".5c10d8c32cb8b"
}
Изображение
Куда копать уму не приложу! :(
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Сб дек 15, 2018 12:07 am

Yashalta писал(а):
Пт дек 14, 2018 11:42 pm
fandaymon писал(а):
Пт дек 14, 2018 10:59 pm
Отлично! 8-)
У меня 14 фраз забито - вроде работает без сбоев
Ещё добавил в скрипт, в начале

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

if ($params['Event_Time']=='' and (int)substr($params['Event_Date'],0,4)<2018) {
 $params['Event_Time']=substr($params['Event_Date'],0,2) . ':' . substr($params['Event_Date'],2,2);
 $params['Event_Date']='2018' . substr($params['Event_Time'],4);
}
а то иногда api.ai путало дату и время...
Спасибо, добавил ваше дополнение в код! Но, я думаю, что то, где то я накосячил!
Сделал "наброски" голосовых команд и в результате модуль меня "ведет" в диалоге но, не записывает в календарь! Я проверял как в самом Gogole календаре так и в модуле на MajorDomо. Ничего ни где не добавляется!
Хотя все должно работать!

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

{
    "id": "6c1fae29-d6ac-4d48-87fd-cc5fa71598ab",
    "timestamp": "2018-12-14T20:30:24.476Z",
    "lang": "ru",
    "result": {
        "source": "agent",
        "resolvedQuery": "Купить нужно хлеб!",
        "action": "",
        "actionIncomplete": false,
        "parameters": {
            "Event_Desc": "Купить нужно хлеб",
            "Event_Time": "18:19:00",
            "Event_Date": "2018-12-23"
        },
        "contexts": [],
        "metadata": {
            "intentId": "3c92b935-c9e0-44f2-9a0b-b8e9df32fbfc",
            "webhookUsed": "false",
            "webhookForSlotFillingUsed": "false",
            "isFallbackIntent": "false",
            "intentName": "Add_Event"
        },
        "fulfillment": {
            "speech": "Все записала!",
            "messages": [
                {
                    "type": 0,
                    "speech": "Заметка добавлена!"
                }
            ]
        },
        "score": 1
    },
    "status": {
        "code": 200,
        "errorType": "success"
    },
    "sessionId": ".5c10d8c32cb8b"
}
Изображение
Куда копать уму не приложу! :(
Надо смотреть что и как настроено - должно быть 2 акаунта гугла - основной (например vasja.pupkin@gmail.com) и служебный (blabla@verdant-bulwark....). В основном календаре Васи Пупкина должен быть включен доступ для служебного (Внесение изменений и предоставление доступа)
В самом скрипте в строчке

$calendarId = 'mail@gmail.com'; // Тут надо поставить свой адрес

должен стоять адрес основного экаунта (т.е. vasja.pupkin@gmail.com)

Ну и если всё настроено правильно, а не работает, то можно сделать Новый сценарий, скопировать туда весь код, забить вместо параметров какие-нибудь дату, время и описание и при помощи echo выводить на экран что происходит в скрипте - есть ли доступ к джейсену с креденшенами, есть ли доступ к календарю и т.д.
Аватара пользователя
Kvantos
Сообщения: 295
Зарегистрирован: Вт окт 31, 2017 1:05 pm
Благодарил (а): 26 раз
Поблагодарили: 49 раз

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

Сообщение Kvantos » Пн мар 25, 2019 5:29 pm

Есть маленькие пожелания для удобства работы с модулем:
1. Помечать в списке Actions (можно цветом), которые содержат в себе пользовательские обработчики (код) + добавить сортировку по этому признаку
2. При попытке удаления Actions, содержащие пользовательские обработчики - выводить в запрос на подтверждение удаления так-же БОЛЬШИМИ красными буквами, что там есть пользовательский код, а то можно случайно делов натворить... ))

П,С, Уверен, что это намного повысит юзабилити модуля и спасет нервы пользователям, которые сначала удаляют, а потом вспоминают, что там было ))
MDM живет на 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
kosem
Сообщения: 120
Зарегистрирован: Вт дек 18, 2018 3:26 pm
Откуда: Москва
Благодарил (а): 35 раз
Поблагодарили: 4 раза

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

Сообщение kosem » Пт апр 19, 2019 3:35 pm

Подскажите, пожалуйста!
Сообщения от апи.аи приходят, но тут же "Неизвестная команда..." и именно это Алиса и произносит.
В ThisComputer->commandReceived->Методы все удалил, CONNECT отключил.
Надо еще что-то где-то почистить?

Подскажите еще)) Как озвучить ответы от Small Talk?
Win10
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

Сообщение nick7zmail » Пт апр 19, 2019 9:56 pm

Плохо почистили. Проверьте как метод объекта, так и классовый метод.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить