Yandex.Cloud เช…เชจเซ‡ Python เชจเชพ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เช•เชพเชฐเซเชฏเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชเชฒเชฟเชธ เชฎเชพเชŸเซ‡ เชธเซเชŸเซ‡เชŸเชซเซเชฒ เช•เซŒเชถเชฒเซเชฏ เชฌเชจเชพเชตเชตเซเช‚

เชšเชพเชฒเซ‹ เชธเชฎเชพเชšเชพเชฐเชฅเซ€ เชถเชฐเซ‚เช†เชค เช•เชฐเซ€เช. เช—เชˆเช•เชพเชฒเซ‡ Yandex.Cloud เช เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เช•เชฎเซเชชเซเชฏเซเชŸเชฟเช‚เช— เชธเซ‡เชตเชพ เชถเชฐเซ‚ เช•เชฐเชตเชพเชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเซ€ เชนเชคเซ€ เชฏเชพเชจเซเชกเซ‡เช•เซเชท เช•เซเชฒเชพเช‰เชก เช•เชพเชฐเซเชฏเซ‹. เช†เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡: เชคเชฎเซ‡ เชซเช•เซเชค เชคเชฎเชพเชฐเซ€ เชธเซ‡เชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชก เชฒเช–เซ‹ เช›เซ‹ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชตเซ‡เชฌ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช…เชฅเชตเชพ เชšเซ‡เชŸเชฌเซ‹เชŸ), เช…เชจเซ‡ เช•เซเชฒเชพเช‰เชก เชชเซ‹เชคเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เชฌเชจเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชœเชพเชณเชตเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชคเซ‡ เชšเชพเชฒเซ‡ เช›เซ‡, เช…เชจเซ‡ เชœเซ‹ เชฒเซ‹เชก เชตเชงเซ‡ เชคเซ‹ เชคเซ‡เชจเซ€ เชจเช•เชฒ เชชเชฃ เช•เชฐเซ‡ เช›เซ‡. เชคเชฎเชพเชฐเซ‡ เชฌเชฟเชฒเช•เซเชฒ เชตเชฟเชšเชพเชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เชคเซ‡ เช–เซ‚เชฌ เช…เชจเซเช•เซ‚เชณ เช›เซ‡. เช…เชจเซ‡ เชšเซเช•เชตเชฃเซ€ เชฎเชพเชคเซเชฐ เช—เชฃเชคเชฐเซ€ เชธเชฎเชฏ เชฎเชพเชŸเซ‡ เช›เซ‡.

เชœเซ‹ เช•เซ‡, เช•เซ‡เชŸเชฒเชพเช• เชฌเชฟเชฒเช•เซเชฒ เชšเซ‚เช•เชตเชฃเซ€ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เช† เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เช›เซ‡ เชเชฒเชฟเชธเชจเซ€ เชฌเชพเชนเซเชฏ เช•เซเชถเชณเชคเชพ, เชเชŸเชฒเซ‡ เช•เซ‡, เชšเซ‡เชŸเชฌเซ‹เชŸเซเชธ เชคเซ‡เชฎเชพเช‚ เชฌเชฟเชฒเซเชŸ เช›เซ‡. เช•เซ‹เชˆเชชเชฃ เชกเซ‡เชตเชฒเชชเชฐ เช†เชตเซ€ เช•เซŒเชถเชฒเซเชฏ เชฒเช–เซ€, เชนเซ‹เชธเซเชŸ เช…เชจเซ‡ เชฐเชœเซ€เชธเซเชŸเชฐ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เช†เชœเชฅเซ€ เช•เซŒเชถเชฒเซเชฏเชจเซ‡ เชนเซ‹เชธเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชชเชฃ เชœเชฐเซ‚เชฐ เชจเชฅเซ€ - เชฎเชพเชคเซเชฐ เชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เชคเซ‡เชฎเชจเซ‹ เช•เซ‹เชก เช•เซเชฒเชพเช‰เชก เชชเชฐ เช…เชชเชฒเซ‹เชก เช•เชฐเซ‹ เชธเชฎเชพเชจ เชธเชฐเซเชตเชฐ เชตเชฟเชจเชพเชจเซเช‚ เช•เชพเชฐเซเชฏ.

