ΠΠΎΠ±ΡΡΠΉ Tsiku LAIBULALE.
Pali zolemba zambiri pamutu wa Telegraph bots, koma anthu ochepa amalemba za luso la Alice, ndipo sindinapeze chidziwitso cha momwe ndingapangire bot imodzi, kotero ndidaganiza zogawana zomwe ndakumana nazo pakupanga bot yosavuta ya Telegraph ndi luso la Yandex.Alice la tsambalo kukhala ndi magwiridwe antchito omwewo.
Chifukwa chake, sindikuwuzani momwe mungakwezere seva yapaintaneti ndikupeza satifiketi ya ssl, zokwanira zalembedwa za izo.
Kupanga bot ya Telegraph
Choyamba, tiyeni tipange bot ya Telegalamu, chifukwa chake timapita ku Telegalamu ndikupeza bot ya BotFather pamenepo.
Sankhani /newbot
Timalowetsa dzina la bot lomwe lidzayankhire, ndiye timalowetsa dzina la bot, poyankha timapeza chizindikiro chowongolera bot, timalemba fungulo ili, lidzakhala lothandiza kwa ife m'tsogolomu.
Chotsatira ndikuwuza ma seva a Telegraph kuti ndi seva iti yomwe ingatumize deta kuchokera ku bot kupita. Kuti tichite izi, timapanga ulalo wa fomu:
https: //api.telegram.org/bot___Π’ΠΠΠΠ___/setWebhook?url=https://____ΠΠ£Π’Π¬_ΠΠ_Π‘ΠΠ ΠΠΠ’Π___
___TOKEN___ timasintha ndi chizindikiro chathu kuchokera ku bot, chomwe chidalandilidwa kale
____PATH_TO_SCRIPT____ timasintha ndi adilesi ya script pa seva yathu komwe deta idzasinthidwa (mwachitsanzo,
Pali vuto pano, seva ya api.telegram.org ikutsekedwa, koma mutha kuchita izi: lendi seva yotsika mtengo kwambiri pomwe palibe zoletsa ndikupereka lamulo kuchokera ku console ya seva iyi.
wget ___ΠΠΠΠ£Π§ΠΠΠ¨ΠΠΠ‘Π―_ΠΠΠ ΠΠ‘___
Ndizo zonse, bot ya Telegraph idapangidwa ndikulumikizidwa ku seva yanu.
Kupanga luso la Yandex.Alisa
Tiyeni tipitirire kupanga luso la Yandex.Alice.
Kuti mupange luso, muyenera kupita ku tsamba la Yandex.Dialogues
Zokambirana za luso zidzatsegulidwa.
Timayamba kulowa zoikamo luso.
Lowetsani dzina la luso lanu.
Dzina loyambitsa liyenera kusankhidwa mosamala kwambiri kuti Alice amvetse bwino, kuchokera kuzinthu zina - pulogalamu yam'manja yokhala ndi Alice ndi mizati ngati Yandex.Station kapena Irbis A amatha kuzindikira mawu mosiyana.
Timalowetsa njira yopita ku script pa seva yathu mofanana ndi Telegalamu, koma idzakhala script makamaka kwa Alice, mwachitsanzo.
Timasankha mawu omwe luso lidzalankhula, ndimakonda mawu a Alice kwambiri.
Ngati mukufuna kugwira ntchito pazida zam'manja kapena msakatuli, ndiye sankhani "Mukufuna chipangizo chokhala ndi chophimba."
Kenako, lowetsani makonda a kalozera wa luso la Alice. Ngati mukufuna kugwiritsa ntchito mawu oti "chizindikiro" kuti mutsegule, muyenera kutsimikizira tsamba la mtunduwu mu service webmaster.yandex.ru.
Ndizo zonse ndi zoikamo, tiyeni tipite ku zolemba.
Telegraph bot script
Tiyeni tiyambe ndi script ya Telegalamu.
Timalumikiza laibulale komwe mauthenga ochokera ku bot ndi Alice adzasinthidwa:
include_once 'webhook_parse.php';
Timayika chizindikiro cha bot yathu:
$tg_bot_token = "_____YOUR_BOT_TOKEN_____";
Timalandila data:
$request = file_get_contents('php://input');
$request = json_decode($request, TRUE);
Kugawa deta muzosintha:
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);
}
Tsopano mutha kugwiritsa ntchito zosiyanasiyana:
$ zizindikiro - apa pali mawu onse omwe wosuta adalowa
$user_id - id ya ogwiritsa apa
$msg_chat_id - kucheza komwe bot idalandira lamulo
$msg_user_name - lolowera
Kenako, timatcha Parse_Tokens ntchito yokonza:
$Out_Str = Parse_Tokens($tokens);
Ndipo tumizani yankho:
Send_Out($user_id, $Out_Str);
Ntchito ya Send_Out ndiyosavuta ndipo imawoneka motere:
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 ya Yandex.Alisa
Tsopano tiyeni tipitirire ku zolemba za Alice, ndizofanana ndi za Telegalamu.
Timalumikizanso laibulale komwe mauthenga ochokera ku bot ndi Alice adzasinthidwa, komanso laibulale yokhala ndi makalasi a Alice:
include_once 'classes_alice.php';
include_once 'webhook_parse.php';
Timalandila data:
$data = json_decode(trim(file_get_contents('php://input')), true);
Kugawa deta muzosintha:
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'];}
}
}
Pali zosintha zochepa pano:
$ zizindikiro - apa pali mawu onse omwe wosuta adalowa
$user_id - id ya ogwiritsa apa
Yandex nthawi zonse imapanga luso lofalitsidwa, ndipo ndinawonjezera mzere kuti ndituluke nthawi yomweyo popanda kuyamba kukonzanso uthengawo:
if (strpos($tokens[0], "ping") > -1) {Send_Out("pong", "", true);}
Timatcha Parse_Tokens ntchito yokonza, ndizofanana ndi Telegalamu:
$Out_Str = Parse_Tokens($tokens);
Ndipo tumizani yankho:
Send_Out($user_id, $Out_Str);
Ntchito ya Send_Out ndiyovuta kwambiri apa:
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();
}
Anamaliza kulemba Alice.
Parse_Tokens processing script yokha idapangidwa mwachitsanzo, mutha kuyang'ana ndikukonza pamenepo.
function Parse_Tokens($tokens)
{
$out = "";
// do something with tokens //
$out = "Your eneter " . count($tokens) . " words: " . implode($tokens, " ");
return $out;
}
Ngati mukufuna kulankhulana ndi wogwiritsa ntchito mawonekedwe ovuta kwambiri kuposa yankho la funso, ndiye kuti muyenera kusunga $user_id ya wogwiritsa ntchito ndi zomwe mwalandira kale kuchokera kwa wogwiritsa ntchito mu nkhokwe (mwachitsanzo, mysql) ndi kuzisanthula mu. Parse_Tokens ntchito.
Kwenikweni, izi ndi pafupifupi chilichonse, ngati zonse zachitika molondola, ndiye Telegraph bot likupezeka kale, luso Alice akhoza kufufuzidwa.
Ngati zonse zikuyenda bwino, mutha kutumiza luso lachiyembekezo podina batani la "Kuwongolera".
Tsopano muli ndi ma bots awiri amapulatifomu osiyanasiyana nthawi imodzi, omwe amagwira ntchito mofanana.
Zolemba za utumiki wa Yandex.Dialogues
Zolemba zonse zatumizidwa pa github
Source: www.habr.com