LINE + Postman + Bedrock + TiDB (Vector) ハンズオン振り返り
先週 JAWS-UG名古屋で実施した Lineで応答するAIチャットボットのハンズオンの振り返りです。
ハンズオンで実施した内容を振り返り、内容の理解を深める一助になれば幸いです。
全体の構成
こんな感じです。

UIとしてLINEを利用して、LINEメッセージとして質問を投げるとTiDBのVector Storeに保存された知識をベースにBedrock(Nova)が答えを返すというものです。
ハンズオンの流れを振り返ってみましょう。
Bedrockの有効化
下記の篠田さんの手順に沿って、Bedrockの有効化とAWS Novaなどのモデルの有効化リクエストを行います。AWSのモデルは即時に有効化されるのがいいですね。
EC2上でのDify環境の構築
久々にEC2を触ったので時間がかかった方も多かった部分です。最近はEC2を起動する際にセキュリティグループの指定もまとめてできるので、「SSHとHTTPの通信を許可する」にチェックをいれておけば問題はありません。SSHクライアントもWebコンソールから接続してしまえば楽ちんですね。
ハンズオンで実施した手順はこちらの亀田さんのblogにあります。
また、CloudFormationが利用できる方は、拙作のCloudFormationもあります。
お好きな方をご利用ください。
DifyのナレッジとしてTiDB Cloud Serverlessを利用
こちらの記事の手順になります。
実際に作成するナレッジはこのような流れになっています。サンプルのmarkdownだけではなく、ご自身でpdfを読み込ませていたりする例もあり良かったなと思います。

ここまでで、与えられたドキュメントに沿った回答を返すチャットボットをDify上で動かせました。
DifyのチャットやワークフローをAPIとして公開
DifyにはAPI公開機能もあり、定義したチャットやワークフローをAPI経由で利用できます。
ハンズオンではPostmanを利用して、このAPIを叩いてみました。
postmanはcurlの実行例からAPI定義を作れる機能があり、Difyのドキュメントに記載のcurl実行例からすぐ繰り返し利用できるAPI呼び出しテンプレートが作れるのが秀逸です。
LINEからPostman Flowsを経由してチャットを呼び出す
まず、LINE Developersのセットアップ等が必要なので、初めてLINE Developersを利用する方はこちらの記事のオウム返しbotから作成します。
LINEのMessaging APIを利用するために、LINE DevelopersとLINE Official Account Managerの2つのコンソールを利用しないといけないのがちょっと混乱しますね。
LINE Messaging APIを有効化してWebhook URLを設定するまでのインタラクティブデモを作りましたので参照してください。
ここで作成したPostman Flowsで実行していることは、Webhookに渡されたメッセージをそのままLINEのMessaging APIの呼び出しに使うことで、オウム返しを実現しています。このときに、LINEメッセージに返信するために、replyTokenをAPIに渡しています。
オウム返しを確認したら、Difyの呼び出しに移ります。手順はこちらの記事になります。
Postman Flowsの全体像は次のようになります。

完成!
すべてのハンズオンが完了すると、次のように質問に対してDifyにセットしたナレッジから回答を返すLINEボットが完成します。

いかがでしたでしょうか。復習がてら再度構築してみるのも面白いと思います。
Discussion