เชชเชฐเช‚เชคเซ เชคเซเชฏเชพเช‚ เช•เซ‡เชŸเชฒเชพเช• เช˜เซ‹เช‚เช˜เชพเชŸ เช›เซ‡. เชธเซŒเชชเซเชฐเชฅเชฎ, เชคเชฎเชพเชฐเชพ เชชเซ€เชŸ เช•เซ‹เชกเชจเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ€ เชถเช•เซ‡ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ‡ เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เช–เซ‡เช‚เชšเชตเซเช‚ เชฌเชฟเชจ-เชคเซเชšเซเช› เช›เซ‡. เชฌเซ€เชœเซเช‚, เช•เซ‹เชˆเชชเชฃ เชธเชพเชฎเชพเชจเซเชฏ เชšเซ‡เชŸเชฌเซ‹เชŸเชจเซ‡ เชธเช‚เชตเชพเชฆเชจเซ€ เชธเซเชฅเชฟเชคเชฟ เช•เซเชฏเชพเช‚เช• เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ (เชคเซ‡เชฅเซ€ เชธเซเชŸเซ‡เชŸเชซเซเชฒ); เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชซเช‚เช•เซเชถเชจเชฎเชพเช‚ เช† เช•เชฐเชตเชพเชจเซ€ เชธเซŒเชฅเซ€ เชธเชนเซ‡เชฒเซ€ เชฐเซ€เชค เช•เชˆ เช›เซ‡? เชคเซเชฐเซ€เชœเซ‡ เชธเซเชฅเชพเชจเซ‡, เชคเชฎเซ‡ เชเชฒเชฟเชธ เชฎเชพเชŸเซ‡ เชเชกเชชเซ€ เช…เชจเซ‡ เช—เช‚เชฆเชพ เช•เซŒเชถเชฒเซเชฏ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชฅเชตเชพ เชคเซ‹ เชฌเชฟเชจ-เชถเซ‚เชจเซเชฏ เชชเซเชฒเซ‹เชŸ เชธเชพเชฅเซ‡ เช…เชฎเซเช• เชชเซเชฐเช•เชพเชฐเชจเชพ เชฌเซ‹เชŸ? เชฒเซ‡เช–, เชนเช•เซ€เช•เชคเชฎเชพเช‚, เช† เช˜เซ‹เช‚เช˜เชพเชŸ เชตเชฟเชถเซ‡ เช›เซ‡.

Yandex.Cloud เช…เชจเซ‡ Python เชจเชพ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เช•เชพเชฐเซเชฏเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชเชฒเชฟเชธ เชฎเชพเชŸเซ‡ เชธเซเชŸเซ‡เชŸเชซเซเชฒ เช•เซŒเชถเชฒเซเชฏ เชฌเชจเชพเชตเชตเซเช‚

เชจเซˆเชคเชฟเช• เชคเซˆเชฏเชพเชฐเซ€

เช…เชงเซ€เชฐเชพ เชฎเชพเชŸเซ‡: เช•เซเชฒเชพเช‰เชก เชชเชฐ เชซเช‚เช•เซเชถเชจ เช…เชชเชฒเซ‹เชก เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เชนเซเช‚ เชฎเซ‡เช•เชซเชพเชˆเชฒ เชธเชพเชฅเซ‡ เชœเชฐเซ‚เชฐเซ€ เชจเชฟเชฐเซเชญเชฐเชคเชพเช“ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซเช‚ เช›เซเช‚, เชนเซเช‚ เชฏเชพเชจเซเชกเซ‡เช•เซเชท เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœเชฎเชพเช‚ เชธเช‚เชตเชพเชฆเชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซเช‚ เช›เซเช‚ (เชคเซ‡ S3 API เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡), เช…เชจเซ‡ เชนเซเช‚ เชธเช‚เชตเชพเชฆเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเช‚ เช›เซเช‚. tgalice. เช…เช‚เชคเซ‡ เชคเซ‡ เชฌเชนเชพเชฐ เชตเชณเซ‡ เช›เซ‡ เช†เชตเชพ เชกเซ‡เชฎเซ‹ เช•เซŒเชถเชฒเซเชฏ. เชนเชตเซ‡ เช† เชฌเชงเชพเชจเซ‡ เชฅเซ‹เชกเซ€ เชตเชงเซ เชตเชฟเช—เชคเชฎเชพเช‚ เชœเซ‹เชˆเช.

