Страница 7 из 10

Re: Архитектура голосового модуля и голосовой чат iii.ru

Добавлено: Пт окт 03, 2014 7:43 pm
Vit
msh555 писал(а):
Vit писал(а): Да работает . Скрипты с таскера тоже работают
мне стало интересно.
Давай скрин и выгрузи задачу с таскера.
скрин сделал
Изображение
а вот экспорт не делает почемуто пишет готово xml нету.

прогу покупал....

может где apk другой взять попробовать?

Re: Архитектура голосового модуля и голосовой чат iii.ru

Добавлено: Пт окт 03, 2014 9:40 pm
ErmolenkoM
"qry" а не "gry"

Re: Архитектура голосового модуля и голосовой чат iii.ru

Добавлено: Пт окт 03, 2014 9:42 pm
Vit
как я так)) спасиб
а вот с дусей не хочет никак дружить)

Re: Архитектура голосового модуля и голосовой чат iii.ru

Добавлено: Сб окт 04, 2014 6:50 pm
ErmolenkoM
Vit писал(а):а вот с дусей не хочет никак дружить)
Продолжаем разговор.
Делаем так:
Сохраняем настройки Дуси,
Сносим Дусю,
ставим Дусу,
перегружаем тело,
убеждаемся что в таскере включен внешний доступ
создаем тестовую задачу с именем на русском
идем в Дуся/функции/Таскер/задачи, убеждаемся что видим задачи(можно синоним создать, если что)
говорим Дусе: запусти задачу

Должна запуститься.

Re: Архитектура голосового модуля и голосовой чат iii.ru

Добавлено: Сб окт 04, 2014 7:09 pm
Vit
msh555 писал(а):
Vit писал(а):а вот с дусей не хочет никак дружить)
Продолжаем разговор.
Делаем так:
Сохраняем настройки Дуси,
Сносим Дусю,
ставим Дусу,
перегружаем тело,
убеждаемся что в таскере включен внешний доступ
создаем тестовую задачу с именем на русском
идем в Дуся/функции/Таскер/задачи, убеждаемся что видим задачи(можно синоним создать, если что)
говорим Дусе: запусти задачу

Должна запуститься.
задачи видит, доступ есть...
запусти задачу говорит какую...называешь и просто тишина...
сносить зачем в чем то подвох есть?

Re: Архитектура голосового модуля и голосовой чат iii.ru

Добавлено: Сб окт 04, 2014 9:16 pm
ErmolenkoM
Vit писал(а): задачи видит, доступ есть...
запусти задачу говорит какую...называешь и просто тишина...
сносить зачем в чем то подвох есть?
1. Попробуй сразу: "запусти задачу корова", предварительно создав задачу корова со всплывающим сообщением например.
2. Подвох есть. В теме на 4PDA рекомендовали именно такой порядок установки: Таскер, Дуся.

Re: Архитектура голосового модуля и голосовой чат iii.ru

Добавлено: Сб янв 31, 2015 1:19 pm
Amarok
А iii так из Алисы и не работает больше?

Re: Архитектура голосового модуля и голосовой чат iii.ru

Добавлено: Сб фев 28, 2015 3:07 pm
Amarok
Гляньте: http://habrahabr.ru/post/251687/
Может прогеры к Алисе прикрутят?
Screenshot_1.jpg
Screenshot_1.jpg (30.69 КБ) 13898 просмотров

Re: Архитектура голосового модуля и голосовой чат iii.ru

Добавлено: Чт мар 05, 2015 10:42 am
Dark_Veter
Вот рабочий код для iii.ru в виде сценария.

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

define('BOT_TOKEN', '8a5526de-f601-4f35-ba33-70ce385fffcb'); //Идентификатор бота с iii.ru

class Bot {

    protected $key = null;
    protected $session = null;
    private $salt = 'some very-very long string without any non-latin characters due to different string representations inside of variable programming languages';

    /**
     * @param $key - Ключ из урла после создания инфа
     */
    public function __construct($key) {
        $this->key = $key;
    }

    /**
     * @param null $session - Идентификатор сессии существуюющей, если нет то создается новая
     * @return string Идентификатор текущей сессии
     */
    public function session($session = null) {
        if ($session === null) {
            $response = file_get_contents('http://iii.ru/api/2.0/json/Chat.init/' . $this->key . '/');
            $this->session = $this->decode($response)->result->cuid;
        } else {
            $this->session = $session;
        }
        return $this->session;
    }

    /**
     * ОТправить сообщение боту
     * @param string $message Сообщение
     * @return string Ответ
     */
    public function say($message) {
        $request = '["' . $this->session . '","' . $message . '"]';
        $myCurl = curl_init();
        curl_setopt_array($myCurl, array(
            CURLOPT_URL => 'http://iii.ru/api/2.0/json/Chat.request',
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $this->encode($request)
        ));
        $response = curl_exec($myCurl);
        curl_close($myCurl);
        return $this->decode($response)->result->text->tts;
    }

    /**
     * Кодирование сообщения
     * @param $message
     * @return string
     */
    private function encode($message) {
        $message = base64_encode($message);
        $ml = strlen($message);
        $kl = strlen($this->salt);
        $encoded = "";
        for ($i = 0; $i < $ml; $i++) {
            $encoded = $encoded . ($message[$i] ^ $this->salt[$i % $kl]);
        }
        return base64_encode($encoded);
    }

    /**
     * Декодирование сообщения
     * @param $message
     * @return mixed|null
     */
    private function decode($message) {
        $msg = base64_decode($message);
        $ml = strlen($msg);
        $kl = strlen($this->salt);
        $decoded = "";
        for ($i = 0; $i < $ml; $i++) {
            $decoded.= ($msg[$i] ^ $this->salt[$i % $kl]);
        }

        return json_decode(base64_decode($decoded));
    }

}

if ($params['message']) {
    $sessionId = gg('ThisComputer.iiiBotSessionId');

    $message = $params['message'];

    $bot = new Bot(BOT_TOKEN);
    if ($sessionId == '') {
        $session = $bot->session();
        sg('ThisComputer.iiiBotSessionId', $session);
    } else {
        $session = $bot->session($sessionId);
    }

    $response = $bot->say($message);
    say($response);
    SetTimeOut('CleanIiiSessionId', 'sg("ThisComputer.iiiBotSessionId", "");', 3*60*60);
} 
UPD: Добавил обнуление сессии через 3 часа после последнего диалога с ботом. Чтобы бот думал, что началась новая беседа, а не продолжение старой.

Re: Архитектура голосового модуля и голосовой чат iii.ru

Добавлено: Чт мар 05, 2015 4:42 pm
Vit
Dark_Veter писал(а):Вот рабочий код для iii.ru в виде сценария.

} [/code]

и как попробовать использовать?