Bot Framework SDK を使用してボットを作成する
[アーティクル] 03/08/2023
8 人の共同作成者
フィードバック
この記事の内容
この記事の対象: SDK v4
この記事では、Bot Framework SDK for C#、Java、JavaScript、または Python を使用して最初のボットを構築する方法と、Bot Framework Emulator を使用してボットをテストする方法について説明します。
最初のボットを作成する場合、Azure サブスクリプションや Azure AI Bot Service リソースは必要ありません。 このクイック スタートでは、最初のボットをローカルで作成することに重点を置いています。 Azure でボットを作成する方法については、「Azure Bot リソースの作成 」を参照してください。
前提条件
C# テンプレート
現在のボット サンプルでは .NET Core 3.1 テンプレートを使用しています。
.NET Core テンプレートは、Bot Framework v4 を使用して新しい会話型 AI ボットをすばやく構築するのに役立ちます。
2020 年 5 月の時点で、これらのテンプレートと生成されるコードには .NET Core 3.1 以降が必要です。
Bot Framework テンプレートをインストールするには。
コンソール ウィンドウを開きます。
.NET Core SDK download バージョン 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
Note
上記の手順で、3 つの Bot Framework テンプレートをすべてインストールできます。 すべてのテンプレートをインストールする必要はありません。使用するものだけをインストールできます。 この記事では、エコー ボット テンプレートを使用します。
Java テンプレート
Yeoman ジェネレーターを使用して、Bot Framework v4 のコア AI 機能 を使用した会話型 AI ボットをすばやく作成します。 詳細については、yeoman.io に関するページを参照してください。
ジェネレーターでは、次に示すように、3 つの異なるテンプレート オプションがサポートされています。
Template
説明
エコー ボット
「Hello World!」より少し多くの機能が必要な場合には良いテンプレートですが、それほど多機能ではありません。 このテンプレートは、ボットにメッセージを送信し、ユーザーにメッセージを繰り返して処理させるという非常に基本的な処理を行います。 このテンプレートは、ユーザーがボットに対して何を言った場合でも、単にユーザーに "エコー" するボットを生成します。
空のボット
Bot Framework v4 に精通していて、基本的なスケルトン プロジェクトが必要な場合には良いテンプレートです。 また、ドキュメントからサンプル コードを取得し、学習するために最小限のボットに貼り付ける場合にも適したオプションです。
コア ボット
マルチターン ダイアログと Azure 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
JavaScript および TypeScript テンプレート
Bot Framework v4 用 Yeoman および Yeoman ジェネレーターをインストールするには。
ターミナルまたは管理者特権でのコマンド プロンプトを開きます。
JavaScript ボットのディレクトリに切り替えます。 まだない場合は最初に作成します。
mkdir myJsBots
cd myJsBots
Yeomen と npm が最新バージョンであることを確認してください。
npm install -g npm
npm install -g yo
Yeoman ジェネレーターをインストールします。
Yeoman は、アプリケーションを作成するためのツールです。 詳細については、yeoman.io に関するページを参照してください。
npm install -g generator-botbuilder
Note
下記の 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
Python テンプレート
次の 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>
テンプレートのおかげで、プロジェクトには、このクイック スタートでボットを作成するのに必要なすべてのコードが含まれています。 ボットをテストするために必要な追加のコードはありません。
次のコマンドを実行して、テンプレートから エコー ボットを作成します。 このコマンドでは、パラメーターに既定のオプションが使用されます。
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
です。 さまざまなテンプレートの詳細については、お使いの言語の GitHub リポジトリを参照してください (C# 、JavaScript 、Python 、または Java )。
--noprompt
ジェネレーターは、新しいボットを作成する前に確認を求めるメッセージを表示しません。 コマンド ラインで渡されない要件オプションでは、適切な既定値が使用されます。 このオプションは、テスト目的でボットの自動生成を有効にすることを目的としています。
テンプレートのおかげで、プロジェクトには、このクイック スタートでボットを作成するのに必要なすべてのコードが含まれています。 ボットをテストするために必要な他のコードはありません。
ジェネレーターを使用してエコー ボットを作成します。
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
テンプレートのおかげで、プロジェクトには、このクイック スタートでボットを作成するのに必要なすべてのコードが含まれています。 ボットをテストするために必要な他のコードはありません。
作業ディレクトリから次のコマンドを実行して、エコー ボット テンプレートとその依存関係をダウンロードします。
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 を選択します。
このコマンドによって起動設定が更新された場合は、変更を保存してコマンドを再実行します。
実行されたコマンドによってアプリケーションがビルドされ、localhost に配置され、Web ブラウザーが起動してアプリケーションの default.htm
ページが表示されます。
この時点では、ボットはポート 3978 のローカルで実行されています。
コマンド プロンプトまたはターミナルから。
ディレクトリをプロジェクトのフォルダーに変更します。
ボットを起動するために dotnet run
を使用します。
dotnet run
このコマンドにより、アプリケーションがビルドされ、localhost にデプロイされます。
アプリケーションの既定の Web ページは表示されませんが、この時点では、ボットはポート 3978 でローカルに実行されています。
ターミナルから bot を保存したディレクトリに移動し、以下に示すコマンドを実行します。
Maven プロジェクトをビルドし、それを .jar ファイル (アーカイブ) にパッケージ化します。
mvn package
ボットをローカルで実行します。 archive-name を、前のコマンドの実際の名前に置き換えます。
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 を使用してデバッグする方法については、「ボットのデバッグ 」を参照してください。
devtunnel の詳細については、トンネリング (devtunnel) に関する記事を参照してください。