เชฅเซ‹เชกเชพ เช“เช›เชพ เช…เชงเซ€เชฐเชพ เชฒเซ‹เช•เซ‹ เชฎเชพเชŸเซ‡, เชœเชŸเชฟเชฒเชคเชพ เชตเชฟเชถเซ‡ เชฎเชพเชฐเซ€ เชตเชพเชฐเซเชคเชพเชฎเชพเช‚ เชกเชพเช‡เชต เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เชนเซเช‚ เช•เช‚เชˆเช• เชธเชฐเชณ เชธเชพเชฅเซ‡ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเซเช‚ เช›เซเช‚. เชเชŸเชฒเซ‡ เช•เซ‡, เชธเชฟเช‚เช—เชฒ-เชซเชพเช‡เชฒ เช‡เช•เซ‹เชฌเซ‹เชŸ เชซเช‚เช•เซเชถเชจ เชฌเชจเชพเชตเซ‹, เชคเซ‡เชจเซ‡ เชกเชพเชฏเชฒเซ‹เช— เชกเซ‡เชตเชฒเชชเชฐ เช•เชจเซเชธเซ‹เชฒเชฎเชพเช‚ เชฐเชœเซ€เชธเซเชŸเชฐ เช•เชฐเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ‹; เชตเชฟเช—เชคเซ‹ - เชฎเชพเช‚ เชกเชพเชฏเชฒเซ‹เช—เซเชธ เชฌเซเชฒเซ‹เช— ะธ เชฎเซ‡เช˜ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ. เช…เชจเซ‡ เชชเช›เซ€ เชœ เชถเชฐเซ‚ เช•เชฐเซ‹.

เชœเซ‹ เชคเชฎเซ‡ เชคเชฐเชค เชœ เช…เชจเซเชญเชตเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹เชต เช•เซ‡ เช…เชฎเซ‡ เช…เชนเซ€เช‚ เชถเซเช‚ เชฒเชกเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช, เชคเซ‹ เชเชฒเชฟเชธเชจเซ‡ เชชเซ‚เช›เซ‹."IT เชœเชจเซเชฎเชพเช•เซเชทเชฐ" เช•เซŒเชถเชฒเซเชฏเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเซ‹' เชจเซ€เชšเซ‡เชจเชพ เชœเซ‡เชตเซ‹ เชธเช‚เชตเชพเชฆ เชฅเชตเซ‹ เชœเซ‹เชˆเช:

เชเชฒเชฟเชธ: เชนเซ‡เชฒเซ‹! เชคเชฎเซ‡ "IT เชœเชจเซเชฎเชพเช•เซเชทเชฐ" เช•เซŒเชถเชฒเซเชฏเชฎเชพเช‚ เช›เซ‹. เชคเชพเชฐเชพเช“ เชคเชฎเชจเซ‡ เชถเซเช‚ เชตเชšเชจ เช†เชชเซ‡ เช›เซ‡ เชคเซ‡ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ "เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‹" เช•เชนเซ‹.
เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ: เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‹
A: เช•เซƒเชชเชพ เช•เชฐเซ€เชจเซ‡ เชคเชฎเชพเชฐเซเช‚ เชจเชพเชฎ เชœเชฃเชพเชตเซ‹
เชฏเซ: เชตเชธเซ€เชธเซเช…เชฒเซ€
A: เชนเชตเซ‡ เชฎเชจเซ‡ เชคเชฎเชพเชฐเชพ เชœเชจเซเชฎเชจเซเช‚ เชตเชฐเซเชท เช•เชนเซ‹. เชฎเชพเชคเซเชฐ เชšเชพเชฐ เช…เช‚เช•เซ‹, เชตเชงเชพเชฐเชพเชจเซเช‚ เช•เช‚เชˆ เชจเชฅเซ€.
เชฏเซ: เชธเซ‡เช•เชจเซเชก
A: เช•เซƒเชชเชพ เช•เชฐเซ€เชจเซ‡ เชซเชฐเซ€ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹. เชคเชฎเชพเชฐเชพ เชœเชจเซเชฎเชจเซเช‚ เชตเชฐเซเชท เชฆเชพเช–เชฒ เช•เชฐเซ‹ - เชšเชพเชฐ เช…เช‚เช•เซ‹.
เชฏเซ: 2002
เชเช• เชฎเชนเชพเชจ! เชนเชตเซ‡ เชคเชฎเชพเชฐเชพ เชœเชจเซเชฎเชจเชพ เชฎเชนเชฟเชจเชพเชจเซ‡ เชจเชพเชฎ เช†เชชเซ‹.
เชฏเซ: เชซเซ‡เชฌเซเชฐเซเช†เชฐเซ€
เชเช• เชฎเชนเชพเชจ! เช›เซ‡เชฒเซเชฒเซ‡, เชฎเชจเซ‡ เชคเชฎเชพเชฐเซ€ เชœเชจเซเชฎเชคเชพเชฐเซ€เช– เชœเชฃเชพเชตเซ‹ - เชฎเชพเชคเซเชฐ เชเช• เชธเช‚เช–เซเชฏเชพ, เชฎเชพเชคเซเชฐ เชเช• เช•เซ‡ เชฌเซ‡ เช…เช‚เช•.
เชฏเซ: 18
A: เช†เชญเชพเชฐ, เชตเชพเชธเซ€เชธเซเช…เชฒเซ€! เชนเชตเซ‡ เช†เชชเชฃเซ‡ เชœเชพเชฃเซ€เช เช›เซ€เช: เชคเชฎเซ‡ 17 เชตเชฐเซเชทเชจเชพ เช›เซ‹ เช…เชจเซ‡ เชเช•เซเชตเซ‡เชฐเชฟเชฏเชธเชจเชพ เช›เซ‹. เชธเชพเชฐเซเช‚, เช…เชฒเชฌเชคเซเชค, เชคเชฎเซ‡ เชจเชธเซ€เชฌเชฆเชพเชฐ เช›เซ‹! เชคเชพเชฐเชพเช“ เชคเชฎเชจเซ‡ เช•เชนเซ‡ เช›เซ‡: ะฐ ั‡ั‚ะพ ะณะพะฒะพั€ัั‚ ะทะฒั‘ะทะดั‹, ะฒั‹ ัƒะทะฝะฐะตั‚ะต, ะทะฐะฟัƒัั‚ะธะฒ ะฝะฐะฒั‹ะบ.

