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

Re: Модуль API.AI

Добавлено: Вт мар 27, 2018 4:34 pm
Gelezako
olehs писал(а):Жесть! Все описание, которое я делал для Модуля куда-то пропало! Что за хрень???
Не переживай, просто подменили ссылку, которая отображается по клику. Статья ни вики живая и скоро будет в базе знаний.

Re: Модуль API.AI

Добавлено: Ср мар 28, 2018 3:25 am
olehs
Наткнулся на тему с напоминалкой в соседней ветке viewtopic.php?f=4&t=5255
и ради примера решил сделать то же самое на DialogFlow:

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

$dt = $params['date-time'];
$text = $params['text'];

if($dt && $text) {
 addScheduledJob($text, "say('Вы просили напомнить $text');", strtotime(rtrim($dt, 'Z')));
}

Re: Модуль API.AI

Добавлено: Ср мар 28, 2018 12:35 pm
Gelezako
olehs писал(а):Наткнулся на тему с напоминалкой в соседней ветке viewtopic.php?f=4&t=5255
и ради примера решил сделать то же самое на DialogFlow:

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

$dt = $params['date-time'];
$text = $params['text'];

if($dt && $text) {
 addScheduledJob($text, "say('Вы просили напомнить $text');", strtotime(rtrim($dt, 'Z')));
} 
спасибо за очередной пример, но я так и не смог найти куда записывается напоминание, зашёл в xray->Events , но там его нет.

Re: Модуль API.AI

Добавлено: Ср мар 28, 2018 1:00 pm
olehs
Gelezako писал(а): спасибо за очередной пример, но я так и не смог найти куда записывается напоминание, зашёл в xray->Events , но там его нет.
в Timers

Re: Модуль API.AI

Добавлено: Ср мар 28, 2018 6:51 pm
lanket
olehs писал(а):Наткнулся на тему с напоминалкой в соседней ветке viewtopic.php?f=4&t=5255
и ради примера решил сделать то же самое на DialogFlow:

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

$dt = $params['date-time'];
$text = $params['text'];

if($dt && $text) {
 addScheduledJob($text, "say('Вы просили напомнить $text');", strtotime(rtrim($dt, 'Z')));
} 
Задачка посложнее нет желания решить.
Интент на удаление напоминания, 2я функция то что из соседней ветки, но учитывая возможности dialogflow туда бы передать список установленных таймеров. Чтобы dialogflow смог сообразить какое именно произнес название напоминания при не 100% совпадении.

Вроде в последнем обновлении модуля можно туда в отсылать временные Entities в рамках текущей сессии.

Если я правильно понимаю механизм dialogflow понял что это это интент на удаление напоминания, запросил список таймеров, сравнил и выдал то что посчитал максимально подходящим или уточнил у пользователя.

Или я что то не так понял?

Re: Модуль API.AI

Добавлено: Ср мар 28, 2018 6:56 pm
Gelezako
lanket писал(а): Вроде в последнем обновлении модуля можно туда в отсылать временные Entities в рамках текущей сессии.
На самом деле это никакие не временные Entities, они самые что ни на есть постоянные и сохраняются навсегда в диалогфлоу. По сути, новая возможность в модуле просто позволяется быстро выгрузить их из МЖД определённые Entities и сохранить их в диалогфлоу. Тоже самое можно сделать руками через панель диалогфлоу.

Re: Модуль API.AI

Добавлено: Ср мар 28, 2018 8:01 pm
olehs
Конечно же про удаление я тоже думал и сделать это несложно.
И тут вы, lanket и Gelezako, оба по-своему правы, т.к есть 2 варианта реализации.

Вариант lanket'a кажется более логичным - сделать это через userEntities, т.к. таймеры со временем пропадают и актуальны только на момент запроса.
Но в таком случае запрос на удаление должен проходить в 2 этапа: сначала нужно попросить удалить напоминание, в ответ загрузить список, а затем уже проговорить название напоминания и удалить его.

Второй вариант - обновлять глобальный Entity каждый раз при изменении в списке напоминаний: при создании и после сработки таймера.
В таком случае напоминание можно удалить одной фразой "Удали напоминание такое-то".

Могу реализовать любой из них, скажите какой больше нравится. А сами реализуете другой (с целью тестирования модуля, конечно ;) )

Re: Модуль API.AI

Добавлено: Ср мар 28, 2018 9:15 pm
lanket
olehs писал(а):...
Второй вариант - обновлять глобальный Entity каждый раз при изменении в списке напоминаний: при создании и после сработки таймера.
В таком случае напоминание можно удалить одной фразой "Удали напоминание такое-то".
...
Есть одно но. Таймеры удаляются с наступлением времени. Dialogflow следить за временем не будет. Если только в самом таймере прописывать обновление entities.

И ещё одно но. Не все Таймеры надо знать dialogflow, а только те которые относятся к напоминалке. Как их фильтровать?

Отправлено с моего Redmi Note 4 через Tapatalk

Re: Модуль API.AI

Добавлено: Ср мар 28, 2018 9:19 pm
fandaymon
lanket писал(а):
olehs писал(а):...
Второй вариант - обновлять глобальный Entity каждый раз при изменении в списке напоминаний: при создании и после сработки таймера.
В таком случае напоминание можно удалить одной фразой "Удали напоминание такое-то".
...
Есть одно но. Таймеры удаляются с наступлением времени. Dialogflow следить за временем не будет. Если только в самом таймере прописывать обновление entities.

И ещё одно но. Не все Таймеры надо знать dialogflow, а только те которые относятся к напоминалке. Как их фильтровать?

Отправлено с моего Redmi Note 4 через Tapatalk
Ну это ведь очевидно - когда добавляется напоминание после отработки api.ai, то добавляется entity, в тело таймера встраивается удаление entity - набор будет актуальным и там будут только те таймеры, что нужны

Re: Модуль API.AI

Добавлено: Ср мар 28, 2018 9:39 pm
olehs
На самом деле можно просто запускать выгрузку полного списка таймеров после установки напоминания, после удаления, и еще раз в самом коде таймера.
Фильтровать можно по специфическому тексту в названии или коменту в коде таймера, типа:

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

/* REMINDER */ say('...