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

Re: Модуль API.AI

Добавлено: Сб авг 18, 2018 9:57 pm
Ron
О! Прокатило!

Re: Модуль API.AI

Добавлено: Вс авг 19, 2018 8:27 pm
K070HY
Ok! И мне помогло! Спасибо!
Только не очень хорошо, если это войдет в систему каждый месяц бота создавать.

Re: Модуль API.AI

Добавлено: Вс авг 19, 2018 8:33 pm
olehs
На форуме пишут, что уже и так починили. Проверить не могу, т.к. уже пересоздал агента.

Re: Модуль API.AI

Добавлено: Ср авг 22, 2018 1:48 pm
diver
Всем привет!
Мне очень стыдно задавать этот вопрос, но видимо сам не пойму... :(
Как скармливать внешние диалоги данному модулю? Через Test Query всё работает, через консольку команд тоже, но куда пихать фразы от того же google home. Google home через IFTTT передает фразу, как параметр для скрипта. Т.е. на входе у меня есть скрипт с переменной, в которой содержится текст. Куда можно передать значение данной переменной, что бы запустилась обработка через сабж ?

Re: Модуль API.AI

Добавлено: Ср авг 22, 2018 2:21 pm
olehs
diver писал(а): Ср авг 22, 2018 1:48 pm Всем привет!
Мне очень стыдно задавать этот вопрос, но видимо сам не пойму... :(
Как скармливать внешние диалоги данному модулю? Через Test Query всё работает, через консольку команд тоже, но куда пихать фразы от того же google home. Google home через IFTTT передает фразу, как параметр для скрипта. Т.е. на входе у меня есть скрипт с переменной, в которой содержится текст. Куда можно передать значение данной переменной, что бы запустилась обработка через сабж ?

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

say('привет', 0, 5, 'terminal13')
здесь 5 - ID юзера
13 - ID терминала

Re: Модуль API.AI

Добавлено: Ср авг 22, 2018 2:33 pm
diver
olehs писал(а): Ср авг 22, 2018 2:21 pm

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

say('привет', 0, 5, 'terminal13')
здесь 5 - ID юзера
13 - ID терминала
Блин... пробовал просто say("привет",2) - не работает. Спасибо!!!!

Re: Модуль API.AI

Добавлено: Пн сен 17, 2018 6:01 pm
Kvantos
По поводу описания: https://majordomo.smartliving.ru/Main/ModuleApiai
The page "Main/ModuleApiai" doesn't exist.

Подскажите плс. где сейчас обитает

Re: Модуль API.AI

Добавлено: Вт сен 18, 2018 2:06 pm
skysilver
Kvantos писал(а): Пн сен 17, 2018 6:01 pm По поводу описания: https://majordomo.smartliving.ru/Main/ModuleApiai
The page "Main/ModuleApiai" doesn't exist.
Подскажите плс. где сейчас обитает
https://kb.smartliving.ru/category/modu ... piai_help/

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

Добавлено: Пн ноя 12, 2018 10:23 pm
K070HY
Господа, добрый вечер! А у всех после последнего обновления из альфы, алиса не произносит default response модуля api.ai? Или это только у меня сломалось. Хотя из Test Query отрабатывает верно и даже произносит фразу, а вот если просишь голосом, то тишина. Причём команды отрабатывает верно, а вот голосового сопровождения нет.

PS. Анализируя ситуацию понял, что после последнего обновления, перестала работать команда sayReply в формате sayReply('текст', уровень сообщения). Как починить?

Re: Модуль API.AI

Добавлено: Пн дек 10, 2018 12:11 pm
Yashalta
fandaymon писал(а): Ср фев 14, 2018 3:53 am
Gelezako писал(а):
fandaymon писал(а): Ну и совершенно зря... Для некоторых применений API.AI очень удобен. Например, я с его помощью реализовал добавление голосом в гугл календарь разных мероприятий

Говоришь, например Добавь напоминание в среду в 17:00 встреча или Добавь напоминание Завтра День рождения или Добавь напоминание на 30 марта в десять Отправить показания, а модуль возвращает тебе дату,время и текст напоминания, остаётся только добавить в календарь. Да, конечно, всё это можно сделать и шаблонами, но придётся помучиться...
делись кодом )
Скачал на https://github.com/google/google-api-php-client файл, распаковал его в директорию Google в корне веб-сервера. В lib не стал помещать, так как там старая гугловская библиотека от модуля Ивана.

Далее - сделал сервисный экаунт, как написано здесь http://rtportal.ru/index.php?id=164:calendar-python-bot

Получил джейсон, сохранил его на Desktop
Зашел в настройки своего гугл-календаря и в пункте Доступ для отдельных пользователей, дал разрешение на редактирование имейлу, который присваивается сервисному экаунту (Без этого пункта сервисный экаунт не хотел видеть мой календарь)

На apia.ai сделал intent Add_Event, который возвращает Event_Date @sys.date, Event_Desc @sys.any и [email protected]. Потренировал на нескольких фразах, так чтобы бралась обязательная дата, необязательное время, а всё что после - в само напоминание
Ну и сделал в модуле api.ai для Add_Event такой скриптик
SPOILERSPOILER_SHOW

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

// $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 = '[email protected]';  // Тут надо поставить свой адрес 

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' => '[email protected]'),
  ),
  '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' => '[email protected]'),
  ),
  'reminders' => array(
    'useDefault' => FALSE,
    'overrides' => array(
      array('method' => 'email', 'minutes' => 24 * 60),
      array('method' => 'popup', 'minutes' => 10),
    ),
  ),
));
}
$event = $service->events->insert($calendarId, $event);
Как-то так...

Проверка о мероприятиях на сегодня примерно так
SPOILERSPOILER_SHOW

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

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#[email protected]';
$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 = '[email protected]';
$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;
}
Сначала проверяются праздники, потом то что запланировано в гугл-календаре. За качество кода не отвечаю, так как на PHP до Мажордомо не писал, но вроде работает
А сайт http://apia.ai/ открывается? или там другая должна быть ссылка? Я пытаюсь проделать все шаги, что описаны выше и дошел до места На apia.ai сделал intent Add_Event, который возвращает Event_Dateгде нужно ... но, сайт не открывается!!!