เชธเชฎเชธเซเชฏเชพ เช เช›เซ‡ เช•เซ‡ เช†เชŸเชฒเซ‹ เชธเชฐเชณ เชธเช‚เชตเชพเชฆ เชœเชพเชณเชตเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซเช‚ เชจเชพเชฎ เช…เชจเซ‡ เชœเชจเซเชฎ เชคเชพเชฐเซ€เช– เชฏเชพเชฆ เชฐเชพเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช…เชจเซ‡ เชธเชฐเซเชตเชฐ เชตเชฟเชจเชพเชจเชพ เช•เชพเชฐเซเชฏ เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช‚ เช† เชฌเชฟเชจ-เชคเซเชšเซเช› เช›เซ‡. เชธเช‚เชฆเชฐเซเชญเชจเซ‡ RAM เชฎเชพเช‚ เช…เชฅเชตเชพ เชกเชฟเชธเซเช• เชชเชฐ เชซเชพเช‡เชฒ เชคเชฐเซ€เช•เซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชฌเชจเชถเซ‡ เชจเชนเซ€เช‚, เช•เชพเชฐเชฃ เช•เซ‡ Yandex.Cloud เชเช• เชœ เชธเชฎเชฏเซ‡ เช…เชจเซ‡เช• เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เชชเชฐ เชซเช‚เช•เซเชถเชจ เชšเชฒเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชตเชšเซเชšเซ‡ เชธเซเชตเชฟเชš เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชคเชฎเชพเชฐเซ‡ เช…เชฎเซเช• เชชเซเชฐเช•เชพเชฐเชจเชพ เชฌเชพเชนเซเชฏ เชธเซเชŸเซ‹เชฐเซ‡เชœเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชชเชกเชถเซ‡. เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœเชจเซ‡ เชธเซ€เชงเชพ Yandex.Cloud (เชเชŸเชฒเซ‡ โ€‹โ€‹โ€‹โ€‹เช•เซ‡, เช•เชฆเชพเชš เชเชกเชชเซ€) เชฎเชพเช‚ เชเช•เชฆเชฎ เชธเชธเซเชคเซเช‚ เช…เชจเซ‡ เชœเชŸเชฟเชฒ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชคเชฐเซ€เช•เซ‡ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. เชฎเชซเชค เชตเชฟเช•เชฒเซเชช เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชเช• เชฎเชซเชค เชญเชพเช— เชตเชพเชฆเชณเช›เชพเชฏเซเช‚ เชฎเซ‹เช‚เช—เชพ เช•เซเชฏเชพเช‚เช• เชฆเซ‚เชฐ. เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœ (เชœเซ‡ S3 เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡) เช…เชจเซ‡ เชฎเซ‹เช‚เช—เซ‹ เชฌเช‚เชจเซ‡ เชฎเชพเชŸเซ‡ เช…เชจเซเช•เซ‚เชณ เชชเชพเชฏเชฅเซ‹เชจ เชฐเซ‡เชชเชฐเซเชธ เช›เซ‡.

