Bot Framework SDK を使用してボットを作成する
[アーティクル]
08/05/2022
3 人の共同作成者
この記事の内容
適用対象: SDK v4
このクイックスタートでは、Bot Framework SDK for C#、Java、JavaScript、Python を使用して最初のボットを構築する方法と、Bot Framework Emulatorを使用してボットをテストする方法について説明します。
最初のボットを作成するには、Azure サブスクリプションや Azure Bot Service リソースは必要ありません。 このクイック スタートでは、最初のボットをローカルに作成することに重点を置いています。 Azure でボットを作成する方法については、「Azure Bot リソースの作成 」を参照してください。
前提条件
テンプレート
ボット テンプレートを Visual Studio に追加するには、 Bot Framework v4 SDK Templates for Visual Studio VSIX ファイルをダウンロードしてインストールします。
注意
VSIX パッケージには、C# テンプレートの .NET Core 2.1 バージョンと .NET Core 3.1 バージョンの両方が含まれています。
Visual Studio 2019 以降で新しいボットを作成する場合は、.NET Core 3.1 テンプレートを使用する必要があります。
現在のボット サンプルでは .NET Core 3.1 テンプレートを使用しています。
.NET Core 2.1 テンプレートを使用するサンプルは、BotBuilder-Samples リポジトリの 4.7-archive ブランチにあります。
Visual Studio にテンプレートをインストールするには、上部のメニュー バーの [拡張機能 >の管理] に移動します。 次に、 Bot Framework v4 SDK for Visual Studio を 検索してインストールします。
.NET Core 3.1 ボットを Azure にデプロイする方法については、Azure に ボットをデプロイする方法を参照してください 。
.NET Core テンプレートは、Bot Framework v4 を使用して新しい会話型 AI ボットをすばやく構築するのに役立ちます。
2020 年 5 月の時点で、これらのテンプレートと生成されるコードには .NET Core 3.1 が必要です。
Bot Framework テンプレートをインストールするには、次の手順を実行します。
コンソール ウィンドウを開きます。
.NET Core SDK ダウンロード バージョン 3.1 以降をダウンロードしてインストールします。
このコマンドを使用して、インストールされている .NET Core コマンド ライン インターフェイスのバージョンを決定できます。
dotnet --version
3 つの Bot Framework C# テンプレート (エコー、コア、空のボット テンプレート) をインストールします。
dotnet new -i Microsoft.Bot.Framework.CSharp.EchoBot
dotnet new -i Microsoft.Bot.Framework.CSharp.CoreBot
dotnet new -i Microsoft.Bot.Framework.CSharp.EmptyBot
テンプレートが正しくインストールされていることを確認します。
dotnet new --list
注意
上記の手順では、3 つの Bot Framework テンプレートをすべてインストールします。 すべてのテンプレートをインストールする必要がなく、使用するものだけをインストールできます。 この記事では、 エコー ボット テンプレートを使用します。
テンプレート
Yeoman ジェネレーターを使用して、 Bot Framework v4 のコア AI 機能を使用して会話型 AI ボットをすばやく設定します。 詳細については、「 yeoman.io 」を参照してください。
ジェネレーターでは、次に示すように 3 つの異なるテンプレート オプションがサポートされています。
テンプレート
説明
エコー ボット
"Hello World!"よりも少し多くが必要な場合は、良いテンプレートですが、それほど多くはありません。 このテンプレートは、ボットにメッセージを送信し、ボットがメッセージをユーザーに繰り返して処理することの基本を処理します。 このテンプレートは、ユーザーがボットに対して言ったことをユーザーに"エコー" するだけのボットを生成します。
空のボット
Bot Framework v4 に精通していて、基本的なスケルトン プロジェクトが必要な場合は、適切なテンプレートです。 また、ドキュメントからサンプル コードを取得し、学習するために最小限のボットに貼り付ける場合にも適したオプションです。
コア ボット
高度なボットを作成する場合は、マルチターン ダイアログと AI ベースのコグニティブ サービスである LUIS を使用して言語理解を実装する場合に適したテンプレートです。 このテンプレートは、フライトを予約する場所と日付を抽出できるボットを作成します。
Yeoman のインストール
バージョン 12.10 以降 node.js インストールしていることを確認します。
最新 の npm を インストールします。
npm install -g npm
Yeoman をインストールします 。 必ずグローバルにインストールしてください。
npm install -g yo
generator-botbuilder-java をインストールします 。 必ずグローバルにインストールしてください。
npm install -g generator-botbuilder-java
Yeoman と generator-botbuilder-java が正しくインストールされていることを確認します。
yo botbuilder-java --help
テンプレート
Bot Framework v4 用 Yeoman および Yeoman ジェネレーターをインストールするには、次の手順を実行します。
ターミナルまたは管理者特権でのコマンド プロンプトを開きます。
JavaScript ボットのディレクトリに切り替えます。 まだない場合は最初に作成します。
mkdir myJsBots
cd myJsBots
npm と Yeoman の最新バージョンがあることを確認します。
npm install -g npm
npm install -g yo
Yeoman ジェネレーターをインストールします。
Yeoman は、アプリケーションを作成するためのツールです。 詳細については、「 yeoman.io 」を参照してください。
npm install -g generator-botbuilder
注意
下記の Windows ビルド ツールのインストールは、開発用オペレーティング システムとして Windows を使用している場合にのみ必要となります。
一部のインストールの場合、restify のインストール 手順では、次に関連する node-gypエラーが発生します。
該当する場合は、管理者特権のアクセス許可を使用してこのコマンドを実行してみてください。
Python がシステムに既にインストールされている場合、この呼び出しは終了せずにハングする可能性もあります。
このコマンドは、Windows を使用している場合にのみ実行します。
npm install -g windows-build-tools
仮想環境を作成して有効にする
仮想環境は、グローバル設定とは異なる特定の Python インタープリターとライブラリの組み合わせです。 仮想環境はプロジェクトに固有であり、プロジェクト フォルダーに保持されます。 仮想環境を使用する利点は、時間の経過とともにプロジェクトを開発するときに、仮想環境に常にプロジェクトの正確な依存関係が反映される点です。 仮想環境の詳細については、仮想 環境の作成に 関するページを参照してください。
ボットを作成するディレクトリに移動します。 次に、お好みのプラットフォームに対して次のコマンドを実行します。 仮想環境をアクティブ化した後、コマンド ライン/ターミナルの前に (venv). これにより、仮想環境がアクティブであることを確認できます。 仮想環境はいつでも次のように入力 deactivateして非アクティブ化できます。
macOS/Linux
python3 -m venv venv
source venv/bin/activate
Windows
python -m venv venv
venv\Scripts\activate.bat
テンプレート
次 pip install のコマンドを実行して、必要なパッケージをインストールします。
pip install botbuilder-core
pip install asyncio
pip install aiohttp
pip install cookiecutter==1.7.0
重要
32 ビット バージョンの Python を使用している場合は、必ず実行 pip install cryptography==2.8してください。
ボットの作成
Visual Studio で、Echo Bot (Bot Framework v4 - .NET Core 3.1) テンプレートを使用して、新しいボット プロジェクトを作成します。 ボット テンプレートのみを表示するには、プロジェクトの種類から AI ボット を選択します。
.NET Core 3.1 がインストールされていることを確認します。
Visual Studio Code で、新しいターミナル ウィンドウを開きます。
ボット プロジェクトを作成するディレクトリに移動します。
次のコマンドを使用して、新しいエコー ボット プロジェクトを作成します。 ボット プロジェクトに使用する名前に置き換えます <your-bot-name> 。
dotnet new echobot -n <your-bot-name>
新しいターミナル ウィンドウを開きます。
ボット プロジェクトを作成するディレクトリに移動します。
次のコマンドを使用して、新しいエコー ボット プロジェクトを作成します。 ボット プロジェクトに使用する名前に置き換えます <your-bot-name> 。
dotnet new echobot -n <your-bot-name>
テンプレートのおかげで、このクイックスタートでボットを作成するために必要なすべてのコードがプロジェクトに含まれています。 ボットをテストするためにこれ以上コードは必要ありません。
ヒント
コア ボットを作成する場合:
ソリューション ディレクトリのみがボット名を受け取ります。
LUIS 言語モデルが必要です。 言語モデルは 、luis.ai で作成できます。 モデルの作成後、構成ファイルを更新します。
次のコマンドを実行して、テンプレートからエコー ボットを作成します。 このコマンドでは、パラメーターに既定のオプションが使用されます。
yo botbuilder-java -T "echo"
Yeoman により、作成するボットに関する情報の入力が求められます。 このチュートリアルでは、既定値を使います。
? What's the name of your bot? (echo)
? What's the fully qualified package name of your bot? (com.mycompany.echo)
? Which template would you like to start with? (Use arrow keys) Select "Echo Bot"
? Looking good. Shall I go ahead and create your new bot? (Y/n) Enter "y"
ジェネレーターは、ジェネレーターの既定のオプションを変更したり、プロンプトを事前にシードしたりするために使用できるコマンド ライン オプションを多数サポートしています。 オプションでは大文字と小文字が区別されます。
コマンドライン オプション
説明
--help, -h
サポートされているすべてのコマンド ライン オプションのヘルプ テキストを一覧表示する
--botName, -N
ボット プロジェクトに指定された名前
--packageName, -P
ボットに使用する Java パッケージ名
--template, -T
プロジェクトの生成に使用するテンプレート。 オプションは、echo、empty、core です。 さまざまなテンプレート オプションの機能の違いに関する追加情報を参照してください https://github.com/Microsoft/BotBuilder-Samples/tree/main/generators 。
--noprompt
ジェネレーターは、新しいボットを作成する前に確認を求めるメッセージを表示しません。 コマンド ラインで渡されない要件オプションでは、適切な既定値が使用されます。 このオプションは、テスト目的でボットの自動生成を有効にすることを目的としています。
テンプレートのおかげで、プロジェクトには、このクイック スタートでボットを作成するのに必要なすべてのコードが含まれています。 ボットをテストするために追加コードは必要ありません。
注意
Core ボットを作成する場合は、LUIS 言語モデルが必要です 言語モデルは 、luis.ai で作成できます。 モデルの作成後、構成ファイルを更新します。
ジェネレーターを使用してエコー ボットを作成します。
yo botbuilder
Yeoman により、作成するボットに関する情報の入力が求められます。 このチュートリアルでは、既定値を使います。
? What's the name of your bot? my-chat-bot
? What will your bot do? Demonstrate the core capabilities of the Microsoft Bot Framework
? What programming language do you want to use? JavaScript
? Which template would you like to start with? Echo Bot - https://aka.ms/bot-template-echo
? Looking good. Shall I go ahead and create your new bot? Yes
テンプレートのおかげで、プロジェクトには、このクイック スタートでボットを作成するのに必要なすべてのコードが含まれています。 ボットをテストするために追加コードは必要ありません。
注意
Core ボットを作成する場合は、LUIS 言語モデルが必要です 言語モデルは 、luis.ai で作成できます。 モデルの作成後、構成ファイルを更新します。
作業ディレクトリから次のコマンドを実行して、 エコー ボット テンプレートとその依存関係をダウンロードします。
cookiecutter https://github.com/microsoft/BotBuilder-Samples/releases/download/Templates/echo.zip
ボットに名前と説明を入力するように求められます。 次の値を入力します。
bot_name : echo_bot
bot_description : ユーザーの応答をエコーバックするボット。
ボットの起動
Visual Studio で次の操作を行います。
ボット プロジェクトを開きます。
デバッグなしでプロジェクトを実行します。
Visual Studio によってアプリケーションがビルドされ、localhost にデプロイされ、Web ブラウザーが起動してアプリケーションの default.htm ページが表示されます。
この時点では、ボットはローカルのポート 3978 で実行されています。
Visual Studio Code:
ボット プロジェクト フォルダーを開きます。
プロジェクトの選択を求められたら、作成したボット用のプロジェクトを選択します。
メニューから[ 実行 ]、[ デバッグなしで実行 ]の順に選択します。
環境の選択を求められたら、.Net Core を選択します。
このコマンドによって起動設定が更新された場合は、変更を保存してコマンドを再実行します。
run コマンドは、アプリケーションをビルドして localhost にデプロイし、Web ブラウザーを起動してアプリケーションの default.htm ページを表示します。
この時点では、ボットはローカルのポート 3978 で実行されています。
コマンド プロンプトまたはターミナルから:
ボットのプロジェクト フォルダーにディレクトリを変更します。
ボットを起動するために使用 dotnet run します。
dotnet run
このコマンドは、アプリケーションをビルドし、localhost にデプロイします。
アプリケーションの既定の Web ページは表示されませんが、この時点でボットはポート 3978 でローカルで実行されています。
ターミナルから bot を保存したディレクトリに移動し、以下に示すコマンドを実行します。
Maven プロジェクトをビルドし、 .jar ファイル (アーカイブ) にパッケージ化します。
mvn package
ボットをローカルで実行します。 アーカイブ名 を、前のコマンドの実際の名前に置き換えます。
java -jar .\target\<archive-name>.jar
これでエミュレーターを起動する準備ができました。
ターミナルまたはコマンド プロンプトで、ボット用に作成したディレクトリに変更し、npm start でボットを起動します。
cd my-chat-bot
npm start
この時点では、ボットはローカルのポート 3978 で実行されています。
コマンド ライン/ターミナルから、ディレクトリを . に echo_bot変更します。
cd echo_bot
エコー ボット テンプレートの依存関係をインストールします。
pip install -r requirements.txt
依存関係がインストールされたら、次のコマンドを実行してボットを起動します。
python app.py
次のスクリーンショットに示されている最後の行が表示されたら、ボットのテストを行う準備ができていることがわかります。
最後の行で http アドレスをコピーします。 エミュレーターを使用してボットと対話するときに必要になります。
エミュレーターの起動とボットの接続
Bot Framework Emulator を起動します。
エミュレーターの [ようこそ ] タブで [ボットを開く ] を選択します。
ローカル ホストとポートであるボットの URL を入力し、 /api/messages パスに追加します。 アドレスは通常次のとおりです http://localhost:3978/api/messages。
次に、 [接続]\(Connect\) を選択します。
ボットにメッセージを送信すると、ボットは応答します。
その他のリソース
Visual Studio または Visual Studio Code とBot Framework Emulatorを使用してデバッグする方法については、ボット のデバッグに関するページを参照してください。
ngrok のインストール方法については、 トンネリング (ngrok) を参照してください。
次のステップ