Bot Framework SDKを試してみた

Home - rinna Developers

rinna Developersというサービスが無料で試せるようだったので、りんなと連携1して会話出来るようにしたかったのですが、そのためにはBot Framework SDKを使った準備が必要でした。

はじめに

基本的なボットを作成する - Bot Service | Microsoft Learn

上のリンクを参考にすると下画像のようにEmulator上で自分が作ったチャットボットを動かせるようになります。 イベント ドリブンの会話とアクティビティ ハンドラー - Bot Service | Microsoft Learn

Bot Framework SDKにハンドラーが用意されているので、Frameworkで定義されているメソッド内に返答させたい文字を入れておくとその内容でチャットを返してくれるようになります。

Event Handler 説明
メッセージ アクティビティを受信した OnMessageActivityAsync これをオーバーライドして message アクティビティを処理します。

最初のテンプレートのままだと、受信したテキストをそのまま返すソースコードになっていました。

protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
{
      var replyText = $"Echo: {turnContext.Activity.Text}";
      await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
}

前提条件

C#以外で試したい方はMSのドキュメントを見に行ってみてください。Java, Javascript, Pythonのサンプルもあるみたいです。

  • ASP .NET Core ランタイム
    • 自分は.NET6.0の環境で試しました
    • dotnet cliが叩けること
  • Bot Framework Emulaor
    • サンプルコードの実行画面からダウンロードできるので最初からはなくても問題なし

ボットのテンプレートをインストールする

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 --listでインストール済のテンプレートが確認できます。

プロジェクトの作成

dotnet new echobot -n <your-bot-name>

プロジェクトの起動

cd <your-bot-name>
dotnet run

チャットボットの実行環境になるEmulatorをリンクからダウンロードしましょう。

エミュレータからチャットボットをテストする

Bot URLにhttp://localhost:3978/api/messagesと入力してConnectをクリックすると見慣れたチャットの画面が表示されます。

Helloと送るとHelloと返ってきました!

メッセージを送った時にOnMessageActivityAsyncの中身が実行されれば成功です。

Bot Framework SDKの作成については思ったより簡単でした。次回は実際にりんなとの連携を進めていきたいと思います!


  1. 厳密にはりんなそのものではないのですが、本記事では便宜上、rinna DevelopersのAPIと連携することを「りんなと連携」としています

執筆担当者プロフィール
飯島 航己

飯島 航己(日本ビジネスシステムズ株式会社)

MSアライアンス部所属。Azure DevOps, .NETが好きです。

担当記事一覧