- Difyで簡単なアプリ作ってみた!
- アプリのふるまいをもう少し分析したい!
- LLMアプリの監視・改善に興味ある!
こんにちは。
私は情報システムやサービスの運用の研究開発業務を担当するグループに所属している初級エンジニアです。
今回は以前紹介した「Dify」で作成した生成AIアプリを運用していくためのObservabilityツールであるLangSmithについてアプリの導入や監視設定など、実際に触ってみました。
本記事は初級エンジニアの私が、生成AIアプリケーション開発ツールであるDifyをLangSmithで監視するまでの内容をまとめたものになります。
まずはLangSmithについて説明した後に、導入・監視方法をご紹介します。
LangSmithは生成AIアプリケーションを監視するためのSaaS型Observabilityツールです。
本来は、LangChainというフレームワークで構築されたアプリケーションと組み合わせて使うことを想定して設計されていますが、LangChainを使っていないアプリケーションにも導入可能で、Difyとも連携できます。
価格に関しては有料プランと無料プランがあり、有料プランはチームで本格運用したい方向け、無料プランは個人で機能検証や動作確認したい方向けとなっています。
今回は動作確認程度なので、無料プランを利用しています。
前回Difyで作成した『Qiita記事レビューさん』をDify上で監視してみます。
本記事のDifyの情報は2025年4月時点、v1.1.3の情報です。
監視
アプリ設定画面の左タブから「監視」の画面に飛ぶことができます。
ここではアプリの使用状況を一目で確認するためのダッシュボードが展開されています。
監視項目一覧
- 総会話数
- アクティブユーザー数
- 平均セッションインタラクション数
- トークン出力速度
- ユーザー満足度率
- トークン使用量
- トータルメッセージ数
全て折れ線グラフで示されており、一目で使用状況の推移を確認することができます!
分析期間の変更も可能であり、以下の期間が対象です。
- 今日
- 過去7日間
- 過去4週間
- 過去3か月
- 過去12か月
- 月初から今日まで
- 四半期初から今日まで
- 年初から今日まで
- すべての期間
しかし、任意の期間を設定することや、グラフのプロット間隔を変更することはできません。
そのため、グラフのカスタマイズ性はやや限定的と言えます。
また監視項目数も限られており、細かく分析したい場合には少し物足りなさを感じました。
ログ
アプリ設定画面の左タブから「ログ」の画面に飛ぶことができます。
ここでは、アプリ使用時の会話内容が展開されています。
誰(エンドユーザー、アカウント)が何時どんな会話をしたかを確認することができます。
ログ項目一覧
- タイトル
- エンドユーザー・アカウント
- ステータス(SUCCESS、FAILURE)
- メッセージ数
- 更新時間
- 作成時間
アプリ上でのやりとりを簡単な操作でチャット単位に確認することが可能です。
表示期間の切替や検索機能も用意されており、特定のログを発見しやすい設計になっています。
ただし、トレース機能は備わっておらず、アプリ内部の詳細な動きを把握することはできません。
次にLangSmithを用いて監視してみます。
ユーザー登録
以下のURLからLangSmithのアカウントを作成し、ログインします。
LangSmithの画面を表示できたら、APIキーを取得します。
画面左下の「歯車マーク」からAPIキー取得画面に飛ぶことができます。
「Create API Key」を選択し、APIキーを作成します。
APIキーの設定
- Description:APIキーの説明文
- Key Type:
Personal Access Token
「Create API Key」を選択すると作成完了です!
作成するとAPIキーが表示されるので、コピーしてメモしておきましょう。
APIキーは作成時の1度しか表示されないので、必ずどこかに保存するようにしてください。
APIキー取得を終えたらDifyの「監視」画面へ戻り、右上の設定アイコンから「LangSmith」を設定します。
LangSmithの設定項目
- API Key:前項で設定した値
- プロジェクト:default
- エンドポイント:入力なし
設定項目を入力すると、LangSmithでの監視が可能になります!
監視機能を使ってみる
LangSmithでは、大きく分けて2種類の監視機能が備わっています。
- トレース:アプリ上の処理の流れを追跡
- モニタリング:メトリクスの推移をグラフで確認
それぞれの詳細について説明していきます。
トレース
LangSmithページ左タブから「Tracing Projects」を選択します。
監視したいプロジェクト名(default)が表示されます。
「default」を選択すると、様々な実行結果を一覧で確認することができます。
特定の実行結果を選択すると、その実行結果の詳細が確認できます。
詳細画面にて確認できる監視項目の一例を以下に示します。
監視項目の一例
-
インプット
- アプリケーションID
- 会話ID
- プロンプト
- ユーザーID
- ワークフローID
- ワークフロー実行ID
- 入力ファイル
- 会話回数
- メタデータ
-
アウトプット
- レスポンス
- メタデータ
-
その他
- トレース(フローの流れ)
- スタート時間
- エンド時間
- ステータス(Success or Error)
- レイテンシー
- タイプ
- タグ
これらの項目は一例であり、実行ごとに異なった項目が出力される場合があります。
Dify上の「監視」機能では確認できなかった、アプリのふるまいを確認することができます!
タグをうまく活用してフィルターをかけることで、任意の実行のみを抽出して確認できるため、かなり自由度が高いと言えます。
また、確認できる項目数も非常に多く、アプリの状態を詳細に把握できます。
モニタリング
LangSmithページ左タブから「Monitoring」を選択します。
監視したいプロジェクト名(default)が表示されます。
「Prebuilt Dashboards」と「Custom Dashboards」がありますが、まずは「Prebuilt Dashboards」から確認します。
「default」を選択すると、様々なメトリクスの推移を折れ線グラフで確認することができます。
グラフの縦軸に用いられているメトリクスを以下に示します。
メトリクス一覧
-
トレース
- トレース回数
- トレースレイテンシー
- トレースエラー割合
-
LLMの呼び出し
- LLM呼び出し回数
- LLM呼び出しレイテンシー
-
コスト & トークン
- トータルコスト
- 1トレースあたりのコスト
- 出力トークン数
- 1トレースあたりの出力トークン数
- 入力トークン数
- 1トレースあたりの入力トークン数
-
ツール
- ツールによる実行回数
- ツールによるレイテンシーの中央値
- ツールによるエラーの割合
-
実行タイプ
- 名前別の実行回数
- 名前別のレイテンシーの中央値
- 名前別のエラー割合
- フィードバックスコア
上図では「トレース」と「LLMの呼び出し」の一部が表示されています
Difyの「監視」機能に比べて、LangSmithでは可視化されるメトリクスの種類が増えていることが確認できます。
これにより、Difyの使用状況をより多角的かつ詳細に把握することが可能となり、トラブルの早期発見やボトルネックの特定、運用上の改善点の発見につながります。
特定のグラフを選択することで、そのメトリクスに関連するトレース情報を確認することができます。
次に「Custom Dashboards」について確認します。
「Custom Dashboards」では、任意のグラフを自由に作成することができます。
例えば、「出力トークン数」と「入力トークン数」を同じグラフ上に表示させたいときなどに使えます!!
「default」を選択し、「+Chart」からカスタムダッシュボードを作成します。
カスタム設定項目を以下に示します。
カスタム設定項目
- Name:グラフ名
- Description:グラフの説明
-
Select tracing projects and filter runs
- Tracing project(s):プロジェクト選択(複数選択可)
- Filtered on:フィルター選択(タグやID、名前など)
-
Pick a metric
- Choose metric:メトリクス選択(実行回数、トークン、コスト、エラー割合など)
-
Choose how to split the data
- Group by:データを自動的に複数の系列に分割
- Custom data splits:フィルターやクエリーを手動でコントロール
- No data splits:データを分割しない
-
Pick up a chart type
- Line:折れ線グラフ
- Bar:棒グラフ
「Save」を選択すると、ダッシュボード上にグラフが追加されます。
カスタムダッシュボードでも同様に、特定のグラフを選択することで、そのメトリクスに関連するトレース情報を確認することができます。
グラフをカスタマイズすることで、業務や監視対象に合わせて本当に必要なメトリクスを重要度順に配置できるため、不要なノイズがなくなり、監視効率が向上します。
今回は初級エンジニアが生成AIアプリケーション開発ツールであるDifyを導入し、LangSmithで監視してみました。
とても簡単にDifyとLangSmithを連携することができるため、Difyで作ったアプリを本格的に監視する予定の方はぜひ使用を検討してみてください!
特に、「アプリの中で何が起きているのかを正確に把握したい」「ログやメトリクスを見やすく整理したい」といったニーズがある方におすすめです。
LangSmithはトレース数や機能の利用状況に応じて課金が発生するため、利用前に料金体系を確認しましょう。
今後も、Observabilityツールなどの紹介を投稿する予定です。
最後までお読みいただき、ありがとうございました。
Views: 0