
今日、思いついたのは、「AIを使ってTelegramチャットボットを作成し、それをトレーニングできるのはなぜですか?」
これが非常に簡単になったので、考え直すことなくコードを書き始めました。
言語としてPythonを選んだのは、 この種のアプリケーションを使用するのが最も簡単です。
したがって、AIでTelegramチャットボットを作成するには、次のものが必要です。
1. Telegram API。 ラッパーとして、実績のある
python-telegram-botライブラリを取りました
2. AI API。 Googleの製品、つまり
Dialogflowを選択しました。 非常に優れた無料のAPIを提供します。
Dialogflow Wrapper for Pythonステップ1. Telegramでボットを作成する
ボットの名前を
考え出し、@botfatherを作成し
ます 。 ボットを作成した後、どこかに保存したいAPIトークンを受け取ります。 将来的には必要になります。

ステップ2.ボットの基礎を作成する
Botフォルダーを作成し、その中にbot.pyファイルを作成します。 ボットのコードは次のとおりです。
コンソールを開き、ファイルがあるディレクトリに移動して、
python-telegram-botをインストールします。
pip install python-telegram-bot --upgrade
インストール後、「フレームワーク」をすでに作成できます。これは、今のところ、同じタイプのメッセージで単純に応答します。 必要なモジュールをインポートし、APIトークンを処方します。
次に、2つのコマンドハンドラを記述します。 これらは、更新の受信時に呼び出されるコールバック関数です。
/ startコマンドと通常のテキストメッセージに対して、このような関数を2つ作成します。 引数として、2つのパラメーター
botと
updateがそこに渡されます。
ボットにはAPIとの対話に必要なメソッドが含まれ、
更新には到着したメッセージに関するデータが含まれます。
現在、これらのハンドラーを通知に割り当て、更新の検索を開始するだけです。
これは非常に簡単に行われます:
合計、完全なスクリプトベースは次のようになります。
これで、新しいボットのパフォーマンスを確認できます。 2行目にAPIトークンを挿入し、変更を保存し、コンソールに転送してボットを起動します。
python bot.py
開始後、私たちは彼に手紙を書きます。 すべてが正しく構成されている場合、次のように表示されます。

ボットのベースが作成されました。次のステップに進んでください!
Psはボットをオフにすることを忘れないでください。コンソールに戻ってCtrl + Cを押し、数秒待ってください。ボットは正常に作業を完了します。
ステップ3. AIを構成する
まず、Dialogflowにアクセスして登録します(Googleアカウントを使用してログインするだけです)。 承認後すぐに、コントロールパネルにアクセスします。

[
エージェントの
作成 ]ボタンをクリックして、自由裁量でフィールドに入力します(これは何の役割も果たしません。これは次のアクションにのみ必要です)。

[
作成]をクリックすると、次の図が表示され
ます 。

先ほど作成したエージェントが何の役割も果たさないのかを説明します。 [イン
テント ]タブには、ボットが機能する「コマンド」があります。 現在、彼は「Hello」などのフレーズにのみ応答でき、理解できない場合は「私はあなたを理解できませんでした」と答えます。 あまり印象的ではありません。
空のエージェントを作成した後、他のタブがたくさんありました。
Prebuilt Agents (これらは多くのチームを持つ特別に訓練さ
れたエージェント)をクリックし、リスト全体から
Small Talkを選択する必要があります。

それをポイントし、
インポートをクリックします。 さらに、何も変更せずに[
OK ]をクリックします。 エージェントがインポートされ、構成できるようになりました。 これを行うには、左上隅にある
Small-Talkの近くにある歯車をクリックして、設定ページに移動します。 これで、必要に応じてエージェントの名前を変更できます(そのままにします)。 タイムゾーンを変更し、[
言語 ]タブでロシア語がインストールされていることを確認します(インストールされていない場合は設定します)。


[
全般 ]タブに戻り、少し下に移動して、
クライアントアクセストークンをコピーし
ます。
これでAIは完全に構成され、ボットに戻ることができます。
ステップ4.すべてをまとめる
AIの準備が整い、ボットのベースの準備が整いました。次は何ですか? 次に、Python用のDialogflowからラッパーAPIをダウンロードする必要があります。
pip install apiai
インストール済みですか? ボットに戻ります。
apiaiおよび
jsonモジュールのインポートをセクション「設定」に
追加します(将来、dialogflowからjsonの回答を解析する必要があります)。 これは次のようになります。
textMessage関数(テキストメッセージの受信を担当)に移動し、受信したメッセージをDialogflowサーバーに送信します。
Dialogflowメッセージ送信コード def textMessage(bot, update): request = apiai.ApiAI(' API ').text_request()
このコードはDialogflowにリクエストを送信しますが、レスポンスも抽出する必要があります。 数行追加するので、
textMessageは次のようになります。
全文メッセージ機能コード def textMessage(bot, update): request = apiai.ApiAI(' API ').text_request()
少し説明。 を使用して
request.getresponse().read()
サーバーからの応答はバイト単位でエンコードされます。 デコードするには、メソッドを使用します
decode('utf-8')
その後、すべてを「ラップ」します
json.loads()
JSON応答を解析します。
回答がない場合(より正確には、jsonは常に到着しますが、アレイ自体に常にAI応答があるわけではありません)、これはSmall-Talkがユーザーを理解しなかったことを意味します(後でトレーニングを行うことができます)。 したがって、「答え」がない場合、ユーザーに「私はあなたをよく理解していません!」と書き込みます。
合計すると、完全なAIボットコードは次のようになります。
変更を保存し、ボットを起動して確認します:

以上です! AIを使用した30行のボットが記述されています!
ステップ5.最終パート
AIを使用したボットの作成は10分で完了すると確信していると思います。 教えることと教えることは今だけです。 ちなみに、これは[
トレーニング ]タブで実行できます。 そこには、書き込まれたすべてのメッセージと、ボットがそれらに応答した(または応答しなかった)メッセージが表示されます。 そこで、彼は訓練を受けることができ、ボットに彼が正しく答えた場所とそうでない場所を伝えます。

この記事がお役に立てば幸いです。学習の幸運を祈ります!