Bedrockerの皆さん、こんにちは。
Bedrockを使ったアプリを開発している際に、「最終的にどんなプロンプトが生成されているんだろう」とか、「前送ったあの神プロンプトどんなんだったっけ?」とか、生成AI呼び出し時のログを確認したくなることって、ありませんか?
私はあります
Bedrockには、Bedrockの呼び出しログを記録するオプションがあります。デフォルトは無効化されていますが、マネジメントコンソールで簡単に有効化できます。
こうしておくと、CloudWatchログに自動的に呼び出しログが蓄積されます。
少し試した限り、ナレッジベース機能が内部で使用している呼び出し(エンベディングや回答生成)も記録されていました。
CloudWatchログを見るとJSON形式で蓄積されていますが、、
正直、見づらいです😭
わかりやすい見た目でチェックしたいですよね?
現状、Bedrockにはその機能が提供さていないので、 作りました!!!
BedrockSmithの紹介
BedrockSmithは、CloudWatch Logsに出力したBedrockの呼び出しログを整形して表示するStreamlitアプリケーションです。
ただJSONを整形して表示しているだけですが、それでも見る気が起きます。不思議ですね
使い方
まずはソースをクローンしてください。
git clone https://github.com/moritalous/bedrocksmith.git
次にディレクトリを移動します。
cd bedrocksmith
必要なライブラリーをインストールします。
pip install -r requirements.txt
Streamlitを起動します。
streamlit run app.py
参照するCloudWatchログのロググループ名とリージョンを変更する場合はソースコードの2つの値を修正してください。UI上からも変更可能です。
default_log_group_name = "bedrock-invoke-logging-us-east-1"
default_region_name = "us-east-1"
現状、Converse APIとConverse Stream APIのみに対応しています。Invoke APIで呼び出したものはリストに表示されません。(ボディの形式がモデルごとに異なると思うので、対象外としました)
リクエスト&プルリクエスト募集中です
どしどしお願いします。
個人的には、ログ取得後、左のサイドバーに何を表示したらいいのかあんまりピンときてなくて、結構適当な状態です。