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の作成については思ったより簡単でした。次回は実際にりんなとの連携を進めていきたいと思います!
-
厳密にはりんなそのものではないのですが、本記事では便宜上、rinna DevelopersのAPIと連携することを「りんなと連携」としています↩