チャットボット開発 その2 データの埋め込み・取得・保存

はじめに

今回は、Azure Bot Service での実行ファイルへのデータの埋め込み・外部サーバーからのデータの取得・データの保存の記事です。

実行環境の調査がメインですが、ボットに「ニュース教えて」と言うとランダムにニュース記事のタイトルとURLを返す機能が付きました。

リソースの埋め込み

アプリケーション リソースの管理 (.NET)

上記ページの方法では、単純な文字列については良いのですが、ファイルはリンクのみで埋め込みはできませんでした。ローカルではリンクのみでも問題ありませんでしたが、Bot Service にデプロイするとファイルを読み込めなくなったので下記の方法に変更しました。

ビルド アクション

上記ページの「埋め込みリソース」でファイルを埋め込んで読み込みができました。
これで、正規表現の一覧を入れたファイルを読み込み、ユーザーからの問いかけを正規表現のマッチで分類しています。

RSSフィードの取得

HttpClient Class

上記のHttpClientを使ってRSSフィードの取得を行いました。

不適切なインスタンス化のアンチパターン

HttpClientは便利ですが、上記ページによると取り扱いに気を付けないといけないようです。

Microsoft.SyndicationFeed.ReaderWriter

RSSの読み込みと解析は上記のライブラリを使用しました。

以下は、ボットがYahooニュースのRSSから取得したデータで返答している例です。

データの保存

ストレージに直接書き込む

上記ページの通りにやれば、「各対話ごとに管理したいデータ」「対話間で共通でもつデータ」のどちらもストレージに保存できるようになりました。今回は、Blob Storage で各対話の状態の保存・読み込み、RSSの保存・読み込みを行いました。

Share