[Модуль] API.AI (apiai)
Модератор: immortal
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: [Модуль] API.AI (apiai)
- Рейтинг: 1.16%
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: Модуль API.AI
вы неврено урл сайта вписали, нужно http://api.ai , а вообще это старый домен, они переехали вот сюда https://dialogflow.com/Yashalta писал(а): ↑Пн дек 10, 2018 12:11 pmА сайт http://apia.ai/ открывается? или там другая должна быть ссылка? Я пытаюсь проделать все шаги, что описаны выше и дошел до места На apia.ai сделал intent Add_Event, который возвращает Event_Dateгде нужно ... но, сайт не открывается!!!
- Рейтинг: 1.16%
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
- Kvantos
- Сообщения: 295
- Зарегистрирован: Вт окт 31, 2017 1:05 pm
- Благодарил (а): 26 раз
- Поблагодарили: 49 раз
Re: [Модуль] API.AI (apiai)
это сайт https://dialogflow.com/
адд: ух как все быстро среагировали... значит пользователи сего чуда есть
адд: ух как все быстро среагировали... значит пользователи сего чуда есть
- Рейтинг: 1.16%
MDM живет на 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Модуль API.AI
Он теперь называется https://dialogflow.com/Yashalta писал(а): ↑Пн дек 10, 2018 12:11 pm
А сайт http://apia.ai/ открывается? или там другая должна быть ссылка? Я пытаюсь проделать все шаги, что описаны выше и дошел до места На apia.ai сделал intent Add_Event, который возвращает Event_Dateгде нужно ... но, сайт не открывается!!!
- Рейтинг: 1.16%
-
- Сообщения: 315
- Зарегистрирован: Вс май 20, 2018 9:27 am
- Благодарил (а): 160 раз
- Поблагодарили: 29 раз
Re: Модуль API.AI
Подскажите, делаю в впервые... Может где видео инструкция для чайников есть?fandaymon писал(а): ↑Ср фев 14, 2018 3:53 am...
На apia.ai сделал intent Add_Event, который возвращает Event_Date @sys.date, Event_Desc @sys.any и Event_Time@sys.time. Потренировал на нескольких фразах, так чтобы бралась обязательная дата, необязательное время, а всё что после - в само напоминание
Ну и сделал в модуле api.ai для Add_Event такой скриптикКак-то так...СпойлерПоказатьКод: Выделить всё
// $params['Event_Date'] // $params['Event_Desc'] // $params['Event_Time'] require_once './Google/vendor/autoload.php'; putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/pi/Desktop/sarah-home-calendar.json'); $client = new Google_Client(); $event_desc=$params['Event_Desc']; $client->useApplicationDefaultCredentials(); $client->setApplicationName(‘TestCalendarAPI’); $client->setScopes('https://www.googleapis.com/auth/calendar'); $service = new Google_Service_Calendar($client); $calendarId = 'mail@gmail.com'; // Тут надо поставить свой адрес if ($params['Event_Time']=='') { $event = new Google_Service_Calendar_Event(array( 'summary' => $event_desc, 'location' => '', 'description' => '', 'start' => array( 'date' => $params['Event_Date'], 'timeZone' => 'Europe/Riga', ), 'end' => array( 'date' => $params['Event_Date'], 'timeZone' => 'Europe/Riga', ), 'attendees' => array( array('email' => 'mail@gmail.com'), ), 'reminders' => array( 'useDefault' => FALSE, 'overrides' => array( array('method' => 'email', 'minutes' => 24 * 60), array('method' => 'popup', 'minutes' => 10), ), ), )); } else { $event = new Google_Service_Calendar_Event(array( 'summary' => $event_desc, 'location' => '', 'description' => '', 'start' => array( 'dateTime' => $params['Event_Date'] . 'T' . $params['Event_Time'], 'timeZone' => 'Europe/Riga', ), 'end' => array( 'dateTime' => $params['Event_Date'] . 'T' . $params['Event_Time'], 'timeZone' => 'Europe/Riga', ), 'attendees' => array( array('email' => 'mail@gmail.com'), ), 'reminders' => array( 'useDefault' => FALSE, 'overrides' => array( array('method' => 'email', 'minutes' => 24 * 60), array('method' => 'popup', 'minutes' => 10), ), ), )); } $event = $service->events->insert($calendarId, $event);
Проверка о мероприятиях на сегодня примерно так
Сначала проверяются праздники, потом то что запланировано в гугл-календаре. За качество кода не отвечаю, так как на PHP до Мажордомо не писал, но вроде работаетСпойлерПоказатьКод: Выделить всё
require_once './Google/vendor/autoload.php'; putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/pi/Desktop/sarah-home-calendar.json'); $client = new Google_Client(); $client->useApplicationDefaultCredentials(); $client->setApplicationName(‘TestCalendarAPI’); $client->setScopes('https://www.googleapis.com/auth/calendar'); $service = new Google_Service_Calendar($client); $calendarId = 'lv.latvian#holiday@group.v.calendar.google.com'; $optParams = array( 'maxResults' => 10, 'orderBy' => 'startTime', 'singleEvents' => TRUE, 'timeMin' => date('c'), 'timeMax' => date('Y-m-d',strtotime('tomorrow')) .'T00:00:00+02:00', ); $results = $service->events->listEvents($calendarId, $optParams); $today_events=''; if (count($results->getItems()) == 0) { } else { foreach ($results->getItems() as $event) { $start = $event->start->dateTime; if (empty($start)) { $start=''; } else { $start=date_format(date_create($start),'H:i'); } $today_events.=$start . ' ' . holidaysru($event->getSummary()) . '. '; } } $calendarId = 'mail@gmail.com'; $optParams = array( 'maxResults' => 10, 'orderBy' => 'startTime', 'singleEvents' => TRUE, 'timeMin' => date('c'), 'timeMax' => date('Y-m-d',strtotime('tomorrow')) .'T00:00:00+02:00', ); $results = $service->events->listEvents($calendarId, $optParams); if (count($results->getItems()) == 0) { } else { foreach ($results->getItems() as $event) { $start = $event->start->dateTime; if (empty($start)) { $start=''; } else { $start=date_format(date_create($start),'H:i'); } $today_events.=$start . ' ' . $event->getSummary() . '. '; } } if ($today_events<>'') { $hello.='Сегодня: ' . $today_events; }
Вот пытаюсь создать новый "Intend name" какое имя нужно дать, возможно, нужно присвоить какое то специальное или имя не имеет значения? Как сделать, что бы он возвращал то, что автор поста описал выше ...возвращает Event_Date @sys.date, Event_Desc @sys.any и Event_Time@sys.time.
Куда прописывать скрипт?
- Kvantos
- Сообщения: 295
- Зарегистрирован: Вт окт 31, 2017 1:05 pm
- Благодарил (а): 26 раз
- Поблагодарили: 49 раз
Re: [Модуль] API.AI (apiai)
(1) Имя любое, латиницей
(2) - сюда ничего пока не надо - это события по которым активируется интент
Потом "набить" ентитиес
Потом их "обозначить" в интентах
Вот небольшая "обучалка"
https://www.youtube.com/watch?v=gWNUg_v25dw
https://www.youtube.com/watch?v=biN00SoMRI8
https://www.youtube.com/watch?v=jJFTIZ4kLTY
(2) - сюда ничего пока не надо - это события по которым активируется интент
Потом "набить" ентитиес
Потом их "обозначить" в интентах
Вот небольшая "обучалка"
https://www.youtube.com/watch?v=gWNUg_v25dw
https://www.youtube.com/watch?v=biN00SoMRI8
https://www.youtube.com/watch?v=jJFTIZ4kLTY
- Рейтинг: 1.16%
MDM живет на 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
- Kvantos
- Сообщения: 295
- Зарегистрирован: Вт окт 31, 2017 1:05 pm
- Благодарил (а): 26 раз
- Поблагодарили: 49 раз
Re: [Модуль] API.AI (apiai)
Вот пример моего интента управления любым объектом в любой комнате
- Вложения
-
- Snap 2018-12-10 at 14.26.57.png (43.47 КБ) 3767 просмотров
-
- Snap 2018-12-10 at 14.25.02.png (27.93 КБ) 3768 просмотров
-
- Snap 2018-12-10 at 14.26.08.png (98.51 КБ) 3768 просмотров
-
- Snap 2018-12-10 at 14.20.49.png (69.5 КБ) 3771 просмотр
- Рейтинг: 1.16%
MDM живет на 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
-
- Сообщения: 315
- Зарегистрирован: Вс май 20, 2018 9:27 am
- Благодарил (а): 160 раз
- Поблагодарили: 29 раз
Re: Модуль API.AI
Подскажите, не понимаю т.к. делаю в первый раз...fandaymon писал(а): ↑Ср фев 14, 2018 3:53 am...сделал intent Add_Event, который возвращает Event_Date @sys.date, Event_Desc @sys.any и Event_Time@sys.time. Потренировал на нескольких фразах, так чтобы бралась обязательная дата, необязательное время, а всё что после - в само напоминание
Ну и сделал в модуле api.ai для Add_Event такой скриптикКак-то так...СпойлерПоказатьКод: Выделить всё
// $params['Event_Date'] // $params['Event_Desc'] // $params['Event_Time'] require_once './Google/vendor/autoload.php'; putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/pi/Desktop/sarah-home-calendar.json'); $client = new Google_Client(); $event_desc=$params['Event_Desc']; $client->useApplicationDefaultCredentials(); $client->setApplicationName(‘TestCalendarAPI’); $client->setScopes('https://www.googleapis.com/auth/calendar'); $service = new Google_Service_Calendar($client); $calendarId = 'mail@gmail.com'; // Тут надо поставить свой адрес if ($params['Event_Time']=='') { $event = new Google_Service_Calendar_Event(array( 'summary' => $event_desc, 'location' => '', 'description' => '', 'start' => array( 'date' => $params['Event_Date'], 'timeZone' => 'Europe/Riga', ), 'end' => array( 'date' => $params['Event_Date'], 'timeZone' => 'Europe/Riga', ), 'attendees' => array( array('email' => 'mail@gmail.com'), ), 'reminders' => array( 'useDefault' => FALSE, 'overrides' => array( array('method' => 'email', 'minutes' => 24 * 60), array('method' => 'popup', 'minutes' => 10), ), ), )); } else { $event = new Google_Service_Calendar_Event(array( 'summary' => $event_desc, 'location' => '', 'description' => '', 'start' => array( 'dateTime' => $params['Event_Date'] . 'T' . $params['Event_Time'], 'timeZone' => 'Europe/Riga', ), 'end' => array( 'dateTime' => $params['Event_Date'] . 'T' . $params['Event_Time'], 'timeZone' => 'Europe/Riga', ), 'attendees' => array( array('email' => 'mail@gmail.com'), ), 'reminders' => array( 'useDefault' => FALSE, 'overrides' => array( array('method' => 'email', 'minutes' => 24 * 60), array('method' => 'popup', 'minutes' => 10), ), ), )); } $event = $service->events->insert($calendarId, $event);
Проверка о мероприятиях на сегодня примерно так
Сначала проверяются праздники, потом то что запланировано в гугл-календаре. За качество кода не отвечаю, так как на PHP до Мажордомо не писал, но вроде работаетСпойлерПоказатьКод: Выделить всё
require_once './Google/vendor/autoload.php'; putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/pi/Desktop/sarah-home-calendar.json'); $client = new Google_Client(); $client->useApplicationDefaultCredentials(); $client->setApplicationName(‘TestCalendarAPI’); $client->setScopes('https://www.googleapis.com/auth/calendar'); $service = new Google_Service_Calendar($client); $calendarId = 'lv.latvian#holiday@group.v.calendar.google.com'; $optParams = array( 'maxResults' => 10, 'orderBy' => 'startTime', 'singleEvents' => TRUE, 'timeMin' => date('c'), 'timeMax' => date('Y-m-d',strtotime('tomorrow')) .'T00:00:00+02:00', ); $results = $service->events->listEvents($calendarId, $optParams); $today_events=''; if (count($results->getItems()) == 0) { } else { foreach ($results->getItems() as $event) { $start = $event->start->dateTime; if (empty($start)) { $start=''; } else { $start=date_format(date_create($start),'H:i'); } $today_events.=$start . ' ' . holidaysru($event->getSummary()) . '. '; } } $calendarId = 'mail@gmail.com'; $optParams = array( 'maxResults' => 10, 'orderBy' => 'startTime', 'singleEvents' => TRUE, 'timeMin' => date('c'), 'timeMax' => date('Y-m-d',strtotime('tomorrow')) .'T00:00:00+02:00', ); $results = $service->events->listEvents($calendarId, $optParams); if (count($results->getItems()) == 0) { } else { foreach ($results->getItems() as $event) { $start = $event->start->dateTime; if (empty($start)) { $start=''; } else { $start=date_format(date_create($start),'H:i'); } $today_events.=$start . ' ' . $event->getSummary() . '. '; } } if ($today_events<>'') { $hello.='Сегодня: ' . $today_events; }
Куда класть скрипт о котором говорит автор?
Если сюда,
то, думаю это не совсем правильно т.к. нужно удалить имеющийся по дефолту скрип?!?! Или тут еще есть место куда можно добавить?
Так же у меня не получается и реализовать что бы Add_Event, возвращал Event_Date @sys.date, Event_Desc @sys.any и Event_Time @sys.time
А здесь я просто показываю какой Entities я создал
-
- Сообщения: 1554
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: [Модуль] API.AI (apiai)
Скрипт записывается в Actions модуля Api.Ai. Надо чтобы этот интент отработал, тогда в списке Actions появляется Add_Event с параметрами. Нажимая карандашик можно отредактировать, что именно он будет делать - именно туда надо скопировать мой скрипт.
Для того чтобы параметры возвращались, надо вписывать пробные строчки и выделять в них дату, время и описание события
Для того чтобы параметры возвращались, надо вписывать пробные строчки и выделять в них дату, время и описание события
-
- Сообщения: 315
- Зарегистрирован: Вс май 20, 2018 9:27 am
- Благодарил (а): 160 раз
- Поблагодарили: 29 раз
Re: [Модуль] API.AI (apiai)
Сделал так как Вы описали выше! Интент отработал и в списке Actions появился Add_Event далее нажал на карандашик и добавил Ваш скрипт! После положил фаил zerg_secret.json на 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