Crear un bot de Python Telegram e implementarlo en una máquina virtual

¿Quién necesita chatbots?

El mercado de los chatbots en Rusia está creciendo a un ritmo vertiginoso y se espera que crezca un 30% anual durante los próximos tres años. En 2020, la cantidad de solicitudes de chatbots aumentó en un 17% en comparación con 2019. Los bots de voz tienen una gran demanda, la cantidad de solicitudes para ellos se ha cuadriplicado. En 2021, se espera que el número de solicitudes de chat bots crezca entre un 15% y un 20% por parte de organizaciones del sector público, educación, medicina, logística, retail y comercio electrónico, empresas industriales y mineras.





Pasos

  1. Creamos nuestro bot de telegramas





  2. Escribimos el código para nuestras tareas y probamos su rendimiento.





  3. Elegir un servicio de máquina virtual confiable





  4. Transferimos nuestro bot a una máquina virtual para su posterior trabajo.





  5. Configuramos el funcionamiento continuo del bot.





Paso 1. Creando un bot en Telegram

Describiré los tres primeros pasos de la forma más breve posible, ya que hay muchos artículos sobre este tema y normalmente esto no supone ninguna dificultad para los usuarios. Para crear un bot, necesitamos escribir BotFather





Paso 2. Escribamos un chatbot simple y probémoslo.

Para el trabajo, usaremos la biblioteca de telebot, que se puede instalar usando el siguiente comando:





$ pip install pytelegrambotapi







Para instalar otras bibliotecas, si no está limitado a la funcionalidad básica, Dios lo ayudará.





Escribamos un bot simple que nos enviará en respuesta a varios Emoji sus copias PNG borrosas:





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
      
      



Nuestro bot está listo, ahora queda probarlo. Siga el enlace enviado por 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» ( )





PD: El tema de los telegramas bot se ha vuelto muy interesante y relevante últimamente, así que me alegrará escuchar críticas sensatas sobre mi primer artículo en este momento. Si tiene alguna idea para escribir otras nuevas, me complacerá escucharlas.





Quiero dar un ejemplo de mi trabajo conjunto con un amigo para hacer un bot que pueda hacer firmas electrónicas en 2 segundos: Telegram: Contact @Facsimile_bot








All Articles