ááááºážáá²á· á ááá¯ááºáá¡á±á¬ááºá ááááºáá±á·á Yandex.Cloud ááẠáá¬áá¬áá²á· ááœááºáá»á°áá¬áááºáá±á¬ááºááŸá¯ááᯠááœáŸáá·áºáááºááŒá±á¬ááºáž ááŒá±áá¬áá²á·áááºá . ááá¯ááá¯áááºááŸá¬- áááºááẠááá·áºáááºáá±á¬ááºááŸá¯ááá¯ááºááá¯áᬠáá±ážááá¯ááºáá« (á¥ááá¬á áááºá¡ááá®áá±ážááŸááºážáá áºáᯠááá¯á·ááá¯áẠchatbot)á Cloud ááá¯ááºááá¯ááºá áááºážáááºáááºáá±ááá·áº virtual machines áá»á¬ážááᯠáááºáá®ážááááºážááááºážáá¬ážááŒá®áž load ááá¯ážáá¬áá«á áááºážááá¯á·ááᯠáááºáá°ááœá¬ážá á±áá«áááºá áá¯á¶ážáá ááºážá á¬ážáá±á áá¬áááá¯áá«áá°áž á¡áááºážá¡áááºááŒá±áá«áááºá ááœá±áá±ážáá»á±ááŸá¯ááẠááœááºáá»ááºáá»áááºá¡ááœááºáá¬ááŒá áºáááºá
ááá¯á·áá±á¬áº á¡áá»áá¯á·áá±á¬áá°áá»á¬ážááẠáá±ážáá»á±ááŸá¯áá¯á¶ážááááŸááá±á áá«ááœá±á developer ááœá±áá«á ááá¯ááá¯áááºááŸá¬á áááºážááœááºáááºáá±á¬ááºáá¬ážáá±á¬ chatbots ááŒá áºáááºá áá±á¬á·ááºáá²áá±ážáá¬ážáá°ááá¯ááºážááẠááá¯áá²á·ááá¯á·áá±á¬áá»áœááºážáá»ááºááŸá¯áá áºáá¯ááᯠáá±ážáá¬ážááá¯ááºá áááºáá¶ááá¯ááºá á á¬áááºážááœááºážááá¯ááºááŒá®ážá ááá±á·ááŸá á áá»áœááºážáá»ááºááŸá¯áá»á¬ážááẠáááºáá¶áá»ááºážááááºáááºáááá¯á¡ááºáá±á¬á·áá« â áá±á¬ááºáá¯á¶á á¶ááŒáá·áº áááºážááá¯á·ááá¯ááºááᯠcloud ááá¯á· á¡ááºáá¯ááºáá¯ááºáá¯á¶áá¬ááŒá áºáááºá .
áá«áá±ááá·áº ááœá²ááœá²áá»ááºá¡áá»áá¯á·ááŸááá«áááºá ááááŠážá áœá¬á ááá·áºá¡áááºááœá±ážáááá á¹áá¬ááºáá¯ááºááẠááŸá®ááá¯ááŸá¯á¡áá»áá¯á· ááá¯á¡ááºááá¯ááºááŒá®áž áááºážááá¯á·ááᯠCloud áá²ááá¯á· ááœá²áá°ááẠá¡áá±ážá¡ááœá²ááá¯ááºáá«á áá¯áááá¡áá±ááŒáá·áºá áááºááá·áºáá¯á¶ááŸáẠchatbot áááᯠdialog áá¡ááŒá±á¡áá±ááá¯áá áºáá±áá¬áá¬ááœááºááááºážáááºážáááºááá¯á¡ááºááẠ(ááá¯á·ááŒá±á¬áá·áºáá±á¬áºááŒáá¬ážáááº); áá¬áá¬áá²á·áá¯ááºáá±á¬ááºáá»ááºááᯠá¡ááœááºáá¯á¶ážáááºážááŒáá·áº áááºááá¯á·ááŒá¯áá¯ááºááááºáááºážá ááááá¡áá±ááŒáá·áºá Alice á¡ááœáẠáá»ááºááŒááºááŒá®áž áá áºáááºáá±á¬ áá»áœááºážáá»ááºááŸá¯ ááá¯á·ááá¯áẠáá¯áááá¯ááºáá±á¬ ááœááºáááºááŒáá·áº bot á¡áá»áá¯ážá¡á á¬ážá¡áá»áá¯á·ááᯠáááºáááºáá²á·ááá¯á· áá±ážááá¯ááºáááºáááºážá áá® nuances ááœá±á¡ááŒá±á¬ááºážá ááááºáá±á¬á· áá±á¬ááºážáá«ážáá«á

ááá¯ááºáá»áá·áºááá¬ážááŒááºáááºááŸá¯
á áááºáááŸááºáá°áá»á¬ážá¡ááœááº- cloud ááá¯á· function ááááºáá® makefile ááŒáá·áº ááá¯á¡ááºáá±á¬ ááŸá®ááá¯ááŸá¯áá»á¬ážááᯠá á¯áá±á¬ááºážááŒá®ážá Yandex Object Storage ááœáẠááá¯ááºáá¬áá±á¬á·ááºá¡ááŒá±á¡áá±ááᯠááááºážáááºážáá¬ážáá«ááẠ(áááºážááẠS3 API ááᯠáá¶á·ááá¯ážáá±ážáááº)á ááá¯ááºáá¬áá±á¬á·ááºááᯠá á®áá¶ááá·áºááœá²áááºá¡ááœáẠáá»áœááºá¯ááºáááá¯ááºááá¯ááºá á¬ááŒáá·áºááá¯ááºááᯠá¡áá¯á¶ážááŒá¯áá«áááºá . ááááºááœááºááŸáá·áº áá®ááá¯áá»áœááºážáá»ááºááŸá¯á ááᯠá€á¡áá¬á¡á¬ážáá¯á¶ážááᯠá¡áá±ážá áááºá¡áááºážáááºááœá²ááŒááºážá áááºááŒá¬ááŒáá·áºááŒáá«á áá¯á·á
á¡áááºážáááºá áááºáááŸááºáá°áá»á¬ážá¡ááœááºá áá»áœááºá¯ááºáááŸá¯ááºááœá±ážáá±á¬áá¬ááºáááºážáá²ááá¯á·ááááºáá®á ááá¯ážááŸááºážá áœá¬á áááºááẠá¡ááŒá¶ááŒá¯ááá¯áá«áááºá ááá¯ááá¯áááºááŸá¬á single-file echobot function ááá¯áááºáá®ážáá«á ááŸááºáá¯á¶áááºááŒá®áž Dialog developer console ááœááºáááºážááá¯á ááºážáááºáá«á á¡áá±ážá áááºá¡áá»ááºáá»á¬áž О . ááŒá®ážá០á áááºáá«á
áá«ááá¯á· ááá¯ááºááœá²áááºáá±áá¬ááᯠáá»ááºááŒááºážáá¶á á¬ážáá»ááºááẠá¡á²áá áºááá¯áá±ážáá«á'á á¡á±á¬ááºáá« ááœá±á·áá¯á¶ááœá±ážááœá±ážááœá²áá»á¬áž ááŒá¯áá¯ááºááá·áºáááº-
Alice: áááºá¹ááá¬áá«! áááºááẠ"IT horoscope" áá»áœááºážáá»ááºááŸá¯ááœááºááŸááááºá ááŒááºáá»á¬ážááẠááá·áºá¡á¬áž ááááá±ážáááºáá»á¬ážááᯠááááŸáááẠ"á
áááºáá«" áá¯ááŒá±á¬áá«á
á¡áá¯á¶ážááŒá¯áá°- á
áááºáá«á
A: ááá·áºá¡áááºááᯠáá±á¬áºááŒáá«á
Yu: Vasisualy
A: áááºážááœá±ážááá¹ááá¬ááºááᯠááŒá±á¬ááŒáá«á ááááºážáá±ážáá¯á¶ážáá²á áá¬á០ááá»ááºáá±á¬á·áá°ážá
Yu: áá¯ááá
A- áá»á±ážáá°ážááŒá¯á áááºá
ááºážááŒáá·áºáá«á ááœá±ážááá¹ááá¬áẠ- ááááºážáá±ážáá¯á¶áž áá±á¬áºááŒáá«á
Yu: áááá
A: áá±á¬ááºážáááº! ááᯠááá·áºááœá±ážáááᯠáá¬áááºáá±ážááá¯ááºáá«á
Yu: áá±áá±á¬áºáá«áá®
A: á¡áááºážáá±á¬ááºážáá«áááºá áá±á¬ááºáá¯á¶ážá¡áá±áá²á· áááºážáá²á·ááœá±ážááá¹ááá¬ááºááᯠááááºážáá
áºáá¯á ááááºážáá
áºáá¯á¶ážá
Yu: áááá
A: áá»á±ážáá°ážáááºáá«ááẠVasisualá ááá¯áá»áœááºá¯ááºááá¯á·áááá«áááº- áááºááẠ17 ááŸá
áºááŒá
áºááŒá®áž áááºááẠAquarius ááŒá
áºáááºá á€ááœáẠáááºáááºá áá¯ááºáá«áááºá áá¶áá±á¬ááºážáá«áááºá ááŒááºááœá±á ááŒá±á¬ááŒáááºá а ÑÑП гПвПÑÑÑ Ð·Ð²ÑзЎÑ, Ð²Ñ ÑзМаеÑе, запÑÑÑОв МавÑк.
ááŒá¿áá¬ááŸá¬ ááá¯áá²á·ááá¯á·áá±á¬ ááá¯ážááŸááºážáá±á¬ ááá¯ááºáá¬áá±á¬á·ááºááᯠááááºážááááºážáááºá á¡áá¯á¶ážááŒá¯áá°á á¡áááºááŸáá·áº ááœá±ážááá¹ááá¬ááºááᯠááŸááºáá¬ážáá¬ážááẠááá¯á¡ááºááŒá®áž áá¬áá¬áááŸááá±á¬ áááºáááºážáá»ááºááœáẠáááºážááẠá¡áá±ážá¡ááœá²ááá¯ááºáá«á á¡ááŒá±á¬ááºážá¡áááºážááᯠRAM ááœáẠááá¯á·ááá¯áẠáá áºááºáá±á«áºááœáẠááá¯ááºá¡ááŒá ẠááááºážáááºážááẠáááºážááẠá¡áá¯ááºáááŒá áºáá«á Yandex.Cloud ááẠáá áºáá»áááºáááºážááœáẠvirtual machine á¡áá»á¬ážá¡ááŒá¬ážááœáẠáá¯ááºáá±á¬ááºáá»ááºááᯠáá¯ááºáá±á¬ááºááá¯ááºááŒá®áž áááºážááá¯á·á¡ááŒá¬áž ááá¯ááºááá¯áááºážáááºááŒá±á¬ááºážááá¯ááºáááºá áááºááẠááŒááºáááá¯ááŸá±á¬ááºááŸá¯ á¡áá»áá¯ážá¡á á¬ážá¡áá»áá¯á·ááᯠá¡áá¯á¶ážááŒá¯ááááºááŒá áºáááºá Object Storage ááᯠYandex.Cloud ááœáẠááá¯ááºááá¯áẠá á»á±ážáááºáá¬ááŒá®áž ááá¯ážááŸááºážáá±á¬ ááá¯ááŸá±á¬ááºááŸá¯á¡ááŒá Ạááœá±ážáá»ááºáá²á·ááẠ(ááá¯ááá¯áááºááŸá¬ ááŒááºááá¯ááºáááº)á á¡ááá²á·á¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá áºáá¯á¡áá±ááŒáá·áºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡ááá²á·á¡ááá¯ááºážáá áºáá¯ááᯠáááºááŒáá¯ážá á¬ážááá¯ááºáááºá á¡áá±ážáá áºáá±áá¬á Object Storage ááŸá áºáá¯áá¯á¶áž (áááºážááẠS3 interface ááᯠáá¶á·ááá¯ážáá±ážáááº) ááŸáá·áº Mongo ááœáẠá¡áááºááŒá±áá±á¬ Python wrappers ááŸááááºá
áá±á¬ááºáááºááŒá¿áá¬áá áºáá¯ááá±á¬á· Object Storageá MongoDB áá²á· áááŒá¬ážáá±áá¬áá±á·á Ạáá«ááŸááá¯áẠáá±áá¬á ááá¯ážááá¯ááœá¬ážááá¯á·á¡ááœááºá ááá·áºáá¯ááºáá±á¬ááºáá»ááºáá¯ááºáá²á·á¡áá° Yandex Functions ááŸá¬ ááẠupload áááºááá¯á·ááá¯á¡ááºáá²á· ááŒááºáááŸá®ááá¯ááŸá¯á¡áá»áá¯á·ááá¯á¡ááºáá«áááºá ááŒá®ážáá±á¬á· á¡áááºááŒá±ááŒá± áá¯ááºáá»ááºáá«áááºá áááºážááẠáá¯á¶ážáá¡áááºááŒá±ááẠ(heroku ááœááºáá²á·ááá¯á·) ááŒá áºáá»ááºáá±á¬á·á áááºážááẠá¡áá¯ááºáááŒá áºáá«á ááá¯á·áá±á¬áº áááºáááºážáá»ááºááá¯áááºáá±á¬ááºááẠscript áá áºáá¯áá±ážááŒááºážááŒáá·áº (ááá¯ááºááŒá¯áá¯ááºáááº) á¡ááŒá±áá¶ááŸá áºáááá·áºááŸá¯á¡áá»áá¯á·ááᯠáááºáááºáá®ážááá¯ááºáááºá
áá¬áá¬áá»áœááºážáá»ááºááŸá¯ááᯠáááºááá¯á áááºááá²á
- ááŒááºáááºáá«- Linux ááᯠá¡áá¯á¶ážááŒá¯ááá·áº áááºááá·áºá ááºááá¯á·áááᯠáááºáá±á¬ááºáá«á á¡ááŒá±áá¶á¡á¬ážááŒáá·áºá Windows áá«ááááºáž á¡áá¯ááºáá¯ááºááá¯ááºáá«áááºá áá«áá±ááá·áº makefile ááᯠrun ááá¯á· ááŸá±á¬áºá¡áááºááá»áá¯á· ááá¯á¡ááºáá«áááá·áºáááºá áááºááá¯áá²ááŒá áºááŒá áºá Python 3.6 áá«ááŸááá¯áẠááá¯ááŒáá·áºáá²á· áá¬ážááŸááºážááᯠinstall áá¯ááºáá¬ážááá¯á· ááá¯á¡ááºáá«áááºá
- github á០clone .
- Ya.Cloud ááœáẠá á¬áááºážááœááºážáá«-
- áá¯á¶ážááŸá
áºáá¯á¶ážááᯠááá¯ááºááá¯ááºáááºáá®ážáá«á áááºážááá¯á·ááᯠáááºááá·áºá¡áááºááŒáá·áº áá±á«áºáá«á
{BUCKET NAME}Оtgalice-test-cold-storage(á€á¡áááºá¡áááºááᯠááᯠhardcode ááŒáá·áº ááŒá±á¬ááºážáá²áá¬ážáá«áááºámain.pyáá«á·á¥ááá¬)á ááááá¯á¶ážááᯠááŒáá·áºáá»ááºáááºá¡ááœááºáᬠááá¯á¡ááºáááºááŒá áºááŒá®ážá áá¯ááá- ááá¯ááºáá¬áá±á¬á·ááºá¡ááŒá±á¡áá±áá»á¬ážááᯠááááºážáááºážáááºá¡ááœááºáᬠááá¯á¡ááºáá«áááºá - áááºáá®áž áá°á·ááᯠá¡áááºážááá¹ááá
áºáá¯áá±ážáá«á
editorááŸáá·áº áááºážá¡ááœáẠáááºááŒáááºáá±á¬á¡áá±á¬ááºá¡áá¬ážáá»á¬áž ááá°áá«á{KEY ID}О{KEY VALUE}- ááœá±ážááœá±ážááŸá¯á¡ááŒá±á¡áá±á¡á¬áž ááŸááºáááºážáááºááẠáááºážááá¯á·ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá Ya.Cloud ááŸáá¯ááºáá±á¬ááºáá»ááºááẠYa.Cloud ááŸááá¯ááŸá±á¬ááºááŸá¯ááá¯á·áááºáá±á¬ááºááá¯ááºá á±áááºá€á¡áá¬á¡á¬ážáá¯á¶ážááá¯á¡ááºáá«áááºá áá áºáá±á·áá±á·ááŸá¬áá±á¬á· ááœáá·áºááŒá¯áá»ááºáᬠá¡ááá¯á¡áá»á±á¬ááºááŒá áºáá¬áááá·áºáááºááá¯á· áá»áŸá±á¬áºááá·áºáá«áááºá áá«áá±ááá·áº á¡áá¯á¡áá»áááºááŸá¬áá±á¬á· áá®ááá¯áá«áá²á - (áá»ááºááŸááºáá¬ážááá¯ááºáááº) ááá·áºááœááºážáá«á
yc. áááºá¡ááºáá¬áá±á·á áºááŸáááá·áº áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯ááá¯áááºáž áááºáááºáá®ážááá¯ááºáááºá ááá¯á·áá±á¬áº áááºážáá áºáá®ááœááºááŸá¯á¡áá»áá¯ážáá»áá¯ážááẠáááºážááœááºááá¯ááá¯ááŒááºáááºá áœá¬áá±á«áºáá¬áá±á¬ááŒá±á¬áá·áº CLI ááẠáá±á¬ááºážááœááºáá«áááºá - ááᯠáááºááẠá¡ááŸááºááááºá ááŸá®ááá¯ááŸá¯á
ááºážáá±ážááœá²ááᯠááŒááºáááºááá¯ááºáááº- áá»áœááºážáá»ááºááŸá¯á¥ááá¬ááŒáá·áº ááá¯áá«á០command line áá±á«áºááœáẠrun
make all. ááá¯ááºááœá²áá²ááœáẠá á¬ááŒáá·áºááá¯ááºáá»á¬áž (á¡áá»á¬ážá á¯ááŸá¬ áá¯á¶ááŸááºá¡ááá¯ááºážá áááá¯á¡ááºáá²) á¡áá»á¬ážá¡ááŒá¬ážááᯠááá·áºááœááºážááœá¬ážáá«áááºádist. - Object Storage (áá¯á¶ážáá
áºáá¯áá²ááá¯á· áá±á¬áááºáá»á¬ážááŒáá·áºááŒáá·áºáá«á
{BUCKET NAME}) ááááºá¡ááá·áºááœáẠáááŸááá±á¬ áá±á¬áºááœááºážááá¯dist.zip. ááá¹áááŸááá«áá á¥ááá¬á¡á¬ážááŒáá·áºá command line ááŸáááºáž áááºáá¯ááºáá±á¬ááºááá¯ááºáááºá . - áááºá¡ááºáá¬áá±á·á
áºááŸáááá·áº áá¬áá¬áá²á·áá¯ááºáá±á¬ááºáá»ááºááᯠáááºáá®ážáá« ááá¯á·ááá¯áẠá¡áá¯á¶ážáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá«á
yc. utility á¡ááœááºá command áááºá€áá²á·ááá¯á·ááŒá áºáá±áááá·áºáááºá
yc serverless function version create
--function-name=horoscope
--environment=AWS_ACCESS_KEY_ID={KEY ID},AWS_SECRET_ACCESS_KEY={KEY VALUE}
--runtime=python37
--package-bucket-name={BUCKET NAME}
--package-object-name=dist.zip
--entrypoint=main.alice_handler
--memory=128M
--execution-timeout=3sáá¯ááºáá±á¬ááºáá»ááºáá áºáá¯ááᯠááá¯ááºááá¯ááºáááºáá®ážááá·áºá¡áá«á ááá·áºáááºáá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá°áá®áá±á¬áá¯á¶á á¶ááŒáá·áº ááŒáá·áºáá±ážáááºá
ááᯠáááºáááºáá®ážáá¬ážáá±á¬ áá¯ááºáá±á¬ááºáá»ááºááᯠdeveloper console ááŸáááá·áº á ááºážáááºááá¯ááºááŒá®ážá ááá¯á·áá±á¬áẠá¡ááŒá®ážáááºááŒá®áž áá¯ááºáá±ááŒááºážáá»áœááºážáá»ááºááŸá¯á