เชฌเซ€เชœเซ€ เชธเชฎเชธเซเชฏเชพ เช เช›เซ‡ เช•เซ‡ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœ, เชฎเซ‹เช‚เช—เซ‹เชกเซ€เชฌเซ€ เช…เชจเซ‡ เช…เชจเซเชฏ เช•เซ‹เชˆเชชเชฃ เชกเซ‡เชŸเชพเชฌเซ‡เช เช…เชฅเชตเชพ เชกเซ‡เชŸเชพ เชธเซเชŸเซ‹เชฐเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชฌเชพเชนเซเชฏ เชจเชฟเชฐเซเชญเชฐเชคเชพเช“เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡ เชคเชฎเชพเชฐเชพ เชซเช‚เช•เซเชถเชจ เช•เซ‹เชก เชธเชพเชฅเซ‡ เชฏเชพเชจเซเชกเซ‡เช•เซเชธ เชซเช‚เช•เซเชถเชจเซเชธ เชชเชฐ เช…เชชเชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชจเซ‡ เชนเซเช‚ เช† เชธเซเชตเชฟเชงเชพเชœเชจเช• เชฐเซ€เชคเซ‡ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚. เช•เชฎเชจเชธเซ€เชฌเซ‡, เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช…เชจเซเช•เซ‚เชณ เชฐเชนเซ‡เชถเซ‡ เชจเชนเซ€เช‚ (เชœเซ‡เชฎ เช•เซ‡ Heroku เชชเชฐ), เชชเชฐเช‚เชคเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ (เชซเชพเช‡เชฒ เชฌเชจเชพเชตเซ‹) เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฒเช–เซ€เชจเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชฎเซ‚เชณเชญเซ‚เชค เช†เชฐเชพเชฎ เชฌเชจเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชœเชจเซเชฎเชพเช•เซเชทเชฐ เช•เซŒเชถเชฒเซเชฏ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚

  1. เชคเซˆเชฏเชพเชฐ เช•เชฐเซ‹: Linux เชธเชพเชฅเซ‡ เช…เชฎเซเช• เชฎเชถเซ€เชจ เชชเชฐ เชœเชพเช“. เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡, เชคเชฎเซ‡ เช•เชฆเชพเชš เชตเชฟเชจเซเชกเซ‹เช เชธเชพเชฅเซ‡ เชชเชฃ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชคเซ‡ เชชเช›เซ€ เชคเชฎเชพเชฐเซ‡ เชฎเซ‡เช•เชซเชพเช‡เชฒ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพ เชธเชพเชฅเซ‡ เชฅเซ‹เชกเซ‹ เชœเชพเชฆเซ เช•เชฐเชตเซ‹ เชชเชกเชถเซ‡. เช…เชจเซ‡ เช•เซ‹เชˆเชชเชฃ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเชฎเชพเชฐเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เชชเชพเชฏเชฅเซ‹เชจ 3.6 เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡.
  2. เชคเซ‡เชจเซ‡ เช—เซ€เชฅเชฌเชฅเซ€ เช•เซเชฒเซ‹เชจ เช•เชฐเซ‹ เชœเชจเซเชฎเชพเช•เซเชทเชฐ เช•เซŒเชถเชฒเซเชฏเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ.
  3. Y.Cloud เชฎเชพเช‚ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเซ‹: https://cloud.yandex.ru
  4. เชคเชฎเชพเชฐเซ€ เชœเชพเชคเชจเซ‡ เชฌเซ‡ เชกเซ‹เชฒ เชฌเชจเชพเชตเซ‹ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœ, เชคเซ‡เชฎเชจเซ‡ เช•เซ‹เชˆเชชเชฃ เชจเชพเชฎเชฅเซ€ เชฌเซ‹เชฒเชพเชตเซ‹ {BUCKET NAME} ะธ tgalice-test-cold-storage (เช† เชฌเซ€เชœเซเช‚ เชจเชพเชฎ เชนเชตเซ‡ เชนเชพเชฐเซเชกเช•เซ‹เชกเชฎเชพเช‚ เช›เซ‡ main.py เชฎเชพเชฐเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ). เชชเซเชฐเชฅเชฎ เชกเซ‹เชฒ เชฎเชพเชคเซเชฐ เชœเชฎเชพเชตเชŸ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชฐเชนเซ‡เชถเซ‡, เชฌเซ€เชœเซ€ - เชธเช‚เชตเชพเชฆ เชธเซเชŸเซ‡เชŸเซเชธ เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡.
  5. เชฌเชจเชพเชตเชตเชพ เชธเซ‡เชตเชพ เช–เชพเชคเซเช‚, เชคเซ‡เชจเซ‡ เชญเซ‚เชฎเชฟเช•เชพ เช†เชชเซ‹ editor, เช…เชจเซ‡ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชธเซเชฅเชฟเชฐ เช“เชณเช–เชชเชคเซเชฐเซ‹ เชฎเซ‡เชณเชตเซ‹ {KEY ID} ะธ {KEY VALUE} - เช…เชฎเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชธเช‚เชตเชพเชฆเชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€เชถเซเช‚. เช† เชฌเชงเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เชœเซ‡เชฅเซ€ Ya.Cloud เชจเซเช‚ เชซเช‚เช•เซเชถเชจ Ya.Cloud เชฎเชพเช‚เชฅเซ€ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชเช•เซเชธเซ‡เชธ เช•เชฐเซ€ เชถเช•เซ‡. เช•เซ‹เชˆ เชฆเชฟเชตเชธ, เชนเซเช‚ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚, เช…เชงเชฟเช•เซƒเชคเชคเชพ เช†เชชเซ‹เช†เชช เชฌเชจเซ€ เชœเชถเซ‡, เชชเชฐเช‚เชคเซ เชนเชฎเชฃเชพเช‚ เชฎเชพเชŸเซ‡ เชคเซ‡ เชเชตเซเช‚ เช›เซ‡.
  6. (เชตเซˆเช•เชฒเซเชชเชฟเช•) เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹ เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ yc. เชคเชฎเซ‡ เชตเซ‡เชฌ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เชฆเซเชตเชพเชฐเชพ เชซเช‚เช•เซเชถเชจ เชชเชฃ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ CLI เชธเชพเชฐเซเช‚ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เชฎเชพเช‚ เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชจเชตเซ€เชจเชคเชพเช“ เชเชกเชชเชฅเซ€ เชฆเซ‡เช–เชพเชฏ เช›เซ‡.
  7. เชนเชตเซ‡ เชคเชฎเซ‡ เช–เชฐเซ‡เช–เชฐ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹: เช•เซŒเชถเชฒเซเชฏเชจเชพ เช‰เชฆเชพเชนเชฐเชฃ เชธเชพเชฅเซ‡ เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚เชฅเซ€ เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชชเชฐ เชšเชฒเชพเชตเซ‹ make all. เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชชเซเชธเซเชคเช•เชพเชฒเชฏเซ‹เชจเซ‹ เชธเชฎเซ‚เชน (เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡, เชนเช‚เชฎเซ‡เชถเชจเซ€ เชœเซ‡เชฎ, เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€) เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ dist.
  8. เช“เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœเชฎเชพเช‚ เชนเชพเชฅเชฅเซ€ เชฐเซ‡เชกเซ‹ (เชกเซ‹เชฒเชฎเชพเช‚ {BUCKET NAME}) เชชเชพเช›เชฒเชพ เชชเช—เชฒเชพเชฎเชพเช‚ เชฎเซ‡เชณเชตเซ‡เชฒ เช†เชฐเซเช•เชพเช‡เชต dist.zip. เชœเซ‹ เช‡เชšเซเช›เชฟเชค เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ เช† เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏเชฎเชพเช‚เชฅเซ€ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ AWS CLI.
  9. เชตเซ‡เชฌ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เชฆเซเชตเชพเชฐเชพ เช…เชฅเชตเชพ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชซเช‚เช•เซเชถเชจ เชฌเชจเชพเชตเซ‹ 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

เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชซเช‚เช•เซเชถเชจ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เชฌเชงเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เช เชœ เชฐเซ€เชคเซ‡ เชญเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชนเชตเซ‡ เชคเชฎเซ‡ เชฌเชจเชพเชตเซ‡เชฒ เชซเช‚เช•เซเชถเชจ เชกเซ‡เชตเชฒเชชเชฐ เช•เชจเซเชธเซ‹เชฒ เชฆเซเชตเชพเชฐเชพ เชšเช•เชพเชธเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ เช•เซŒเชถเชฒเซเชฏเชจเซ‡ เชธเซเชงเชพเชฐเซ€ เช…เชจเซ‡ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

Yandex.Cloud เช…เชจเซ‡ Python เชจเชพ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เช•เชพเชฐเซเชฏเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชเชฒเชฟเชธ เชฎเชพเชŸเซ‡ เชธเซเชŸเซ‡เชŸเชซเซเชฒ เช•เซŒเชถเชฒเซเชฏ เชฌเชจเชพเชตเชตเซเช‚

เชนเซ‚เชก เชนเซ‡เช เชณ เชถเซเช‚ เช›เซ‡

เชฎเซ‡เช•เชซเชพเชˆเชฒ เช–เชฐเซ‡เช–เชฐ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซ‡ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เช†เชฐเซเช•เชพเชˆเชตเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพ เชฎเชพเชŸเซ‡ เชเช•เชฆเชฎ เชธเชฐเชณ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชงเชฐเชพเชตเซ‡ เช›เซ‡ 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: ะŸะพะถะฐะปัƒะนัั‚ะฐ, ะฟะพะฟั€ะพะฑัƒะนั‚ะต ะตั‰ั‘ ั€ะฐะท. ะ’ะฐะผ ะฝัƒะถะฝะพ ะฝะฐะทะฒะฐั‚ัŒ ั‡ะธัะปะพ ัะฒะพะตะณะพ ั€ะพะถะดะตะฝะธั (ะฝะฐะฟั€ะธะผะตั€, ะดะฒะฐะดั†ะฐั‚ะพะต); ัั‚ะพ ะพะดะฝะฐ ะธะปะธ ะดะฒะต ั†ะธั„ั€ั‹.

