PythonTelegramボットを作成して仮想マシンにデプロイする

チャットボットが必要なのは誰ですか?

ロシアのチャットボット市場は急成長を遂げており、今後3年間で毎年30%の成長が見込まれています。2020年には、チャットボットのリクエスト数は2019年と比較して17%増加しました。音声ボットの需要は非常に高く、リクエスト数は4倍になりました。2021年には、チャットボットのリクエスト数は、公共部門、教育、医療、ロジスティクス、小売および電子商取引、産業および鉱業会社の組織から15〜20%増加すると予想されています。





ステップ

  1. 電報ボットを作成します





  2. タスクのコードを記述し、そのパフォーマンスをテストします





  3. 信頼性の高い仮想マシンサービスの選択





  4. ボットを仮想マシンに転送して、さらに作業を進めます。





  5. ボットの継続的な運用を設定しました。





ステップ1.Telegramでボットを作成する

このトピックに関する記事はたくさんあり、通常これはユーザーに問題を引き起こさないため、最初の3つのステップをできるだけ簡単に説明します。ボットを作成するには、BotFatherを作成する必要があります





ステップ2.簡単なチャットボットを作成してテストしてみましょう。

作業には、次のコマンドを使用してインストールできるテレボットライブラリを使用します。





$ pip install pytelegrambotapi







他のライブラリをインストールするには、基本的な機能に制限されていない場合、神があなたを助けてくれます。





さまざまな絵文字に応答してぼやけたPNGコピーを送信する簡単なボットを作成しましょう。





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
      
      



私たちのボットは準備ができています、今それをテストするために残っています。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ボット電報のトピックは最近非常に興味深く関連性のあるものになっているので、現時点で私の最初の記事についての正気の批判を聞いてうれしいです。新しいものを書くためのアイデアがあれば、私はそれを聞いてうれしいです。





2秒以内に電子署名を作成できるボットを作成するための友人との共同作業の例を示したいと思います。電報:@Facsimile_botに連絡してください








All Articles