Erstellen eines Python-Telegramm-Bots und Bereitstellen auf einer virtuellen Maschine

Wer braucht Chatbots?

Der Chatbot-Markt in Russland wächst rasant und wird in den nächsten drei Jahren voraussichtlich jährlich um 30% wachsen. Im Jahr 2020 stieg die Anzahl der Anfragen nach Chatbots im Vergleich zu 2019 um 17%. Voice Bots sind sehr gefragt, die Anzahl der Anfragen nach ihnen hat sich vervierfacht. Im Jahr 2021 wird die Zahl der Anfragen nach Chat-Bots von Organisationen aus den Bereichen öffentlicher Sektor, Bildung, Medizin, Logistik, Einzelhandel und E-Commerce, Industrie und Bergbau voraussichtlich um 15 bis 20% steigen.





Schritte

  1. Wir erstellen unseren Telegrammbot





  2. Wir schreiben den Code für unsere Aufgaben und testen seine Leistung





  3. Auswahl eines zuverlässigen Dienstes für virtuelle Maschinen





  4. Wir übertragen unseren Bot zur weiteren Arbeit auf eine virtuelle Maschine.





  5. Wir haben den Dauerbetrieb des Bots eingerichtet.





Schritt 1. Erstellen eines Bots in Telegram

Ich werde die ersten drei Schritte so kurz wie möglich beschreiben, da es viele Artikel zu diesem Thema gibt und dies normalerweise keine Schwierigkeiten für die Benutzer verursacht. Um einen Bot zu erstellen, müssen wir BotFather schreiben





Schritt 2. Schreiben wir einen einfachen Chatbot und testen ihn.

Für die Arbeit verwenden wir die Telebot-Bibliothek, die mit dem folgenden Befehl installiert werden kann:





$ pip install pytelegrambotapi







Um andere Bibliotheken zu installieren, wird Gott Ihnen helfen, wenn Sie nicht auf die Grundfunktionen beschränkt sind.





Schreiben wir einen einfachen Bot, der uns als Antwort auf verschiedene Emoji ihre verschwommenen PNG-Kopien sendet:





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
      
      



Unser Bot ist bereit, jetzt muss er es noch testen. Folgen Sie dem von BotFather gesendeten Link





, . : , . - .





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 Das Thema Bot-Telegramme ist in letzter Zeit sehr interessant und relevant geworden, daher freue ich mich über vernünftige Kritik an meinem ersten Artikel in diesem Moment. Wenn Sie Ideen haben, neue zu schreiben, würde ich mich freuen, sie zu hören.





Ich möchte ein Beispiel für meine gemeinsame Arbeit mit einem Freund geben, um einen Bot zu erstellen, der innerhalb von 2 Sekunden elektronische Signaturen erstellen kann: Telegramm: Wenden Sie sich an @Facsimile_bot








All Articles