เช† เชฐเซ‚เชชเชฐเซ‡เช–เชพเชจเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเชตเชพเชจเซเช‚ เช…เชจเซ‡ เช…เช‚เชคเชฟเชฎ เชชเชฐเชฟเชฃเชพเชฎเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเชตเชพเชจเซเช‚ เช•เชพเชฎ Python เชตเชฐเซเช— เชฆเซเชตเชพเชฐเชพ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡

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, เชœเซ‡ เชชเช›เซ€ เชธเชพเชฆเชพ เชŸเซ‡เช•เซเชธเซเชŸเชฎเชพเช‚ เช…เชฅเชตเชพ เชเชฒเชฟเชธ เช…เชฅเชตเชพ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชฎเชพเช‚ เชธเช‚เชฆเซ‡เชถเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ - เชฌเซ‹เชŸ เช•เซเชฏเชพเช‚ เชšเชพเชฒเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡; เชคเซ‡เชฎเชพเช‚ เชธเช‚เชตเชพเชฆเชจเซ€ เชฌเชฆเชฒเชพเชฏเซ‡เชฒเซ€ เชธเซเชฅเชฟเชคเชฟ เชชเชฃ เช›เซ‡ เชœเซ‡เชจเซ‡ เชธเชพเชšเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เช†เช–เซเช‚ เชฐเชธเซ‹เชกเซเช‚ เช…เชจเซเชฏ เชตเชฐเซเช— เชธเช‚เชญเชพเชณเซ‡ เช›เซ‡, DialogConnector, เชคเซ‡เชฅเซ€ เชฏเชพเชจเซเชกเซ‡เช•เซเชท เชซเช‚เช•เซเชถเชจเซเชธ เชชเชฐ เช•เซŒเชถเชฒเซเชฏ เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ€เชงเซ€ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เช†เชจเชพ เชœเซ‡เชตเซ€ เชฆเซ‡เช–เชพเชฏ เช›เซ‡:

...
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

เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เช†เชฎเชพเช‚เชจเซ‹ เชฎเซ‹เชŸเชพ เชญเชพเช—เชจเซ‹ เช•เซ‹เชก เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœเชจเชพ S3 เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฃ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชคเชฎเซ‡ เชตเชพเช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เช† เช•เชจเซ‡เช•เซเชถเชจเชจเซ‹ เชธเซ€เชงเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฅเชพเชฏ เช›เซ‡ tgalice เช•เซ‹เชกเชฎเชพเช‚.
เช›เซ‡เชฒเซเชฒเซ€ เชฒเซ€เชŸเซ€ เชซเช‚เช•เซเชถเชจ เชฌเชจเชพเชตเซ‡ เช›เซ‡ alice_handler โ€” เชคเซ‡ เชœ เชœเซ‡ เช…เชฎเซ‡ Yandex.Cloud เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เชธเซ‡เชŸ เช•เชฐเซ€เช เชคเซเชฏเชพเชฐเซ‡ เช–เซ‡เช‚เชšเชตเชพเชจเซเช‚ เช•เชนเซเชฏเซเช‚ เชนเชคเซเช‚ --entrypoint=main.alice_handler.

เชคเซ‡ เชฌเชงเชพ เช›เซ‡, เชตเชพเชธเซเชคเชตเชฎเชพเช‚. เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชฎเชพเชŸเซ‡ เชฎเซ‡เช•เชซเชพเชˆเชฒเซเชธ, เชธเช‚เชฆเชฐเซเชญ เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ S3 เชœเซ‡เชตเซ€ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชŸเซ‹เชฐเซ‡เชœ เช…เชจเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ tgalice. เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เช•เชพเชฐเซเชฏเซ‹ เช…เชจเซ‡ เชชเชพเชฏเชฅเซ‹เชจเชจเซ€ เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชˆเชจเซ‡, เช† เชคเช‚เชฆเซเชฐเชธเซเชค เชฎเชพเชจเชต เช•เซŒเชถเชฒเซเชฏ เชตเชฟเช•เชธเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡.

