ááááºážáá²á· á
ááá¯ááºáá¡á±á¬ááºá ááááºáá±á·á Yandex.Cloud ááẠáá¬áá¬áá²á· ááœááºáá»á°áá¬áááºáá±á¬ááºááŸá¯ááᯠááœáŸáá·áºáááºááŒá±á¬ááºáž ááŒá±áá¬áá²á·áááºá
ááá¯á·áá±á¬áº á¡áá»áá¯á·áá±á¬áá°áá»á¬ážááẠáá±ážáá»á±ááŸá¯áá¯á¶ážááááŸááá±á áá«ááœá±á developer ááœá±áá«á
áá«áá±ááá·áº ááœá²ááœá²áá»ááºá¡áá»áá¯á·ááŸááá«áááºá ááááŠážá áœá¬á ááá·áºá¡áááºááœá±ážáááá á¹áá¬ááºáá¯ááºááẠááŸá®ááá¯ááŸá¯á¡áá»áá¯á· ááá¯á¡ááºááá¯ááºááŒá®áž áááºážááá¯á·ááᯠ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á MongoDB áá²á· áááŒá¬ážáá±áá¬áá±á·á Ạáá«ááŸááá¯áẠáá±áá¬á ááá¯ážááá¯ááœá¬ážááá¯á·á¡ááœááºá ááá·áºáá¯ááºáá±á¬ááºáá»ááºáá¯ááºáá²á·á¡áá° Yandex Functions ááŸá¬ ááẠupload áááºááá¯á·ááá¯á¡ááºáá²á· ááŒááºáááŸá®ááá¯ááŸá¯á¡áá»áá¯á·ááá¯á¡ááºáá«áááºá ááŒá®ážáá±á¬á· á¡áááºááŒá±ááŒá± áá¯ááºáá»ááºáá«áááºá áááºážááẠáá¯á¶ážáá¡áááºááŒá±ááẠ(heroku ááœááºáá²á·ááá¯á·) ááŒá áºáá»ááºáá±á¬á·á áááºážááẠá¡áá¯ááºáááŒá áºáá«á ááá¯á·áá±á¬áº áááºáááºážáá»ááºááá¯áááºáá±á¬ááºááẠscript áá áºáá¯áá±ážááŒááºážááŒáá·áº (ááá¯ááºááŒá¯áá¯ááºáááº) á¡ááŒá±áá¶ááŸá áºáááá·áºááŸá¯á¡áá»áá¯á·ááᯠáááºáááºáá®ážááá¯ááºáááºá
áá¬áá¬áá»áœááºážáá»ááºááŸá¯ááᯠáááºááá¯á áááºááá²á
- ááŒááºáááºáá«- Linux ááŒáá·áº á ááºá¡áá»áá¯á·ááá¯á· ááœá¬ážáá«á áá°á¡áá áááºááẠWindows ááŸáá·áºáááºáž áá¯ááºáá±á¬ááºááá¯ááºáá±á¬áºáááºáž makefile ááᯠá áááºááŒááºážááŒáá·áº áá¯á¶áá±á¬áºááẠááá¯á¡ááºáá«áááºá áááºááá¯á·áááºááá¯á á±áá¬áá° Python ááᯠá¡áááºážáá¯á¶áž 3.6 ááá·áºááœááºážáá¬ážááẠááá¯á¡ááºáá«áááºá
- github á០clone
áá¬áá¬áá»áœááºážáá»ááºááŸá¯ á¥ááᬠ. - Ya.Cloud ááœáẠá
á¬áááºážááœááºážáá«-
https://cloud.yandex.ru - áá¯á¶ážááŸá
áºáá¯á¶ážááᯠááá¯ááºááá¯ááºáááºáá®ážáá«á
object ááá¯ááŸá±á¬áẠáááºážááá¯á·ááᯠáááºááá·áºá¡áááºááŒáá·áº áá±á«áºáá«á{BUCKET NAME}
Оtgalice-test-cold-storage
(á€á¡áááºá¡áááºááᯠááᯠhardcode ááŒáá·áº ááŒá±á¬ááºážáá²áá¬ážáá«áááºámain.py
áá«á·á¥ááá¬)á ááááá¯á¶ážááᯠááŒáá·áºáá»ááºáááºá¡ááœááºáᬠááá¯á¡ááºáááºááŒá áºááŒá®ážá áá¯ááá- ááá¯ááºáá¬áá±á¬á·ááºá¡ááŒá±á¡áá±áá»á¬ážááᯠááááºážáááºážáááºá¡ááœááºáᬠááá¯á¡ááºáá«áááºá - áááºáá®áž
áááºáá±á¬ááºááŸá¯á¡áá±á¬áá·áº áá°á·ááᯠá¡áááºážááá¹ááá áºáá¯áá±ážáá«áeditor
ááŸáá·áº áááºážá¡ááœáẠáááºááŒáááºáá±á¬á¡áá±á¬ááºá¡áá¬ážáá»á¬áž ááá°áá«á{KEY ID}
О{KEY VALUE}
- ááœá±ážááœá±ážááŸá¯á¡ááŒá±á¡áá±á¡á¬áž ááŸááºáááºážáááºááẠáááºážááá¯á·ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá Ya.Cloud ááŸáá¯ááºáá±á¬ááºáá»ááºááẠYa.Cloud ááŸááá¯ááŸá±á¬ááºááŸá¯ááá¯á·áááºáá±á¬ááºááá¯ááºá á±áááºá€á¡áá¬á¡á¬ážáá¯á¶ážááá¯á¡ááºáá«áááºá áá áºáá±á·áá±á·ááŸá¬áá±á¬á· ááœáá·áºááŒá¯áá»ááºáᬠá¡ááá¯á¡áá»á±á¬ááºááŒá áºáá¬áááá·áºáááºááá¯á· áá»áŸá±á¬áºááá·áºáá«áááºá áá«áá±ááá·áº á¡áá¯á¡áá»áááºááŸá¬áá±á¬á· áá®ááá¯áá«áá²á - (áá»ááºááŸááºáá¬ážááá¯ááºáááº) ááá·áºááœááºážáá«á
command line interface yc
. áááºá¡ááºáá¬áá±á·á áºááŸáááá·áº áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯ááá¯áááºáž áááºáááºáá®ážááá¯ááºáááºá ááá¯á·áá±á¬áº áááºážáá áºáá®ááœááºááŸá¯á¡áá»áá¯ážáá»áá¯ážááẠáááºážááœááºááá¯ááá¯ááŒááºáááºá áœá¬áá±á«áºáá¬áá±á¬ááŒá±á¬áá·áº CLI ááẠáá±á¬ááºážááœááºáá«áááºá - ááᯠáááºááẠá¡ááŸááºááááºá ááŸá®ááá¯ááŸá¯á
ááºážáá±ážááœá²ááᯠááŒááºáááºááá¯ááºáááº- áá»áœááºážáá»ááºááŸá¯á¥ááá¬ááŒáá·áº ááá¯áá«á០command line áá±á«áºááœáẠrun
make all
. ááá¯ááºááœá²áá²ááœáẠá á¬ááŒáá·áºááá¯ááºáá»á¬áž (á¡áá»á¬ážá á¯ááŸá¬ áá¯á¶ááŸááºá¡ááá¯ááºážá áááá¯á¡ááºáá²) á¡áá»á¬ážá¡ááŒá¬ážááᯠááá·áºááœááºážááœá¬ážáá«áááºádist
. - Object Storage (áá¯á¶ážáá
áºáá¯áá²ááá¯á· áá±á¬áááºáá»á¬ážááŒáá·áºááŒáá·áºáá«á
{BUCKET NAME}
) ááááºá¡ááá·áºááœáẠáááŸááá±á¬ áá±á¬áºááœááºážááá¯dist.zip
. ááá¹áááŸááá«áá á¥ááá¬á¡á¬ážááŒáá·áºá command line ááŸáááºáž áááºáá¯ááºáá±á¬ááºááá¯ááºáááºáAWS CLI . - áááºá¡ááºáá¬áá±á·á
áºááŸáááá·áº áá¬áá¬áá²á·áá¯ááºáá±á¬ááºáá»ááºááᯠáááºáá®ážáá« ááá¯á·ááá¯áẠá¡áá¯á¶ážáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá«á
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 ááᯠááá¯áá»ááºáá«áá áááºááẠáááºážááᯠáááºá áá»áœááºážáá»ááºááŸá¯ááá¯á· ááŸáá·áºá
á¬ážááá¯ááºáááºá
áá² á¡áá¯áá² join ááá¯ááºáá«á
source: www.habr.com