[Модуль] API.AI (apiai)
Модератор: immortal
-
- Сообщения: 27
- Зарегистрирован: Ср янв 10, 2018 3:24 pm
- Благодарил (а): 15 раз
- Поблагодарили: 2 раза
Re: Модуль API.AI
Ok! И мне помогло! Спасибо!
Только не очень хорошо, если это войдет в систему каждый месяц бота создавать.
Только не очень хорошо, если это войдет в систему каждый месяц бота создавать.
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Модуль API.AI
На форуме пишут, что уже и так починили. Проверить не могу, т.к. уже пересоздал агента.
-
- Сообщения: 114
- Зарегистрирован: Пн мар 27, 2017 8:01 pm
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
Re: Модуль API.AI
Всем привет!
Мне очень стыдно задавать этот вопрос, но видимо сам не пойму...
Как скармливать внешние диалоги данному модулю? Через Test Query всё работает, через консольку команд тоже, но куда пихать фразы от того же google home. Google home через IFTTT передает фразу, как параметр для скрипта. Т.е. на входе у меня есть скрипт с переменной, в которой содержится текст. Куда можно передать значение данной переменной, что бы запустилась обработка через сабж ?
Мне очень стыдно задавать этот вопрос, но видимо сам не пойму...
Как скармливать внешние диалоги данному модулю? Через Test Query всё работает, через консольку команд тоже, но куда пихать фразы от того же google home. Google home через IFTTT передает фразу, как параметр для скрипта. Т.е. на входе у меня есть скрипт с переменной, в которой содержится текст. Куда можно передать значение данной переменной, что бы запустилась обработка через сабж ?
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Модуль API.AI
diver писал(а): ↑Ср авг 22, 2018 1:48 pmВсем привет!
Мне очень стыдно задавать этот вопрос, но видимо сам не пойму...
Как скармливать внешние диалоги данному модулю? Через Test Query всё работает, через консольку команд тоже, но куда пихать фразы от того же google home. Google home через IFTTT передает фразу, как параметр для скрипта. Т.е. на входе у меня есть скрипт с переменной, в которой содержится текст. Куда можно передать значение данной переменной, что бы запустилась обработка через сабж ?
Код: Выделить всё
say('привет', 0, 5, 'terminal13')
13 - ID терминала
- Рейтинг: 1.16%
-
- Сообщения: 114
- Зарегистрирован: Пн мар 27, 2017 8:01 pm
- Благодарил (а): 7 раз
- Поблагодарили: 1 раз
Re: Модуль API.AI
Блин... пробовал просто say("привет",2) - не работает. Спасибо!!!!olehs писал(а): ↑Ср авг 22, 2018 2:21 pmздесь 5 - ID юзераКод: Выделить всё
say('привет', 0, 5, 'terminal13')
13 - ID терминала
- Kvantos
- Сообщения: 295
- Зарегистрирован: Вт окт 31, 2017 1:05 pm
- Благодарил (а): 26 раз
- Поблагодарили: 49 раз
Re: Модуль API.AI
По поводу описания: https://majordomo.smartliving.ru/Main/ModuleApiai
The page "Main/ModuleApiai" doesn't exist.
Подскажите плс. где сейчас обитает
The page "Main/ModuleApiai" doesn't exist.
Подскажите плс. где сейчас обитает
MDM живет на 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: Модуль API.AI
https://kb.smartliving.ru/category/modu ... piai_help/Kvantos писал(а): ↑Пн сен 17, 2018 6:01 pmПо поводу описания: https://majordomo.smartliving.ru/Main/ModuleApiai
The page "Main/ModuleApiai" doesn't exist.
Подскажите плс. где сейчас обитает
- Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 27
- Зарегистрирован: Ср янв 10, 2018 3:24 pm
- Благодарил (а): 15 раз
- Поблагодарили: 2 раза
Re: [Модуль] API.AI (apiai)
Господа, добрый вечер! А у всех после последнего обновления из альфы, алиса не произносит default response модуля api.ai? Или это только у меня сломалось. Хотя из Test Query отрабатывает верно и даже произносит фразу, а вот если просишь голосом, то тишина. Причём команды отрабатывает верно, а вот голосового сопровождения нет.
PS. Анализируя ситуацию понял, что после последнего обновления, перестала работать команда sayReply в формате sayReply('текст', уровень сообщения). Как починить?
PS. Анализируя ситуацию понял, что после последнего обновления, перестала работать команда sayReply в формате sayReply('текст', уровень сообщения). Как починить?
- Рейтинг: 1.16%
-
- Сообщения: 315
- Зарегистрирован: Вс май 20, 2018 9:27 am
- Благодарил (а): 160 раз
- Поблагодарили: 29 раз
Re: Модуль API.AI
А сайт http://apia.ai/ открывается? или там другая должна быть ссылка? Я пытаюсь проделать все шаги, что описаны выше и дошел до места На apia.ai сделал intent Add_Event, который возвращает Event_Dateгде нужно ... но, сайт не открывается!!!fandaymon писал(а): ↑Ср фев 14, 2018 3:53 amСкачал на 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);
Проверка о мероприятиях на сегодня примерно так
Сначала проверяются праздники, потом то что запланировано в гугл-календаре. За качество кода не отвечаю, так как на 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; }