เชคเชฎเซ‡ เชชเซ‚เช›เซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เชนเชคเซเช‚ tgalice? เชฌเชงเชพ เชฌเซ‹เชฐเชฟเช‚เช— เช•เซ‹เชก เช•เซ‡ เชœเซ‡ JSON เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เชฅเซ€ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช…เชจเซ‡ เชธเซเชŸเซ‹เชฐเซ‡เชœเชฅเซ€ เชฎเซ‡เชฎเชฐเซ€ เช…เชจเซ‡ เชฌเซ‡เช•เชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชคเซ‡เชฎเชพเช‚ เชฐเชนเซ‡เชฒ เช›เซ‡. เชเช• เชจเชฟเชฏเชฎเชฟเชค เช•เซ‹เชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเชฃ เช›เซ‡, เชœเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เช•เชพเชฐเซเชฏ เช›เซ‡ เช•เซ‡ โ€œเชซเซ‡เชฌเซเชฐเซเช†เชฐเซ€โ€ โ€œเชซเซ‡เชฌเซเชฐเซเช†เชฐเซ€โ€ เชธเชฎเชพเชจ เช›เซ‡, เช…เชจเซ‡ เช—เชฐเซ€เชฌเซ‹ เชฎเชพเชŸเซ‡ เช…เชจเซเชฏ NLU. เชฎเชพเชฐเชพ เชตเชฟเชšเชพเชฐ เชฎเซเชœเชฌ, เช† เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชชเซ‚เชฐเชคเซเช‚ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช เชœเซ‡เชฅเซ€ เชคเชฎเซ‡ เชคเช•เชจเซ€เช•เซ€ เชตเชฟเช—เชคเซ‹เชฅเซ€ เช–เซ‚เชฌ เชตเชฟเชšเชฒเชฟเชค เชฅเชฏเชพ เชตเชฟเชจเชพ yaml เชซเชพเช‡เชฒเซ‹เชฎเชพเช‚ เช•เซเชถเชณเชคเชพเชจเชพ เชชเซเชฐเซ‹เชŸเซ‹เชŸเชพเช‡เชชเชจเซเช‚ เชธเซเช•เซ‡เชš เช•เชฐเซ€ เชถเช•เซ‹.

เชœเซ‹ เชคเชฎเชจเซ‡ เชตเชงเซ เช—เช‚เชญเซ€เชฐ NLU เชœเซ‹เชˆเช เช›เซ‡, เชคเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชคเชฎเชพเชฐเซ€ เช•เซเชถเชณเชคเชพ เชธเชพเชฅเซ‡ เชœเซ‹เชกเซ€ เชถเช•เซ‹ เช›เซ‹ เชฐเชพเชธเชพ เช…เชฅเชตเชพ เชฆเซ€เชชเชชเชพเชตเชฒเซ‹เชต, เชชเชฐเช‚เชคเซ เชคเซ‡เชฎเชจเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช–เช‚เชœเชฐเซ€ เชธเชพเชฅเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เชจเซƒเชคเซเชฏเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชชเชฐ. เชœเซ‹ เชคเชฎเชจเซ‡ เช•เซ‹เชกเชฟเช‚เช— เช•เชฐเชตเชพเชจเซเช‚ เชฌเชฟเชฒเช•เซเชฒ เชจ เชฒเชพเช—เซ‡, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชตเชฟเชเซเชฏเซเช…เชฒ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช เชเชฎเชพเชฏเชฒเซ‹เชœเชฟเช•. tgalice เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เชฎเซ‡เช‚ เช…เชฎเซเช• เชชเซเชฐเช•เชพเชฐเชจเชพ เชฎเชงเซเชฏเชตเชฐเซเชคเซ€ เชฎเชพเชฐเซเช— เชตเชฟเชถเซ‡ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚. เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เช†เชฎเชพเช‚เชฅเซ€ เชถเซเช‚ เช†เชตเซ‡ เช›เซ‡.

เชธเชพเชฐเซเช‚, เชนเชตเซ‡ เชœเซ‹เชกเชพเช“ เชเชฒเชฟเชธ เชธเซเช•เชฟเชฒ เชกเซ‡เชตเชฒเชชเชฐ เชšเซ‡เชŸ, เชตเชพเช‚เชšเชตเซเช‚ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ, เช…เชจเซ‡ เช…เชฆเซเชญเซเชค เชฌเชจเชพเชตเซ‹ เช•เซเชถเชณเชคเชพ!

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