8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Bedrockの呼び出しログをいい感じに可視化するツールを作成しました

Posted at

Bedrockerの皆さん、こんにちは。

Bedrockを使ったアプリを開発している際に、「最終的にどんなプロンプトが生成されているんだろう」とか、「前送ったあの神プロンプトどんなんだったっけ?」とか、生成AI呼び出し時のログを確認したくなることって、ありませんか?

私はあります

Bedrockには、Bedrockの呼び出しログを記録するオプションがあります。デフォルトは無効化されていますが、マネジメントコンソールで簡単に有効化できます。

image.png

こうしておくと、CloudWatchログに自動的に呼び出しログが蓄積されます。

少し試した限り、ナレッジベース機能が内部で使用している呼び出し(エンベディングや回答生成)も記録されていました。

CloudWatchログを見るとJSON形式で蓄積されていますが、、

正直、見づらいです😭

LangSmithとか

Langfuseとか

わかりやすい見た目でチェックしたいですよね?

現状、Bedrockにはその機能が提供さていないので、 作りました!!!

BedrockSmithの紹介

BedrockSmithは、CloudWatch Logsに出力したBedrockの呼び出しログを整形して表示するStreamlitアプリケーションです。

image.png

ただ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で呼び出したものはリストに表示されません。(ボディの形式がモデルごとに異なると思うので、対象外としました)

リクエスト&プルリクエスト募集中です

どしどしお願いします。

個人的には、ログ取得後、左のサイドバーに何を表示したらいいのかあんまりピンときてなくて、結構適当な状態です。

image.png

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?