Size: a a a

Яндекс.Диалоги (сообщество разработчиков)

2019 February 06

ПИ

Павел Иванов... in Яндекс.Диалоги (сообщество разработчиков)
источник

ПИ

Павел Иванов... in Яндекс.Диалоги (сообщество разработчиков)
=)
источник

RF

R F in Яндекс.Диалоги (сообщество разработчиков)
источник

P

Pavel in Яндекс.Диалоги (сообщество разработчиков)
Сергей Авдеев
вообще проще на каком нибудь фреймворке для алисы написать, коих развелось уже достаточно
А какие порекомендовали бы?  Развелось это часто означает что  куча велосипедов брошенных на полпути и что выбрать?
источник

A

Alexey in Яндекс.Диалоги (сообщество разработчиков)
Спасибо, было интересно, но отзывов маловато, а оценки почти не добавляются при том, что порядка 100 пользователей в день. Нет ли планов как-то сделать возможность прямо из навыка выдавать окно с возможностью поставить оценку? А то сейчас, как я понимаю, надо отправить ссылку, гонять пользователя в на страницу навыка, докручивать до оценки и т.д. - не многие дойдут.
источник

СА

Сергей Авдеев... in Яндекс.Диалоги (сообщество разработчиков)
Pavel
А какие порекомендовали бы?  Развелось это часто означает что  куча велосипедов брошенных на полпути и что выбрать?
я свой велосипед использую. допиливаю по мере необходимости. а вообще вроде на гитхабе где то была страничка со списком ресурсов для алисы, там как раз были ссылки на либы
источник

P

Pavel in Яндекс.Диалоги (сообщество разработчиков)
Там все старое. Тоже все допиливается под нужды
источник

P

Pavel in Яндекс.Диалоги (сообщество разработчиков)
Там у всего куча форков
источник

СА

Сергей Авдеев... in Яндекс.Диалоги (сообщество разработчиков)
источник

P

Pavel in Яндекс.Диалоги (сообщество разработчиков)
И нет ничего что можно взять и порекомендовать скажем человеку со вчерашнего разговора. Кроме как «пиши свой класс» :)
источник

СА

Сергей Авдеев... in Яндекс.Диалоги (сообщество разработчиков)
Pavel
Там все старое. Тоже все допиливается под нужды
видимо, сказывается не сильно широкая распространенность
источник

А

Александр in Яндекс.Диалоги (сообщество разработчиков)
интересно, но как быть если , вопросы разные , и "да" , "нет" может быть от разных вопросов
источник

СА

Сергей Авдеев... in Яндекс.Диалоги (сообщество разработчиков)
говорю же - допиливаю по ходу необходимости
источник

СА

Сергей Авдеев... in Яндекс.Диалоги (сообщество разработчиков)
пока что в качестве костыля можно использовать, например запись якоря последнего вопроса в сессию
источник

А

Александр in Яндекс.Диалоги (сообщество разработчиков)
тоже он этом думал, но идея так себе, думаю есть кто придумал что то по лучше
источник

A

Alexey in Яндекс.Диалоги (сообщество разработчиков)
Валерий Вотяков
<?php
//получаем данные
$requestBody = file_get_contents('php://input');

//декодим данные
$json = json_decode($requestBody);
$text = strtolower($json->request->command);
$sessionnew = $json->session->new;
$message_id = $json->session->message_id;
$session_id = $json->session->session_id;
$user_id = $json->session->user_id;
$msg_hi = array("Привет.", "Привет!", "Приветствую.", "Приветствую!", "Приветик!", "Приветик.");
$msg_accesDenied = array("Это закрытый навык.", "Мне нельзя общаться с чужими.", "Мне не разрешают общаться с чужими.");
$msg_hi = $msg_hi[shuffle($msg_hi)];
$msg_accesDenied = $msg_accesDenied[shuffle($msg_accesDenied)];

//передаем команду в систему
include_once("./config.php");
$_SERVER['PHP_AUTH_USER'] = EXT_ACCESS_USERNAME;
$_SERVER['PHP_AUTH_PW'] = EXT_ACCESS_PASSWORD;
include_once("./lib/loader.php");
$session = new session("prj");
$db = new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME);
include_once(DIR_MODULES . "application.class.php");
include_once("./load_settings.php");
$keyword = gg('ThisComputer.keyword');
$yandexID = gg('ThisComputer.yandexID');

$speech = 'Принято: '.$text;
if ($text == 'пока') {$speech = "Пока!"; goto answer2yandex;}
if ($text == $keyword) {
 say("Идентификатор пользователя изменён!\nБыл  ".$yandexID.",\nстал ".$user_id, -1);
 sg('ThisComputer.yandexID', $user_id);
 goto answer2yandex;
}

//отвечаем яндексу
if ($sessionnew == true) {
 if ($user_id != $yandexID) {$speech = $msg_hi." Простите, но это закрытый навык и он только для моей семьи."; goto answer2yandex;}
 $speech = $msg_hi." Чем могу помочь?";}
if ($user_id != $yandexID) {$speech = $msg_accesDenied; goto answer2yandex;} else {say(htmlspecialchars($text), 0, 1);}

answer2yandex:
$response = new \stdClass();
$response->response->text = $speech;
$response->response->tts = $speech;
$response->response->end_session = false;
$response->session->message_id = $message_id;
$response->session->session_id = $session_id;
$response->session->user_id = $user_id;
$response->version = '1.0';
echo json_encode($response);
?>
Для пары запросов нормально, но если будет больше, то станет запутано. Лучше сделать по такому формату, что работают веб-фреймворки: на первом шаге смотрим на запрос, определяем в какой обработчик (функцию) идти для получения ответа на него. Внутри функции реализуем нужную логику и возвращаем либо готовый ответ для отдачи наружу или какие-то промежуточные данные, которые в отдельной функции будут заворачиваться в нужный выходной формат (то что у тебя делается в answer2yandex). В итоге основной цикл получается совсем простым - выбрать нужную функцию обработки, вызвать ее, отформатировать ответ. А уже обработчики добавляются по мере необходимости.
источник

СА

Сергей Авдеев... in Яндекс.Диалоги (сообщество разработчиков)
Александр
тоже он этом думал, но идея так себе, думаю есть кто придумал что то по лучше
вообще идеалом реализовать что то вроде древовидного кода, когда все варианты ответов прописываются внутри вопроса и т.д.
источник

СА

Сергей Авдеев... in Яндекс.Диалоги (сообщество разработчиков)
надо будет подумать над реализацией
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
прямо в конструктор?! // Удаляем старые сессии
жестко...
источник

А

Александр in Яндекс.Диалоги (сообщество разработчиков)
Сергей Авдеев
вообще идеалом реализовать что то вроде древовидного кода, когда все варианты ответов прописываются внутри вопроса и т.д.
есть такая штука https://github.com/botman/botman и адаптер для алексы , https://github.com/botman/driver-amazon-alexa , написать бы еще для Алисы )
источник