Thapama.
Ho na le lingoliloeng tse ngata tse mabapi le bots ea Telegraph, empa ke batho ba fokolang ba ngolang ka litsebo tsa Alice, 'me ha kea ka ka fumana tlhahisoleseling mabapi le mokhoa oa ho etsa bot e le' ngoe, kahoo ke ile ka etsa qeto ea ho arolelana phihlelo ea ka mabapi le mokhoa oa ho etsa bot. bot e bonolo ea Telegraph le tsebo ea Yandex.Alice bakeng sa sebaka se nang le ts'ebetso e ts'oanang.
Kahoo, nke ke ka u bolella mokhoa oa ho phahamisa seva sa marang-rang le ho fumana setifikeiti sa ssl, ho lekane ho ngotsoe ka eona.
Ho theha bot ea Telegraph
Taba ea pele, ha re theheng bot ea Telegraph, bakeng sa sena re ea Telegraph mme re fumana botFather bot moo.
Khetha /newbot
Re kenya lebitso la bot eo e tla arabela ka eona, ebe re kenya lebitso la bot, ha re arabela re fumana letšoao la ho laola bot, re ngola senotlolo sena, se tla ba molemo ho rona nakong e tlang.
Mohato o latelang ke ho bolella li-server tsa Telegraph hore na ke seva sefe se lokelang ho romella data ho tsoa bot ho. Ho etsa sena, re etsa sehokelo sa foromo:
https: //api.telegram.org/bot___ТОКЕН___/setWebhook?url=https://____ПУТЬ_ДО_СКРПИТА___
___TOKEN___ re kenya lets'oao la rona ho tsoa bot, e amohetseng pejana
____PATH_TO_SCRIPT____ re nkela sebaka ka aterese ea script ho seva sa rona moo data e tla sebetsoa (mohlala,
Ho na le bothata mona, seva sa api.telegram.org se ntse se thibetsoe, empa u ka etsa sena: hira seva e theko e tlaase moo ho se nang lithibelo 'me u fane ka taelo e tsoang ho console ea seva sena.
wget ___ПОЛУЧИВШИЙСЯ_АДРЕС___
Ke phetho, bot ea Telegraph e entsoe mme e hokahantsoe le seva sa hau.
Ho theha tsebo ea Yandex.Alisa
Ha re tsoeleng pele ho theha tsebo ea Yandex.Alice.
Ho theha bokhoni, o hloka ho ea leqepheng la baetsi ba Yandex.Dialogues
Puisano ea litlhophiso tsa bokhoni e tla buleha.
Re qala ho kenya litlhophiso tsa bokhoni.
Kenya lebitso la tsebo ea hau.
Lebitso la ts'ebetso le lokela ho khethoa ka hloko haholo e le hore Alice a le utloisise ka nepo, ho tloha ho li-nuances - sesebelisoa sa selefouno se nang le Alice le likholomo tse kang Yandex.Station kapa Irbis A li ka lemoha mantsoe ka tsela e fapaneng.
Re kenya tsela e eang ho script ho seva sa rona ka tsela e ts'oanang le ea Telegraph, empa e tla ba script ka ho khetheha bakeng sa Alice, mohlala.
Re khetha lentsoe leo bokhoni bo tla bua ka lona, ke rata lentsoe la Alice haholoanyane.
Haeba u rerile ho sebetsa feela ka lisebelisoa tsa mohala kapa ho sebatli, khetha "U hloka sesebelisoa se nang le skrine."
E latelang, kenya litlhophiso tsa lethathamo la litsebo tsa Alice. Haeba u rerile ho sebelisa lentsoe "brand" bakeng sa ts'ebetsong, u lokela ho netefatsa sebaka sa marang-rang sa marang-rang ho webmaster.yandex.ru tšebeletso.
Ke tsohle tse nang le li-setting, ha re feteleng ho li-script.
Telegraph bot script
Ha re qaleng ka mongolo oa Telegraph.
Re hokahanya laebrari moo melaetsa e tsoang ho bot le Alice e tla sebetsoa:
include_once 'webhook_parse.php';
Re beha letšoao la bot ea rona:
$tg_bot_token = "_____YOUR_BOT_TOKEN_____";
Re fumana lintlha:
$request = file_get_contents('php://input');
$request = json_decode($request, TRUE);
Ho arola data ka mefuta e fapaneng:
if (!$request)
{
die();
// Some Error output (request is not valid JSON)
}
else if (!isset($request['update_id']) || !isset($request['message']))
{
die();
// Some Error output (request has not message)
}
else
{
$user_id = $request['message']['from']['id'];
$msg_user_name = $request['message']['from']['first_name'];
$msg_user_last_name = $request['message']['from']['last_name'];
$msg_user_nick_name = $request['message']['from']['username'];
$msg_chat_id = $request['message']['chat']['id'];
$msg_text = $request['message']['text'];
$msg_text = mb_strtolower($msg_text, 'UTF-8');
$tokens = explode(" ", $msg_text);
}
Hona joale o ka sebetsa le mefuta e fapaneng:
$tokens - mona ke mantsoe ohle ao mosebelisi a a kentseng
$user_id - id ea mosebelisi mona
$msg_chat_id - qoqa moo bot e amohetseng taelo
$msg_user_name - lebitso la mosebelisi
E latelang, re bitsa mosebetsi oa Parse_Tokens bakeng sa ho sebetsa:
$Out_Str = Parse_Tokens($tokens);
'Me u romelle karabo:
Send_Out($user_id, $Out_Str);
mosebetsi oa Send_Out o bonolo ebile o shebahala tjena:
function Send_Out($user_id, $text, $is_end = true)
{
global $tg_bot_token;
if (strlen($user_id) < 1 || strlen($text) < 1) {return;}
$json = file_get_contents('https://api.telegram.org/bot' . $tg_bot_token . '/sendMessage?chat_id=' . $user_id . '&text=' . $text);
}
Skill script bakeng sa Yandex.Alisa
Joale ha re feteleng ho script bakeng sa Alice, e batla e tšoana le ea Telegraph.
Re boetse re hokela laeborari moo melaetsa e tsoang bot le Alice e tla sebetsoa, hammoho le laeborari e nang le litlelase tsa Alice:
include_once 'classes_alice.php';
include_once 'webhook_parse.php';
Re fumana lintlha:
$data = json_decode(trim(file_get_contents('php://input')), true);
Ho arola data ka mefuta e fapaneng:
if (isset($data['request']))
{
//original_utterance
if (isset($data['meta']))
{
$data_meta = $data['meta'];
if (isset($data_meta['client_id'])) {$client_id = $data_meta['client_id'];}
}
if (isset($data['request']))
{
$data_req = $data['request'];
if (isset($data_req['original_utterance']))
{
$original_utterance = $data_req['original_utterance'];
}
if (isset($data_req['command'])) {$data_msg = $data_req['command'];}
if (isset($data_req['nlu']))
{
$data_nlu = $data_req['nlu'];
if (isset($data_nlu['tokens'])) {$tokens = $data_nlu['tokens'];}
// $data_token_count = count($data_tokens);
}
}
if (isset($data['session']))
{
$data_session = $data['session'];
if (isset($data_session['new'])) {$data_msg_new = $data_session['new'];}
if (isset($data_session['message_id'])) {$data_msg_id = $data_session['message_id'];}
if (isset($data_session['session_id'])) {$data_msg_sess_id = $data_session['session_id'];}
if (isset($data_session['skill_id'])) {$skill_id = $data_session['skill_id'];}
if (isset($data_session['user_id'])) {$user_id = $data_session['user_id'];}
}
}
Ho na le likhetho tse 'maloa mona:
$tokens - mona ke mantsoe ohle ao mosebelisi a a kentseng
$user_id - id ea mosebelisi mona
Yandex e lula e penya litsebo tse hatisitsoeng, 'me ke kentse mohala ho tsoa hang-hang ntle le ho qala ts'ebetso e felletseng ea molaetsa:
if (strpos($tokens[0], "ping") > -1) {Send_Out("pong", "", true);}
Re bitsa mosebetsi oa Parse_Tokens bakeng sa ts'ebetso, o tšoana le oa Telegraph:
$Out_Str = Parse_Tokens($tokens);
'Me u romelle karabo:
Send_Out($user_id, $Out_Str);
Mosebetsi oa Send_Out o rarahane ho feta mona:
function Send_Out($user_id, $out_text, $out_tts = "", $is_end = false)
{
global $data_msg_sess_id, $user_id;
///// GENERATE BASE OF OUT //////
$Data_Out = new Alice_Data_Out();
$Data_Out->response = new Alice_Response();
$Data_Out->session = new Alice_Session();
///// GENERATE BASE OF OUT End //////
///// OUT MSG GENERATE /////
$Data_Out->session->session_id = $data_msg_sess_id;;
$Data_Out->session->user_id = $user_id;
$Data_Out->response->text = $out_text;
$Data_Out->response->tts = $out_tts;
if (strlen($out_tts) < 1) {$Data_Out->response->tts = $out_text;}
$Data_Out->response->end_session = $is_end;
header('Content-Type: application/json');
print(json_encode($Data_Out, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT));
die();
}
O qetile mongolo oa Alice.
Sengoloa sa ts'ebetso sa Parse_Tokens ka boeona se entsoe mohlala feela, o ka etsa licheke le ho sebetsa moo.
function Parse_Tokens($tokens)
{
$out = "";
// do something with tokens //
$out = "Your eneter " . count($tokens) . " words: " . implode($tokens, " ");
return $out;
}
Haeba o hloka ho buisana le mosebelisi oa foromo e rarahaneng ho feta karabo ea potso, joale o tla hloka ho boloka $user_id ea mosebelisi le data e seng e amohetsoe ho tsoa ho mosebelisi sebakeng sa polokelo ea litaba (mohlala, mysql) le ho li sekaseka ho mosebetsi oa Parse_Tokens.
Ha e le hantle, sena ke hoo e batlang e le ntho e 'ngoe le e' ngoe, haeba ntho e 'ngoe le e' ngoe e etsoa ka nepo, joale bot ea Telegram e se e fumaneha, bokhoni ba Alice bo ka hlahlojoa.
Haeba ntho e 'ngoe le e' ngoe e sebetsa ka nepo, o ka romela tsebo ea ho lekanya ka ho tobetsa konopo ea "Ho lekanya".
Hona joale o na le li-bots tse peli tsa li-platform tse fapaneng ka nako e le 'ngoe, tse sebetsang ka tsela e ts'oanang.
Litokomane tsa tšebeletso ea Yandex.Dialogues
Lingoloa tse felletseng li kentsoe ho github
Source: www.habr.com