แแแแแฌแงแแ แกแแแฎแแแแแแ. แแฃแจแแ Yandex.Cloud-แแ แแแแแแชแฎแแแ แกแแ แแแ แแก แแแ แแจแ แแแแแแแแแแ แกแแ แแแกแแก แแแจแแแแ
แแฃแแชแ, แแแแแแ แแแ แจแแแซแแแแ แกแแแ แแแ แแ แแแแแแฎแแแแก. แแกแแแ แแ แแแ แแแแแแแแแ แแแ
แแแแ แแ แแ แกแแแแแก แ แแแแแแแแ แแแฃแแแกแ. แฃแแแ แแแแแก แงแแแแแกแ, แแฅแแแแ pit แแแแ แจแแแซแแแแ แแแแแฎแแแแแก แแแ แแแแฃแ แแแแแแแแแแฃแแแแแแก แแ แแแแ แฆแ แฃแแแแจแ แฉแแแ แแแ แแ แ แขแ แแแแแแฃแ แแ. แแแแ แแช, แแแแแกแแแแ แแแ แแแแฃแ แฉแแแแแขแก แกแญแแ แแแแ แแแแแแแแก แแแแแแแ แแแแ แกแแแแ แจแแแแแฎแแก (แแฅแแแแ แแแแแแแแแแ แ); แ แ แแ แแก แแแแก แแแแแแแแแก แฃแแแ แขแแแแกแ แแแ แกแแ แแแ แแก แแแ แแจแ? แแแกแแแ, แ แแแแ แจแแแแซแแแแ แแแฌแแ แแ แกแฌแ แแคแ แแ แแแแซแฃแ แ แฃแแแ แ แแแแกแแกแแแแก แแ แแฃแแแแช แ แแแแ แกแแฎแแก แแแขแแกแแแแก, แ แแแแแแช แแ แแ แแก แแฃแแแแแแ แแแฎแแแแ? แกแขแแขแแ, แคแแฅแขแแแ แแแแ, แแ แแแฃแแแกแแแแแ.
แแแ แแแฃแ แ แแแแแแแแแ
แแแฃแแแแแแแแแแแแก: แแ แแแแ แแแแ แกแแญแแ แ แแแแแแแแแแฃแแแแแแก แแแแแแคแแแแ แคแฃแแฅแชแแแก แฆแ แฃแแแแจแ แแขแแแ แแแแแแ, แแแแแฎแแ แแแแแแแแก แแแแแแแ แแแแแก Yandex Object Storage-แจแ (แแก แแฎแแ แก แฃแญแแ แก S3 API-แก) แแ แแแงแแแแ แฉแแแก แแแแแแแแแแแก แแแแแแแแก แกแแแแ แแแแแ.
แแแแแแแก, แแแแช แแแแแแแแ แแแฃแแแแแแแแ, แกแแแแ แกแแ แแฃแแแก แจแแกแแฎแแ แฉแแแก แแกแขแแ แแแก แฉแแแฃแฆแ แแแแแแแแ, แแแ แฉแแแ แแแแฌแงแแ แ แแแแ แแแ แขแแแแ. แแแ แซแแ, แจแแฅแแแแแ แแ แแคแแแแแแแ echobot แคแฃแแฅแชแแ, แแแแ แแแแกแขแ แแ แแ แแ แจแแแแแฌแแแ แแแ Dialogs แแแแแแแแแ แแก แแแแกแแแจแ; แแแขแแแแแ - in
แแฃ แแแแแแ แแแฃแงแแแแแแแแ แแแ แซแแแ แ แแกแแแแก แแแแ แซแแแ แแฅ, แฐแแแแฎแแ แแแแกแแก.
แแแแกแ: แแแแแ แฏแแแ! แแฅแแแ แฎแแ แ "IT แฐแแ แแกแแแแแก" แฃแแแ แจแ. แแฅแแแ โแแแแฌแงแโ แแ แแแแ แแแแ แ แแก แแแแ แแแแแแ แแแ แกแแแแแแแแ.
แแแแฎแแแ แแแแแ: แแแฌแงแแแ
แแแกแฃแฎแ: แแแฎแแแ, แแแฃแแแแแ แแฅแแแแ แกแแฎแแแ
แแฃ: แแแกแแแฃแแแ
_ แแฎแแ แแแแฎแแ แ แจแแแ แแแแแแแแแก แฌแแแ. แแฎแแแแ แแแฎแ แชแแคแ แ, แแแแแแขแ แแ แแคแแ แ.
แแฃ: แแแแ แ
แแแกแฃแฎแ: แแแฎแแแ, แกแชแแแแ แฎแแแแฎแแ. แจแแแงแแแแแ แแฅแแแแ แแแแแแแแแก แฌแแแ - แแแฎแ แชแแคแ แ.
Yu: 2002 แฌ
แฒแแแ! แแฎแแ แแแแกแแฎแแแแ แแฅแแแแ แแแแแแแแแก แแแ.
แแฃ: แแแแแ แแแแ
แฒแแแ! แแ แแแแแก, แแแแฎแแ แแ แแฅแแแแ แแแแแแแแแก แแแ แแฆแ - แแฎแแแแ แ แแชแฎแแ, แแฎแแแแ แแ แแ แแ แแ แ แชแแคแ แ.
Yu: 18 แฌ
_ แแแแแแแแ, แแแกแแกแฃแแแ! แแฎแแ แฉแแแ แแแชแแ: แแฅแแแ 17 แฌแแแก แฎแแ แ แแ แแแ แฌแงแฃแแ แฎแแ แ. แแแ แแ, แ แ แแฅแแ แฃแแแ, แแแแแแแ แแแ! แแแ แกแแแแแแแแ แแแฃแแแแแแแ: ะฐ ััะพ ะณะพะฒะพััั ะทะฒัะทะดั, ะฒั ัะทะฝะฐะตัะต, ะทะฐะฟัััะธะฒ ะฝะฐะฒัะบ.
แแ แแแแแแ แแก แแ แแก, แ แแ แแฃแแแแช แแกแแแ แแแ แขแแแ แแแแแแแแก แจแแกแแแแ แฉแฃแแแแแแ, แแฅแแแ แฃแแแ แแแฎแกแแแแแ แแแแฎแแแ แแแแแก แกแแฎแแแ แแ แแแแแแแแแก แแแ แแฆแ, แฎแแแ แกแแ แแแ แแก แแแ แแจแ แคแฃแแฅแชแแแก แแแ แแแแจแ แแก แแ แ แขแ แแแแแแฃแ แแ. แแแแขแแฅแกแขแแก แจแแแแฎแแ RAM-แจแ แแ แแแกแแแ แคแแแแแก แกแแฎแแ แจแแฃแซแแแแแแ แแฅแแแแ, แ แแแแแ Yandex.Cloud-แก แจแแฃแซแแแ แแ แแแ แแฃแแแ แ แแแแแแแแ แแแ แขแฃแแแฃแ แแแแ แแขแแ แคแฃแแฅแชแแแก แแแจแแแแ แแ แกแฃแ แแแแแกแแแแแ แแแ แจแแ แแก แแแแแ แแแ. แแฅแแแ แแแแแฌแแแ แแแแแแงแแแแ แ แแแแ แกแแฎแแก แแแ แ แแแฎแกแแแ แแแ. Object Storage แแแ แฉแแแก แกแแแแแแ แแแค แแ แแแฃแ แแฃแแแแแ แกแแชแแแแ แแแ แแแแแ Yandex.Cloud-แจแ (แแแฃ, แแแแแ แกแฌแ แแคแแ). แ แแแแ แช แฃแคแแกแ แแแขแแ แแแขแแแ, แจแแแแซแแแแ แกแชแแแแ, แแแแแแแแแ, แฃแคแแกแ แแแญแแ แ
แแแแแ แแ แแ แแ แแแแแแ แแก แแ แแก, แ แแ Object Storage-แแ, MongoDB-แกแ แแ แแแแแกแแแแ แกแฎแแ แแแแแชแแแแ แแแแแจแ แแ แแแแแชแแแแ แแแฆแแแแแจแ แฌแแแแแแกแแแแก, แกแแญแแ แแ แแแ แแแแฃแแ แแแ แ แแแแแแแแแแฃแแแแแแ, แ แแแแแแแช แฃแแแ แแแขแแแ แแแ Yandex Functions-แจแ แแฅแแแแ แคแฃแแฅแชแแแก แแแแแแ แแ แแแ. แแ แแ แแแแแ แแแแก แแแแแแแแ แแแฎแแ แฎแแแฃแแแ. แกแแแฌแฃแฎแแ แแ, แแก แแ แแฅแแแแ แกแ แฃแแแแ แแแกแแฎแแ แฎแแแแแ (แ แแแแ แช แฐแแ แแแฃแแ), แแแแ แแ แแแ แแแแฃแแ แซแแ แแแแแ แแแแคแแ แขแแก แจแแฅแแแ แจแแแซแแแแ แแแ แแแแก แจแแกแแฅแแแแแแ แกแแ แแแขแแก แแแฌแแ แแ (แคแแแแแก แจแแฅแแแ).
แ แแแแ แแแแแแแแฃแจแแแแ แฐแแ แแกแแแแแก แฃแแแ แ
- แแแแแแแแแ: แแแแแแแ Linux-แแก แแฅแแแ แแแฌแงแแแแแแแแแ. แแ แแแชแแแจแ, แแฅแแแ แแแแแ แจแแแแซแแแแ Windows-แแแแช แแแฃแจแแแ, แแแแ แแ แจแแแแแ แแฅแแแ แแแแแฌแแแ แแแ แแแแฃแแ แฏแแแแฅแ แแแแก แแแแแแแแ แแแแแแคแแแแก แแแจแแแแแ. แแ แแแแแกแแแแ แจแแแแฎแแแแแจแ, แแแแญแแ แแแแแ แแแแแแฃแ Python 3.6 แแแแแกแขแแแแ แแแฃแแ.
- แแแแแแ แแแ Github-แแแ
แฐแแ แแกแแแแแก แฃแแแ แแก แแแแแแแแ . - แแแ แแแแกแขแ แแ แแแ Y.Cloud-แจแ:
https://cloud.yandex.ru - แจแแฅแแแแแ แกแแแฃแแแ แ แแแแ แแ แ แแแแ แแจแ
แแแแแฅแขแแก แจแแแแฎแแ , แแแฃแซแแฎแแ แแแ แแแแแกแแแแ แ แกแแฎแแแแ{BUCKET NAME}
ะธtgalice-test-cold-storage
(แแก แแแแ แ แกแแฎแแแ แแฎแแ แแงแแ แ แแแแแ แแแฃแแแmain.py
แฉแแแ แแแแแแแแ). แแแ แแแแ แแแแแฃแแ แแแแญแแ แแแแแ แแฎแแแแ แแแแแแแแแแกแแแแก, แแแแ แ - แแแแแแแฃแ แ แแแแแแแ แแแแแแแก แจแแกแแแแฎแแ. - แจแแฅแแแ
แแแแกแแฎแฃแ แแแแก แแแแแ แแจแ , แแแแชแ แแแก แ แแแeditor
แแ แแแแฆแแ แกแขแแขแแแฃแ แ แกแแ แแแคแแแแขแแแ แแแแกแแแแก{KEY ID}
ะธ{KEY VALUE}
โ แแแ แแแแแแแงแแแแแ แแแแแแแแก แแแแแแแ แแแแแก แฉแแกแแฌแแ แแ. แแก แงแแแแแคแแ แ แกแแญแแ แแ แแแแกแแแแแก, แ แแ Ya.Cloud-แแก แคแฃแแฅแชแแแ แจแแซแแแก Ya.Cloud-แแแ แกแแชแแแแ แฌแแแแแ. แแแแกแแ, แแแแแ แแแฅแแก, แแแขแแ แแแแชแแ แแแขแแแแขแฃแ แแ แแแฎแแแแ, แแแแ แแ แแฎแแ แแกแแ. - (แกแฃแ แแแแแกแแแแแ ) แแแกแขแแแแชแแ
แแ แซแแแแแแก แฎแแแแก แแแขแแ แคแแแกแ yc
. แแฅแแแ แแกแแแ แจแแแแซแแแแ แจแแฅแแแแ แคแฃแแฅแชแแ แแแ แแแขแแ แคแแแกแแก แกแแจแฃแแแแแแ, แแแแ แแ CLI แแแ แแแ, แ แแแแแ แแแกแจแ แงแแแแ แกแแฎแแก แแแแแแชแแ แฃแคแ แ แกแฌแ แแคแแ แฉแแแแแ. - แแฎแแ แแฅแแแ แจแแแแซแแแแ แ แแแแฃแ แแ แแแแแแแแแ แแแแแแแแแแฃแแแแแก แแกแแแแแแ: แแแฃแจแแแ แแแ แแ แซแแแแแแก แกแขแ แแฅแแแแ แกแแฅแแฆแแแแแแแ แฃแแแ แแแแก แแแแแแแแแ.
make all
. แกแแฅแแฆแแแแแจแ แแแแแกแขแแแแ แแแแ แฃแแแ แแแ แแแแแแแแแแ (แซแแ แแแแแแ, แ แแแแ แช แงแแแแแแแแก, แแ แแกแแญแแ แ).dist
. - แฉแแแกแฎแแ Object Storage-แจแ แฎแแแแ (แแแแ แแจแ
{BUCKET NAME}
) แฌแแแ แแขแแแแ แแแฆแแแฃแแ แแ แฅแแแdist.zip
. แแฃ แกแแกแฃแ แแแแแ, แแแแก แแแแแแแแ แจแแแแซแแแแ แแ แซแแแแแแก แฎแแแแแแ, แแแแแแแแแ, แแแแแงแแแแแแAWS CLI . - แจแแฅแแแแแ แกแแ แแแ แแก แแแ แแจแ แคแฃแแฅแชแแ แแแ แแแขแแ แคแแแกแแก แกแแจแฃแแแแแแ แแ แแแแฃแแแแฃแ แ แแ แแแ แแแแก แแแแแงแแแแแแ
yc
. แแแแฃแแแแฃแ แแกแแแแก, แแ แซแแแแแ แแกแ แแแแแแงแฃแ แแแ:
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
แคแฃแแฅแชแแแก แฎแแแแ แจแแฅแแแแกแแก แงแแแแ แแแ แแแแขแ แ แแแกแแแ แแ แแแแแ แแ.
แแฎแแ แแฅแแแ แแแแ แจแแฅแแแแแ แคแฃแแฅแชแแแก แขแแกแขแแ แแแ แจแแกแแซแแแแแแแ แแแแแแแแแ แแก แแแแกแแแแก แแแจแแแแแแ, แจแแแแแ แแ แฃแแแ แ แแแฃแแฏแแแแกแแแก แแ แแแแแฅแแแงแแแแก.
แ แ แแ แแก แแแแแขแแก แฅแแแจ
แแแแแแแ แ แแแแฃแ แแ แจแแแชแแแก แกแแแแแแ แแแ แขแแ แกแแ แแแขแก แแแแแแแแแแฃแแแแแแแก แแแกแขแแแแชแแแกแ แแ แแ แฅแแแจแ แแแแแแแกแแแแกแแแแก 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
. แแแแฎแแแ แแแแแก แแแแแชแแแแแแก แจแแแกแแแแก แแ แแชแแกแ แแฆแฌแแ แแแแ แแแแคแแแฃแ แแชแแแ 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: ะะพะถะฐะปัะนััะฐ, ะฟะพะฟัะพะฑัะนัะต ะตัั ัะฐะท. ะะฐะผ ะฝัะถะฝะพ ะฝะฐะทะฒะฐัั ัะธัะปะพ ัะฒะพะตะณะพ ัะพะถะดะตะฝะธั (ะฝะฐะฟัะธะผะตั, ะดะฒะฐะดัะฐัะพะต); ััะพ ะพะดะฝะฐ ะธะปะธ ะดะฒะต ัะธััั.
แแ แแแแคแแแฃแ แแชแแแก แแแ แฉแแแแกแ แแ แกแแแแแแ แจแแแแแแก แแแแแแแแแแ แแฃแจแแแแแก แแฆแแแก แแแแแแแก แแแแกแ
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
แแฃแแแแแ แ แ แฃแแแ แแแแแแแแก, แ แแชแ แแแแ แแฅแแแแ.
แแแแแแแแก แแ แซแแ แแแแแ แแแแแแแก แแแ แแ, แแแแฎแแแ แแแแแก แแกแแแ แฃแแแ แแแแกแแแแแก, แแกแแแ แฃแแแ แแแแชแแก แแแฎแแแ แแแ โแแแฎแแแ แแแแกโ แแ แซแแแแแแก แแแแแงแแแแแแ แแ แแแแแแแแกแฃแคแแแแก แฃแแแ แแแแ โแแแกแแแแกโ แแ แซแแแแแแก แแแแแงแแแแแแ. แแ แแแแแแ แฅ 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
แแก แแฃแจแแแแก แแแ แขแแแแ: แแก แชแแแแแแก แแแแแก แแฎแ แแ แแแแแแงแแแแก แแแกแ แงแแแแ แแแแแแแแแขแ แแแแแแแแก แแแแแแแแแแ แแแแแแแ แแแแแแ แแ แแ แฉแแแก แแแ แแแ แจแแกแแแแแแกแก.
แแแแแแแแก แแแแแฏแแ แ แแแ แฃแแแแก แแแแแแแก แแแแแฅแขแก, แ แแแแ แช แแแกแฃแฎแ แแแแแแฃแ แจแแขแงแแแแแแแแแ. Response
, แ แแแแแแช แจแแแแแ แจแแแซแแแแ แแแ แแแแฅแแแแก แฃแแ แแแ แขแแฅแกแขแแ, แแ แจแแขแงแแแแแแแแ Alice-แจแ แแ Telegram-แจแ - แแแแกแแ แแแฎแแแแแ, แแฃ แกแแ แแฃแจแแแแก แแแขแ; แแก แแกแแแ แจแแแชแแแก แแแแแแแแก แจแแชแแแแ แแแแแแแ แแแแแก, แ แแแแแแช แฃแแแ แจแแแแแฎแแก. แแแแ แแ แกแแแแแ แแฃแแแก แกแฎแแ แแแแกแ แแแ แแแแก, DialogConnector
แแกแ แ แแ, Yandex Functions-แแ แฃแแแ แแแแก แแแจแแแแแก แแแ แแแแแ แ แกแแ แแแขแ แแกแ แแแแแแงแฃแ แแแ:
...
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 แแแขแแ แคแแแกแแแ. แแฅแแแ แจแแแแซแแแแ แฌแแแแแแฎแแ, แแฃ แ แแแแ แแแแแแงแแแแแ แแก แแแแจแแ แ แแแ แแแแแ
แแแแ แฎแแแ แฅแแแแก แคแฃแแฅแชแแแก alice_handler
- แแแแแ, แ แแช แฉแแแ แแฃแแฎแแ แแ Yandex.Cloud-แก, แ แแ แแแแงแแแแแก แแแ แแแแขแ แแก แแแงแแแแแแกแแก --entrypoint=main.alice_handler
.
แแก แงแแแแแคแแ แ, แคแแฅแขแแแ แแแแ. แแแแแคแแแแแแ แจแแแ แแแแกแแแแก, S3-แแก แแกแแแแกแ แแแแแฅแขแแแแก แจแแแแฎแแ แแแแขแแฅแกแขแแก แจแแกแแแแฎแแ แแ แแแแแแแก แแแแแแแแแแ tgalice
. แแแแแแแก แฃแกแแ แแแ แ แคแฃแแฅแชแแแแแแ แแ แแฅแกแแ แแกแแฃแแแแแกแแแ แแ แแแ, แแก แกแแแแแ แแกแแ แฏแแแกแแฆแ แแแแแแแแฃแ แ แฃแแแ แแแแก แแแแแแแแ แแแแกแแแแก.
แจแแแซแแแแ แแแแแฎแแ, แ แแขแแ แแงแ แกแแญแแ แ แจแแฅแแแ tgalice
? แงแแแแ แแแกแแฌแงแแแ แแแแ, แ แแแแแแช แแแแแกแชแแแก JSON-แแแก แแแแฎแแแแแแแ แแแกแฃแฎแแแแ แแ แกแแชแแแแแแ แแแฎแกแแแ แแแแจแ แแ แฃแแแ, แแแกแจแ แแแแก. แแกแแแ แแ แแก แ แแแฃแแแ แฃแแ แแแแแก แแแแแแแชแแ, แคแฃแแฅแชแแ แแแแก แแแกแแแแแแ, แ แแ "แแแแแ แแแแ" แแกแแแแกแแ "แแแแแ แแแแ" แแ แกแฎแแ NLU แฆแแ แแแแแแกแแแแก. แฉแแแ แแแแแก แแแฎแแแแแ, แแก แฃแแแ แกแแแแแ แแกแ แฃแแแ แแงแแก, แ แแแ แจแแซแแแ แฃแแแ แแแแก แแ แแขแแขแแแแแแก แแแฎแแขแแ yaml แคแแแแแแจแ แขแแฅแแแแฃแ แ แแแขแแแแแแ แแแแแแขแ แงแฃแ แแแฆแแแแก แแแ แแจแ.
แแฃ แแกแฃแ แ แฃแคแ แ แกแแ แแแแฃแแ NLU, แจแแแแซแแแแ แแแฃแ แแแ แแแ แแฅแแแแก แฃแแแ แก
แแแ, แแฎแแ แจแแแแแแแแ แแแ
แฌแงแแ แ: www.habr.com