áá±á«ááºážá áœááºá¡á±á¬ááºááŸá¬ áá¬ááŸááá²á
makefile ááœáẠá¡ááŸááºáááẠááŸá®ááá¯á¡á¬ážáá¬ážááŸá¯áá»á¬ážááᯠááá·áºááœááºážáááºááŸáá·áº áááºážááá¯á·ááᯠáá±á¬áºááœááºážááá¯ááºáá
áºáá¯ááœáẠááá·áºááœááºážáááºá¡ááœáẠá¡áá±á¬áºáá±ážááá¯ážááŸááºážáá±á¬ script áá
áºáá¯áá«ááŸááááºá dist.zipá á€áá²á·ááá¯á·áá±á¬ áá
áºáá¯áá¯-
mkdir -p dist/
pip3 install -r requirements.txt --target dist/
cp main.py dist/main.py
cp form.yaml dist/form.yaml
cd dist && zip --exclude '*.pyc' -r ../dist.zip ./*áá»ááºáá¬ááœá±ááá±á¬á· á
á¬ááŒáá·áºááá¯ááºáá²ááŸá¬ áá¯ááºááá¯ážáá¬ážáá²á· ááá¯ážááŸááºážáá²á· áááááá¬áá±ážááœá±áá«á tgalice. á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááŒáá·áºááœááºážááŒááºážáá¯ááºáááºážá
ááºááᯠconfig ááŸáá±á¬áºááŒáááºá form.yaml:
form_name: 'horoscope_form'
start:
regexp: 'ÑÑаÑÑ|МаÑ(аÑÑ|МО)'
suggests:
- СÑаÑÑ
fields:
- name: 'name'
question: ÐПжалÑйÑÑа, МазПвОÑе ÑÐ²ÐŸÑ ÐžÐŒÑ.
- name: 'year'
question: ТепеÑÑ ÑкажОÑе ЌМе гПЎ ваÑегП ÑПжЎеМОÑ. ТПлÑкП ÑеÑÑÑе ÑОÑÑÑ, МОÑегП лОÑМегП.
validate_regexp: '^[0-9]{4}$'
validate_message: ÐПжалÑйÑÑа, пПпÑПбÑйÑе еÑÑ Ñаз. ÐазПвОÑе гПЎ ваÑегП ÑÐŸÐ¶ÐŽÐµÐœÐžÑ - ÑеÑÑÑе ÑОÑÑÑ.
- name: 'month'
question: ÐаЌеÑаÑелÑМП! ТепеÑÑ ÐœÐ°Ð·ÐŸÐ²ÐžÑе ЌеÑÑÑ Ð²Ð°ÑегП ÑПжЎеМОÑ.
options:
- ÑМваÑÑ
...
- ЎекабÑÑ
validate_message: ТП, ÑÑП Ð²Ñ ÐœÐ°Ð·Ð²Ð°Ð»Ðž, Ме пПÑ
Пже Ма ЌеÑÑÑ. ÐПжалÑйÑÑа, МазПвОÑе ЌеÑÑÑ Ð²Ð°ÑегП ÑПжЎеМОÑ, без ÐŽÑÑгОÑ
ÑлПв.
- name: 'day'
question: ÐÑлОÑМП! ÐакПМеÑ, МазПвОÑе ЌМе ЎаÑÑ Ð²Ð°ÑегП ÑÐŸÐ¶ÐŽÐµÐœÐžÑ - ÑПлÑкП ÑОÑлП, вÑегП ПЎМа ОлО Ўве ÑОÑÑÑ.
validate_regexp: '[0123]?d$'
validate_message: ÐПжалÑйÑÑа, пПпÑПбÑйÑе еÑÑ Ñаз. ÐаЌ МÑжМП МазваÑÑ ÑОÑлП ÑвПегП ÑÐŸÐ¶ÐŽÐµÐœÐžÑ (МапÑОЌеÑ, ЎваЎÑаÑПе); ÑÑП ПЎМа ОлО Ўве ÑОÑÑÑ.python á¡áááºážááẠဠconfig ááá¯ááœá²ááŒááºážá áááºááŒá¬ááŒá®áž áá±á¬ááºáá¯á¶ážááááºááᯠááœááºáá»ááºááá·áºá¡áá¯ááºááᯠáá¬áááºáá°áááºá
class CheckableFormFiller(tgalice.dialog_manager.form_filling.FormFillingDialogManager):
SIGNS = {
'ÑМваÑÑ': 'ÐПзеÑПг',
...
}
def handle_completed_form(self, form, user_object, ctx):
response = tgalice.dialog_manager.base.Response(
text='СпаÑОбП, {}! ТепеÑÑ ÐŒÑ Ð·ÐœÐ°ÐµÐŒ: ваЌ {} леÑ, О Ð²Ñ {}. n'
'ÐÐŸÑ ÑÑП ваЌ, кПМеÑМП, пПвезлП! ÐвÑÐ·ÐŽÑ Ð³ÐŸÐ²ÐŸÑÑÑ Ð²Ð°ÐŒ: {}'.format(
form['fields']['name'],
2019 - int(form['fields']['year']),
self.SIGNS[form['fields']['month']],
random.choice(FORECASTS),
),
user_object=user_object,
)
return responseááá¯áááááá»áá»ááŒá±á¬áááẠá¡ááŒá±áá¶áá°áááºážá
á¬ážáá±á«á·á FormFillingDialogManager "áá±á¬ááº" ááá¯ááŒáá·áºááŒááºážááŸáá·áºááá±ážá¡áááºážááááºážáááºáž handle_completed_form á¡áááºááá·áºááŒá
áºáá²á·á¡áá« áá¬áá¯ááºáááá²ááá¯áᬠááŒá±á¬ááŒáááºá
á€ááœá±ážááœá±ážááœá²á á¡áááá
á®ážáááºážááŸá¯á¡ááŒááºá á¡áá¯á¶ážááŒá¯áá°ááá¯áááºáž ááŸá¯ááºáááºááááºááŒá
áºááŒá®ážá "help" ááœááºáááºážááœáẠá¡áá°á¡áá®áá±ážáᬠ"ááœááº" á¡áááá·áºáá±ážááá·áº áá»áœááºážáá»ááºááŸá¯á០ááœááºááŒá±á¬ááºá
á±áááºááŒá
áºáááºá áá®á¡ááœáẠtgalice áá¯á¶á
á¶ááœááºáá
áºáá¯áááºážááŸááá«áááºá ááá¯á·ááŒá±á¬áá·áº ááá¯ááºáá¬áá±á¬á·ááºáááºáá±áá»á¬áá
áºáá¯áá¯á¶ážááᯠá¡ááá¯ááºážááá¯ááºážáá»á¬ážááŒáá·áº ááœá²á·á
ááºážáá¬ážáááºá
dm = tgalice.dialog_manager.CascadeDialogManager(
tgalice.dialog_manager.GreetAndHelpDialogManager(
greeting_message=DEFAULT_MESSAGE,
help_message=DEFAULT_MESSAGE,
exit_message='ÐП ÑвОЎаМОÑ, пÑОÑ
ПЎОÑе в МавÑк "ÐйÑОÑМÑй гПÑПÑкПп" еÑÑ!'
),
CheckableFormFiller(`form.yaml`, default_message=DEFAULT_MESSAGE)
)CascadeDialogManager ááá¯ážááŸááºážá
áœá¬ á¡áá¯ááºáá¯ááºáááº- áááºážááẠááœá±ážááœá±ážááŸá¯á áááºááŸáá¡ááŒá±á¡áá±ááá¯á· á¡áá¯á¶ážáá»ááẠááŒáá¯ážá
á¬ážááŒá®áž áááºážá á¡á
áááºá¡ááá¯ááºážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá¡ááŸáá·áºáá»áá¯ááºáá±á¬ááºáᬠááá áááºááá¯ááºáá¬áá
áºáá¯ááᯠááœá±ážáá»ááºáááºá
áááºáá±á·áá»áºáá
áºáá¯á
á®á¡ááœáẠáá¯á¶á·ááŒááºááŸá¯á¡áá±ááŒáá·áº ááá¯ááºáá¬áá±á¬á·ááºáááºáá±áá»á¬ááẠpython á¡áá¬ááá¹áá¯áá
áºáá¯ááᯠááŒááºáá±ážáááºá Responseááá¯á·áá±á¬áẠááá¯ážááá¯ážá
á¬áá¬ážá¡ááŒá
Ạááá¯á·ááá¯áẠAlice ááá¯á·ááá¯áẠTelegram ááœáẠáááºáá±á·áá»áºá¡ááŒá
áºááá¯á· ááŒá±á¬ááºážáá²ááá¯ááºááẠ- bot áááºáááºáá±ááá·áºáá±áá¬áá±á«áºáá°áááºá áááºážááœáẠááááºážáááºážááẠááá¯á¡ááºáá±á¬ ááá¯ááºáá¬áá±á¬á·ááºá ááŒá±á¬ááºážáá²áá¬ážáá±á¬ á¡ááŒá±á¡áá±áááºáž áá«ááŸááááºá áá®áá®ážááá¯áá»á±á¬ááºááᯠáááŒá¬ážá¡áááºážá ááá¯ááºááœááºáááºá DialogConnectorááá¯á·ááŒá±á¬áá·áº Yandex Functions ááœááºáá»áœááºážáá»ááºááŸá¯áá
áºáá¯á
áááºáááºááá¯ááºááá¯áẠscript áááºá€áá²á·ááá¯á·ááŒá
áºáááº-
...
session = boto3.session.Session()
s3 = session.client(
service_name='s3',
endpoint_url='https://storage.yandexcloud.net',
aws_access_key_id=os.environ['AWS_ACCESS_KEY_ID'],
aws_secret_access_key=os.environ['AWS_SECRET_ACCESS_KEY'],
region_name='ru-central1',
)
storage = tgalice.session_storage.S3BasedStorage(s3_client=s3, bucket_name='tgalice-test-cold-storage')
connector = tgalice.dialog_connector.DialogConnector(dialog_manager=dm, storage=storage)
alice_handler = connector.serverless_alice_handleráááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá á€áá¯ááºá¡áá»á¬ážá
á¯ááẠObject Storage S3 interface ááá¯á· áá»áááºáááºááŸá¯ááᯠáááºáá®ážáá±ážáááºá áá®ááœááºáááºááŸááºááᯠáááºááá¯ááá¯ááºááá¯ááºáá¯á¶ážááá² ááá¯áᬠáááºááŸá¯ááá¯ááºáá«áááºá .
áá±á¬ááºáá¯á¶ážá
á¬ááŒá±á¬ááºážááẠáá¯ááºáá±á¬ááºáá»ááºáá
áºáá¯ááᯠáááºáá®ážáááºá alice_handler - áá»áœááºá¯ááºááá¯á·ááẠparameter ááá¯áááºááŸááºáá±á¬á¡áá« Yandex.Cloud ááá¯ááœá²áá¯ááºáááºáá»áœááºá¯ááºááá¯á·á¡áááá·áºáá±ážáá±á¬á¡áᬠ--entrypoint=main.alice_handler.
ááááºáá±á¬á· áá«ááœá±á¡á¬ážáá¯á¶ážáá«áá²á áááºáá±á¬ááºáááºá¡ááœáẠMakefilesá áááºá
ááºááááºážáááºážááŸá¯á¡ááœáẠS3 áá²á·ááá¯á·áá±á¬ á¡áá¬ááá¹áá¯ááá¯ááŸá±á¬ááºááŸá¯á ááŸáá·áº python á
á¬ááŒáá·áºááá¯áẠtgalice. python á áá¬áá¬áá²á·á¡ááºá¹áá«áááºáá»á¬ážááŸáá·áº áá±á¬áºááŒááá¯ááºá
áœááºážááá¯á·ááŸáá·áºá¡áá°á áááºážááẠáá»ááºážáá¬áá±á¬áá°áá
áºáŠážáá
áœááºážáááºááᯠááŒáŸáá·áºáááºááẠáá¯á¶áá±á¬ááºáá«áááºá
áá¬ááŒá±á¬áá·áº áááºáá®ážááá¯á· ááá¯á¡ááºáá¬áá²ááá¯á· áá±ážááá¯ááºáá«áááºá tgalice? áá±á¬ááºážááá¯áá»ááºá០áá¯á¶á·ááŒááºááŸá¯ááá¯á· ááá¯ááŸá±á¬ááºááŸá¯á០áááºááá¯áá®ááŸáá·áº áá±á¬ááºáá»á±á¬ááá¯á· JSON ááœáŸá²ááŒá±á¬ááºážáá±ážááá·áº ááŒá®ážááœá±á·ááœááºáá¯ááºá¡á¬ážáá¯á¶ážááẠáááºážááœáẠááŸááááºá áá¯á¶ááŸááºá¡ááá®áá±ážááŸááºážáá
áºáá¯á "áá±áá±á¬áºáá«áá®" ááẠ"áá±áá±á¬áºáá«áá®" ááŸáá·áºáááºážáá²áá¬ážáá»á¬ážá¡ááœááºá¡ááŒá¬áž NLU ááŸáá·áºáááºáá°ááŒá±á¬ááºážáá¬ážáááºáááºáá¯ááºáá±á¬ááºáá»ááºáá
áºáá¯áááºážááŸááááºá áá»áœááºá¯ááºáá
áááºáá°ážá¡áá áááºážááá¬ááá¯ááºáá¬á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠá¡á¬áá¯á¶ááá»á¶á·ááœáá·áºáá² yaml ááá¯ááºáá»á¬ážááœáẠáá¯á¶ááŒááºážáá±ážááœá²ááá¯ááºáá±á¬ááºá¡á±á¬áẠááŒá
áºááá·áºáááºá
á¡áááºá áááºááẠááá¯ááá¯áá±ážáááºáá±á¬ NLU ááᯠááá¯áá»ááºáá«áá áááºááẠáááºážááᯠáááºá áá»áœááºážáá»ááºááŸá¯ááá¯á· ááŸáá·áºá á¬ážááá¯ááºáááºá ááá¯á·ááá¯áẠááá¯á·áá±á¬áº áááºážááá¯á·ááᯠáááºáááºááŒááºážááẠá¡áá°ážáááŒáá·áº áá¬áá¬áá²á·ááœáẠáááºáá¬ááŒáá·áº áááºáá±á¬ááºážáááŒááºáž ááá¯á¡ááºáááºááŒá áºáááºá áá¯ááºáá±ážááŒááºáž áá¯á¶ážááááŒá¯áá¯ááºááᯠáá¶á á¬ážááá«áá ááŒááºááá¯ááºáá±á¬ á¡áá»áá¯ážá¡á á¬áž áááºáá±á¬ááºááŸá¯á áá áºááᯠá¡áá¯á¶ážááŒá¯ááá·áºáááºá . tgalice ááá¯áááºáá®ážáá±á¬á¡áá«á á¡áááºá¡áááºáááºážááŒá±á¬ááºážá¡áá»áá¯á·ááá¯á ááºážá á¬ážáá²á·áááºá áá¬ááŒá áºááœá¬ážáá² ááŒáá·áºáá¡á±á¬ááºá
áá² á¡áá¯áá² join ááá¯ááºáá«á áááºáá«á á¡á¶á·ááŒááœááºáááºáá®ážáá«á !
source: www.habr.com
