Skip to content

dzhechko/yagpt-tg-bot-serverless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Dmitry Zhechkov
Jan 27, 2024
81f3826 Β· Jan 27, 2024

History

4 Commits
Jan 27, 2024
Jan 27, 2024
Jan 27, 2024

Repository files navigation

ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ информация

Telegram-Π±ΠΎΡ‚ Π½Π° serverless-стСкС Yandex Cloud, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ YandexGPT ΠΏΡ€ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π΅ Π½Π° вопросы ΠΏΡ€ΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ python-telegram-bot Π½Π° Python. Данная вСрсия Π±ΠΎΡ‚Π° Π½Π΅ ΠΏΠΎΠΌΠ½ΠΈΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ сообщСния, поэтому Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ проводится Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ вопроса.

Навыки Telegram-Π±ΠΎΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎ своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ.

Π’ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ рСсурсов для прилоТСния входят:

  • ΠŸΠ»Π°Ρ‚Π° Π·Π° количСство Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ для выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ исходящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (см. Ρ‚Π°Ρ€ΠΈΡ„Ρ‹ Yandex Cloud Functions).
  • ΠŸΠ»Π°Ρ‚Π° Π·Π° количСство запросов ΠΊ API-ΡˆΠ»ΡŽΠ·Ρƒ ΠΈ исходящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (см. Ρ‚Π°Ρ€ΠΈΡ„Ρ‹ Yandex API Gateway).
  • ΠŸΠ»Π°Ρ‚Π° Π·Π° количСство запросов ΠΊ стандартной ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ (см. Ρ‚Π°Ρ€ΠΈΡ„Ρ‹ Yandex Message Queue).
  • ΠŸΠ»Π°Ρ‚Π° Π·Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ запрос сСкрСтов (см. Ρ‚Π°Ρ€ΠΈΡ„Ρ‹ Yandex Lockbox).

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ

  1. ЗарСгистрируйтС вашСго Π±ΠΎΡ‚Π° Π² Telegram ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½:

1.1. ЗапуститС Π±ΠΎΡ‚Π° BotFather ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π΅ΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ /newbot 1.2. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ имя вашСго Π±ΠΎΡ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Serverless Echo Telegram Bot. Π­Ρ‚ΠΎ имя Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ с Π±ΠΎΡ‚ΠΎΠΌ. 1.3. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ вашСго Π±ΠΎΡ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ServerlessHelloTelegramBot. По ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Π±ΠΎΡ‚Π° Π² Telegram. Имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° ...Bot ΠΈΠ»ΠΈ ..._bot. На экранС появится Ρ‚ΠΎΠΊΠ΅Π½ Telegram-Π±ΠΎΡ‚Π°.

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ сСкрСты Yandex Lockbox. НуТСн сСкрСт для Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌΠΌ-Π±ΠΎΡ‚Π° ΠΈ сСкрСт для YandexGPT. Π’ ΠΏΠΎΠ»Π΅ ΠšΠ»ΡŽΡ‡ сСкрСта для Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌΠΌ-Π±ΠΎΡ‚Π° ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ TG_TOKEN, Π² ΠΏΠΎΠ»Π΅ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½ Telegram-Π±ΠΎΡ‚Π°. Π’ сСкрСтС для YandexGPT Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ завСсти Π΄Π²Π° ΠšΠ»ΡŽΡ‡Π° ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΡ… значСния: YAGPT_FOLDER_ID ΠΈ YAGPT_API_KEY.

  2. Π’ консоли управлСния Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

  3. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ сСрвис Cloud Apps.

  4. На ΠΏΠ°Π½Π΅Π»ΠΈ слСва Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Магазин ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

  5. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Demo Telegram Bot ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

  6. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅:

  • Имя прилоТСния.
  • (ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ) ОписаниС прилоТСния.
  • БСрвисный Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ с Ρ€ΠΎΠ»ΡŒΡŽ admin Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈΠ»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ АвтоматичСски, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ΠΉ сСрвисный Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ создался ΠΏΡ€ΠΈ установкС прилоТСния. ΠžΡ‚ ΠΈΠΌΠ΅Π½ΠΈ этого сСрвисного Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ рСсурсы прилоТСния.
  • Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСкрСта Yandex Lockbox, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создали Ρ€Π°Π½Π΅Π΅.
  1. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅ΡΡŒ, ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ установится.

  2. На страницС ΠžΠ±Π·ΠΎΡ€, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ РСсурсы прилоТСния, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ API-шлюз, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π΅Π³ΠΎ страницу ΠΈ скопируйтС ссылку Π½Π° слуТСбный Π΄ΠΎΠΌΠ΅Π½.

  3. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ связь ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ Telegram-Π±ΠΎΡ‚ΠΎΠΌ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ запрос. ВмСсто <Ρ‚ΠΎΠΊΠ΅Π½ Π±ΠΎΡ‚Π°> ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½ Telegram-Π±ΠΎΡ‚Π°, вмСсто <Π΄ΠΎΠΌΠ΅Π½ API-шлюза> β€” ссылку Π½Π° слуТСбный Π΄ΠΎΠΌΠ΅Π½ API-шлюза.

  • Для Linux/macOS
curl \
  --request POST \
  --url https://api.telegram.org/bot<Ρ‚ΠΎΠΊΠ΅Π½ Π±ΠΎΡ‚Π°>/setWebhook?url=https://<Π”ΠΎΠΌΠ΅Π½ API-шлюза>/echo
  • Для Windows (cmd)
curl ^
  --request POST ^
  --url "https://api.telegram.org/bot<Ρ‚ΠΎΠΊΠ΅Π½ Π±ΠΎΡ‚Π°>/setWebhook?url=https://<Π”ΠΎΠΌΠ΅Π½ API-шлюза>/echo"
  • Для Windows (Powershell)
curl.exe `
  --request POST `
  --url https://api.telegram.org/bot<Ρ‚ΠΎΠΊΠ΅Π½ Π±ΠΎΡ‚Π°>/setWebhook?url=https://<Π”ΠΎΠΌΠ΅Π½ API-шлюза>/echo

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

{"ok":true,"result":true,"description":"Webhook was set"}

  1. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π±ΠΎΡ‚Ρƒ Π² Telegram.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

ДокумСнтация Yandex Cloud Functions ДокумСнтация Yandex API Gateway ДокумСнтация Yandex Message Queue ДокумСнтация Yandex Lockbox ВСхничСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π‘Π»ΡƒΠΆΠ±Π° тСхничСской ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Yandex Cloud ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° запросы 24 часа Π² сутки, 7 Π΄Π½Π΅ΠΉ Π² нСдСлю. ДоступныС Π²ΠΈΠ΄Ρ‹ запросов ΠΈ срок ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ зависят ΠΎΡ‚ Ρ‚Π°Ρ€ΠΈΡ„Π½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π² консоли управлСния. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ порядкС оказания тСхничСской ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

РСсурсы прилоТСния

Π’ΠΈΠΏ рСсурса ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ БСрвисныС Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹ 4 БтатичСский ΠΊΠ»ΡŽΡ‡ доступа 1 ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° 7 Message Queue 1 БСссСрвСрная функция 1 Π’Ρ€ΠΈΠ³Π³Π΅Ρ€ 1 API-шлюз 1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages