⚠️ このドキュメントはAIによって自動翻訳されています。不正確な部分がある場合は、英語版を参照してください。
Langfuseとは
Langfuseは、チームがアプリケーションのデバッグ、分析、反復作業を協力して行うことができる、オープンソースの大規模言語モデル(LLM)エンジニアリングプラットフォームです。Langfuseの紹介: https://langfuse.com/
Langfuseの設定方法
- 公式ウェブサイトでLangfuseに登録し、ログインします。
- Langfuseでプロジェクトを作成します。ログイン後、ホームページで新規をクリックして自身のプロジェクトを作成します。このプロジェクトは、Difyのアプリケーションと関連付けてデータを監視するために使用されます。
プロジェクトの名前を編集してください。
- プロジェクトAPI資格情報を作成します。プロジェクトの左サイドバーで設定をクリックし、設定を開きます。
設定でAPIキーを作成をクリックして、プロジェクトのAPI資格情報を作成します。
シークレットキー、パブリックキー、ホストをコピーして保存します。
- DifyでLangfuseを設定します。監視が必要なアプリケーションを開き、サイドメニューでモニタリングを開き、ページ上でアプリパフォーマンスのトレースを選択します。
設定をクリックした後、Langfuseで作成したシークレットキー、パブリックキー、ホストを構成に貼り付けて保存します。
正常に保存されると、現在のページで状態を確認できます。開始と表示されている場合、監視が行われています。
Langfuseでの監視データの閲覧
設定後、DifyのアプリケーションのデバッグまたはプロダクションデータをLangfuseで見ることができます。
監視データの一覧
ワークフローとチャットフローの情報をトレースする
ワークフローとチャットフローのトレース| ワークフロー | LangFuse Trace |
|---|---|
| workflow_app_log_id/workflow_run_id | id |
| user_session_id | user_id |
| workflow_ | name |
| start_time | start_time |
| end_time | end_time |
| inputs | input |
| outputs | output |
| モデルトークン消費量 | usage |
| 元データ | metadata |
| error | level |
| error | status_message |
| [workflow] | tags |
| [“message”, conversation_mode] | session_id |
| conversion_id | parent_observation_id |
- workflow_id - ワークフローのユニークID
- conversation_id - 会話ID
- workflow_run_id - このランタイムのワークフローID
- tenant_id - テナントID
- elapsed_time - このランタイムの経過時間
- status - ランタイムのステータス
- version - ワークフローのバージョン
- total_tokens - このランタイムで使用されたトークンの総数
- file_list - 処理されたファイルのリスト
- triggered_from - このランタイムをトリガーしたソース
- workflow_run_inputs - このワークフローの入力
- workflow_run_outputs - このワークフローの出力
- error - エラーメッセージ
- query - ランタイムで使用されたクエリ
- workflow_app_log_id - ワークフローアプリケーションログID
- message_id - 関連するメッセージID
- start_time - このランタイムの開始時間
- end_time - このランタイムの終了時間
- ワークフローノード実行 - ワークフローノードのランタイム情報
- 元データ(Metadata)
- workflow_id - ワークフローのユニークID
- conversation_id - 会話ID
- workflow_run_id - このランタイムのワークフローID
- tenant_id - テナントID
- elapsed_time - このランタイムの経過時間
- status - オペレーション状態
- version - ワークフローのバージョン
- total_tokens - このランタイムで使用されたトークンの総数
- file_list - 処理されたファイルのリスト
- triggered_from - このランタイムをトリガーしたソース
メッセージトレース情報
LLM会話をトレースするために| メッセージ | LangFuse Generation/Trace |
|---|---|
| message_id | id |
| user_session_id | user_id |
| message_ | name |
| start_time | start_time |
| end_time | end_time |
| inputs | input |
| outputs | output |
| モデルトークン消費量 | usage |
| 元データ | metadata |
| error | level |
| error | status_message |
| [“message”, conversation_mode] | tags |
| conversation_id | session_id |
| conversion_id | parent_observation_id |
- message_id - メッセージID
- message_data - メッセージデータ
- user_session_id - ユーザーのセッションID
- conversation_model - 会話モデル
- message_tokens - メッセージトークン
- answer_tokens - 回答トークン
- total_tokens - メッセージと回答からの総トークン
- error - エラーメッセージ
- inputs - 入力データ
- outputs - 出力データ
- file_list - 処理されたファイルのリスト
- start_time - 開始時間
- end_time - 終了時間
- message_file_data - 関連するファイルデータのメッセージ
- conversation_mode - 会話モード
- 元データ(Metadata)
- conversation_id - 会話ID
- ls_provider - モデルプロバイダー
- ls_model_name - モデルID
- status - メッセージのステータス
- from_end_user_id - 送信ユーザーのID
- from_account_id - 送信アカウントのID
- agent_based - エージェントベースかどうか
- workflow_run_id - このランタイムのワークフローID
- from_source - メッセージソース
モデレーショントレース情報
会話のモデレーションを追跡するために使用されます| モデレーション | LangFuse Generation/Trace |
|---|---|
| user_id | user_id |
| moderation | name |
| start_time | start_time |
| end_time | end_time |
| inputs | input |
| outputs | output |
| 元データ | metadata |
| [moderation] | tags |
| message_id | parent_observation_id |
- message_id - メッセージID
- user_id - ユーザーID
- workflow_app_log_id workflow_app_log_id
- inputs - レビューのための入力データ
- message_data - メッセージデータ
- flagged - 注目のためにフラグが立てられているかどうか
- action - 実施すべき具体的なアクション
- preset_response - プリセット応答
- start_time - レビューの開始時間
- end_time - レビューの終了時間
- 元データ(Metadata)
- message_id - メッセージID
- action - 実施すべき具体的なアクション
- preset_response - プリセット応答
推奨質問のトレース情報
推奨質問を追跡するために使用されます| 推奨質問 | LangFuse Generation/Trace |
|---|---|
| user_id | user_id |
| suggested_question | name |
| start_time | start_time |
| end_time | end_time |
| inputs | input |
| outputs | output |
| 元データ | metadata |
| [suggested_question] | tags |
| message_id | parent_observation_id |
- message_id - メッセージID
- message_data - メッセージデータ
- inputs - 入力データ
- outputs - 出力データ
- start_time - 開始時間
- end_time - 終了時間
- total_tokens - 総トークン数
- status - メッセージのステータス
- error - エラーメッセージ
- from_account_id - 送信アカウントID
- agent_based - エージェントベースかどうか
- from_source - メッセージソース
- model_provider - モデルプロバイダー
- model_id - モデルID
- suggested_question - 推奨質問
- level - ステータスレベル
- status_message - メッセージステータス
- 元データ(Metadata)
- message_id - メッセージID
- ls_provider - モデルプロバイダー
- ls_model_name - モデルID
- status - メッセージのステータス
- from_end_user_id - 送信ユーザーのID
- from_account_id - 送信アカウントID
- workflow_run_id - このランタイムのワークフローID
- from_source - メッセージソース
データセットリトリーバルトレース情報
知識ベースの検索を追跡するために使用されます| データセットリトリーバル | LangFuse Generation/Trace |
|---|---|
| user_id | user_id |
| dataset_retrieval | name |
| start_time | start_time |
| end_time | end_time |
| inputs | input |
| outputs | output |
| 元データ | metadata |
| [dataset_retrieval] | tags |
| message_id | parent_observation_id |
- message_id - メッセージID
- inputs - 入力メッセージ
- documents - ドキュメントデータ
- start_time - 開始時間
- end_time - 終了時間
- message_data - メッセージデータ
- 元データ(Metadata)
- message_id - メッセージID
- ls_provider - モデルプロバイダー
- ls_model_name - モデルID
- status - モデルのステータス
- from_end_user_id - 送信ユーザーのID
- from_account_id - 送信アカウントのID
- agent_based - エージェントベースかどうか
- workflow_run_id - このランタイムのワークフローID
- from_source - メッセージソース
ツールトレース情報
ツール呼び出しを追跡するために使用されます| ツール | LangFuse Generation/Trace |
|---|---|
| user_id | user_id |
| tool_name | name |
| start_time | start_time |
| end_time | end_time |
| inputs | input |
| outputs | output |
| 元データ | metadata |
| [“tool”, tool_name] | tags |
| message_id | parent_observation_id |
- message_id - メッセージID
- tool_name - ツール名
- start_time - 開始時間
- end_time - 終了時間
- tool_inputs - ツール入力
- tool_outputs - ツール出力
- message_data - メッセージデータ
- error - エラーメッセージが存在する場合
- inputs - メッセージの入力
- outputs - メッセージの出力
- tool_config - ツール構成
- time_cost - 時間コスト
- tool_parameters - ツールパラメータ
- file_url - 関連ファイルのURL
- 元データ(Metadata)
- message_id - メッセージID
- tool_name - ツール名
- tool_inputs - ツール入力
- tool_outputs - ツール出力
- tool_config - ツール構成
- time_cost - 時間コスト
- error - エラーメッセージ
- tool_parameters - ツールパラメータ
- message_file_id - メッセージファイルID
- created_by_role - 作成者の役割
- created_user_id - 作成したユーザーID
名前生成トレース
会話タイトルの生成を追跡するために使用されます| 名前生成 | LangFuse Generation/Trace |
|---|---|
| user_id | user_id |
| generate_name | name |
| start_time | start_time |
| end_time | end_time |
| inputs | input |
| outputs | output |
| 元データ | metadata |
| [generate_name] | tags |
- conversation_id - 会話ID
- inputs - 入力データ
- outputs - 生成されたセッション名
- start_time - 開始時間
- end_time - 終了時間
- tenant_id - テナントID
- 元データ(Metadata)
- conversation_id - 会話ID
- tenant_id - テナントID
Langfuseプロンプト管理
Langfuseプロンプト管理プラグイン(コミュニティによって維持されている)は、DifyアプリケーションでLangfuseで管理およびバージョン管理されているプロンプトを使用できるようにし、大規模言語モデル(LLM)アプリケーション開発のワークフローを向上させます。主な機能は以下の通りです:- プロンプトを取得する: Langfuseで管理されている特定のプロンプトを取得します。
- プロンプトを検索する: Langfuseでさまざまなフィルターを使用してプロンプトを検索します。
- プロンプトを更新する: Langfuseでプロンプトの新しいバージョンを作成し、タグ/ラベルを設定します。