Membuat bot Python Telegram dan menerapkannya ke mesin virtual

Siapa yang butuh chatbot?

Pasar chatbot di Rusia tumbuh dengan sangat cepat dan diperkirakan akan tumbuh sebesar 30% setiap tahun selama tiga tahun ke depan. Pada tahun 2020, jumlah permintaan untuk chatbot meningkat 17% dibandingkan tahun 2019. Bot suara sangat diminati, jumlah permintaan untuk mereka meningkat empat kali lipat. Pada tahun 2021, jumlah permintaan chat bots diharapkan tumbuh 15-20% dari organisasi dari sektor publik, pendidikan, kedokteran, logistik, retail dan e-commerce, industri dan perusahaan pertambangan.





Langkah

  1. Kami membuat bot telegram kami





  2. Kami menulis kode untuk tugas kami dan menguji kinerjanya





  3. Memilih layanan mesin virtual yang andal





  4. Kami mentransfer bot kami ke mesin virtual untuk pekerjaan selanjutnya.





  5. Kami menyiapkan operasi bot yang berkelanjutan.





Langkah 1. Membuat bot di Telegram

Saya akan menjelaskan tiga langkah pertama sesingkat mungkin, karena ada banyak artikel tentang topik ini dan biasanya hal ini tidak menimbulkan kesulitan bagi pengguna. Untuk membuat bot, kita perlu menulis BotFather





Langkah 2. Mari kita menulis chatbot sederhana dan mengujinya.

Untuk pekerjaan, kami akan menggunakan perpustakaan telebot, yang dapat diinstal menggunakan perintah berikut:





$ pip install pytelegrambotapi







Untuk menginstal perpustakaan lain, jika Anda tidak terbatas pada fungsionalitas dasar, Tuhan akan membantu Anda.





Mari kita tulis bot sederhana yang akan mengirimkan kepada kita sebagai tanggapan terhadap berbagai Emoji salinan PNG buram mereka:





import telebot
import PIL
from PIL import Image
from requests import get

#   
bot = telebot.TeleBot('1653707062:AAHxX29RP5HY-nVb21SSD8ZRbKpxKseSyS4')

@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, '  Emoji,    .)
                     
@bot.message_handler(content_types=['text'])
def send_text(message):
    if message.text.lower() == '  ':
        img = open('   1.png', 'rb')
        
        bot.send_document(message.chat.id, img) 
    elif message.text.lower() == '  ':
        img = open('   2.png', 'rb')
        bot.send_document(message.chat.id, img)    
   
    else:
        bot.send_message(message.chat.id, ',       Emoji')

bot.polling()
#    ,      habr
      
      



Bot kita sudah siap, sekarang tinggal mengujinya. Ikuti tautan yang dikirim oleh BotFather





, . : , . - .





3. !

?

( ) — , (, , ). . , , , .





24 7





?

. , . , , .





:





  • Mail cloud solutions - 3000 . . ( )





  • Yandex.Cloud - 2000 . .





  • Google Cloud Platform - 300$ .





, .





.

, - .





.

SSH. , ssh-.





:





$ ssh-keygen







Enter. . public-key .pub. « »





.





:





ssh -i ~/.ssh/ ubuntu@ IP







: ssh -i ~/.ssh/my_key ubuntu@22.222.222.222







:





, , .





  • Python. :





$ sudo apt update
$ sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
$ wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
$ tar -xf Python-3.8.5.tgz
$ cd Python-3.8.5
$ ./configure --enable-optimizations
$ make  # ~15 
$ sudo make altinstall
$ cd /home

      
      



  • :





    $ python3.8 -m pip install --upgrade pip 
    $ pip install virtualenv
    $ mkdir 
    $ cd 
    $ virtualenv venv
    $ source venv/bin/activate
    $ python -V
    $ deactivate
    
          
          



  • Redis-server:





    $ sudo apt install redis-server
    $ redis-cli
    
          
          



, Redis-server, «ping»





PONG, , !





  • . CyberDuck





SFTP, IP , !! ssh-, .





  • , Python, . . .





  • , , .





    $ cd /home//  #    
    $ source venv/bin/activate  #  
    $ pip install -r requirements.txt  #  
    $ python main.py  #  
    
          
          



, , deactivate. . .





5. .

: nano /lib/systemd/system/.service







[Unit]
Description=  
After=network.target

[Service]
EnvironmentFile=/etc/environment
ExecStart=/home//venv/bin/python main.py
ExecReload=/home//venv/bin/python main.py
WorkingDirectory=/home//
KillMode=process
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

      
      



CTRL+O -> Enter -> CTRL+X . .





  • : , .





    sudo systemctl enable 
    sudo systemctl start 
    
          
          



! 24/7, , . - , , . , «sudo» ( )





PS Topik telegram bot menjadi sangat menarik dan relevan belakangan ini, jadi saya akan senang mendengar kritik yang waras tentang artikel pertama saya saat ini. Jika Anda memiliki ide untuk menulis yang baru, saya akan senang mendengarnya.





Saya ingin memberikan contoh kerja sama saya dengan seorang teman dalam membuat bot yang dapat membuat tanda tangan elektronik dalam waktu 2 detik: Telegram: Kontak @Facsimile_bot








All Articles