[Модуль] API.AI (apiai)
Модератор: immortal
-
- Сообщения: 1553
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Модуль API.AI
С русским - нет. И в ближайшее время не обещают. К тому же ключевая фраза OK Google как-то не очень подходит для общения с умным домомvitt76 писал(а):А Google assistant не работает пока?
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: Модуль API.AI
делись кодом )fandaymon писал(а): Ну и совершенно зря... Для некоторых применений API.AI очень удобен. Например, я с его помощью реализовал добавление голосом в гугл календарь разных мероприятий
Говоришь, например Добавь напоминание в среду в 17:00 встреча или Добавь напоминание Завтра День рождения или Добавь напоминание на 30 марта в десять Отправить показания, а модуль возвращает тебе дату,время и текст напоминания, остаётся только добавить в календарь. Да, конечно, всё это можно сделать и шаблонами, но придётся помучиться...
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
- Gelezako
- Сообщения: 963
- Зарегистрирован: Чт июн 02, 2016 9:33 pm
- Благодарил (а): 205 раз
- Поблагодарили: 106 раз
- Контактная информация:
Re: Модуль API.AI
ребят, на счёт приоритетов, ну вот лично я уже давно отказался от шаблонов и использую только API.AI, но я понимаю что другим удобнее шаблоны. Что думаете если добавить в настройки возможность через интерфейс выставлять приоритет для шаблонов, ПУ и API.AI ?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
-
- Сообщения: 1553
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Модуль API.AI
Скачал на https://github.com/google/google-api-php-client файл, распаковал его в директорию Google в корне веб-сервера. В lib не стал помещать, так как там старая гугловская библиотека от модуля Ивана.Gelezako писал(а):делись кодом )fandaymon писал(а): Ну и совершенно зря... Для некоторых применений API.AI очень удобен. Например, я с его помощью реализовал добавление голосом в гугл календарь разных мероприятий
Говоришь, например Добавь напоминание в среду в 17:00 встреча или Добавь напоминание Завтра День рождения или Добавь напоминание на 30 марта в десять Отправить показания, а модуль возвращает тебе дату,время и текст напоминания, остаётся только добавить в календарь. Да, конечно, всё это можно сделать и шаблонами, но придётся помучиться...
Далее - сделал сервисный экаунт, как написано здесь http://rtportal.ru/index.php?id=164:calendar-python-bot
Получил джейсон, сохранил его на Desktop
Зашел в настройки своего гугл-календаря и в пункте Доступ для отдельных пользователей, дал разрешение на редактирование имейлу, который присваивается сервисному экаунту (Без этого пункта сервисный экаунт не хотел видеть мой календарь)
На 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);
Проверка о мероприятиях на сегодня примерно так
СпойлерПоказать
Код: Выделить всё
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;
}
- Рейтинг: 1.16%
- vitt76
- Сообщения: 372
- Зарегистрирован: Вс апр 09, 2017 2:36 pm
- Благодарил (а): 101 раз
- Поблагодарили: 51 раз
Re: Модуль API.AI
Я встроенной интеграции в api.ai, с ходу не разобрался что там надо сделать.fandaymon писал(а):С русским - нет. И в ближайшее время не обещают. К тому же ключевая фраза OK Google как-то не очень подходит для общения с умным домомvitt76 писал(а):А Google assistant не работает пока?
Broadlink + Orange Pi PC ARMBIAN 5.31
-
- Сообщения: 587
- Зарегистрирован: Сб мар 19, 2016 7:24 pm
- Благодарил (а): 299 раз
- Поблагодарили: 27 раз
Re: Модуль API.AI
Камрады, а кто нибудь может подсказать как в обсуждаемом сервисе переключаются контексты? если уж пользоваться, то построение нелинейный диалогов кажется наиболее правильным вариантом.
С простым получением параметров из той или иной фразы проблем не возникло. Отдельное спасибо Игорю (Gelezako).
т.е. "расскажи о погоде", где "погода" является сущностью/параметром
или "расскажи анекдот", где последнее параметр, с подобным все ок, а вот так, чтобы
"расскажи" - как контекст с исходящими контекстами: "о погоде", "анекдот", "новости", ..... с этим затык
PS. про построение нелинейных диалогов читал в документации сервиса
https://dialogflow.com/docs/dialogs
но на строчке
С простым получением параметров из той или иной фразы проблем не возникло. Отдельное спасибо Игорю (Gelezako).
т.е. "расскажи о погоде", где "погода" является сущностью/параметром
или "расскажи анекдот", где последнее параметр, с подобным все ок, а вот так, чтобы
"расскажи" - как контекст с исходящими контекстами: "о погоде", "анекдот", "новости", ..... с этим затык
PS. про построение нелинейных диалогов читал в документации сервиса
https://dialogflow.com/docs/dialogs
но на строчке
возникает устойчивое непонимание происходящего...
Set the Action to question.location
...
MD на raspberry pi3
- lanket
- Сообщения: 1168
- Зарегистрирован: Вт окт 14, 2014 11:27 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 260 раз
- Поблагодарили: 163 раза
Re: Модуль API.AI
Тут объясняется доходчиво и по русски, есть и про контексты.Denis_k писал(а):Камрады, а кто нибудь может подсказать как в обсуждаемом сервисе переключаются контексты?...
Оно?
Отправлено с моего Redmi Note 4 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
- lanket
- Сообщения: 1168
- Зарегистрирован: Вт окт 14, 2014 11:27 pm
- Откуда: Санкт-Петербург
- Благодарил (а): 260 раз
- Поблагодарили: 163 раза
Re: Модуль API.AI
Правда, помоему модуль Мажордомо не отрабатывает контексты. Вроде как обсуждалось ранее.
Отправлено с моего Redmi Note 4 через Tapatalk
Отправлено с моего Redmi Note 4 через Tapatalk
Разработка голосового асистента для Мажордомо по любому ключевому слову.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.
Обсужение
gitHub 2й версии терминала
GitHub модуля для МД
gitHub сырого модуля 2й версии
Connect
Rasberry Pi 2, MDM, MySensors. И говорящий апельсин.