更新日:2025年5月23日
本記事ではDify で作ったLLMアプリケーションをLangfuse で可視化してみた時に、処理はどう見えるのか、そしてどのように役に立つのかをご紹介します。
*このブログは前半と後半 に分かれており、前半パートなります。
はじめに#
近年のDifyユーザーの広がりとエンタープライズでの採用事例などから、Dify でも生成AIアプリケーションの可視化ニーズが高まっています。そこでこの記事では、Langfuse を使った可視化についてご紹介します。
なおこの記事ではDify の設定には深く踏み込まず、あくまでLangfuse側でどのような情報が標準では反映されるのかにフォーカスしています。
Dify とLangfuse の設定の詳細手順については、Difyの公式ページ をご参照ください。
手順といっても特に難しいことはなく、実際は各アプリケーション左側のメニューバー一番下の “監視” をクリックしていただければ、あとはキー情報などをいれるだけです。

Dify でのサンプルアプリの構成#
まず今回のケースで用いたアプリは、以下の処理をします。
- ユーザーがファイルアップロード
- “テキスト抽出ツール” でテキストを抽出
- “LLM1” で 原文に忠実に翻訳
- “LLM2” でそれをレビューして修正
- “LLM3” で不要な文字は全て排除して、マークダウンに変更
- 5の結果を出力

特に何の変哲もないアプリケーションなので、詳細な処理は割愛します。

Traceとは#
Dify側で “秘密キー” , “公開キー”, “HOST” を入れていることを確認し、Langfuse側で状況を見てみます。フローを実行してまもなく、Trace に新しいエントリがあることがわかります。

なんとなくでもご存知の方は以下の点線内は飛ばして先に進んでいただけます。
Traces
A Trace represents a single execution of a LLM feature. It is a container for all succeeding objects.
訳:
Trace はLLM機能の単一実行を表します。これはすべての後続オブジェクトのコンテナです
Observations
Each Trace can contain multiple Observations to record individual steps of an execution. There are different types of Observations:
- Events are the basic building block. They are used to track discrete events in a Trace.
- Spans track time periods and include an end_time.
- Generations are a specific type of Spans which are used to record generations of an AI model. They contain additional metadata about the model, LLM token and cost tracking, and the prompt/completions are specifically rendered in the langfuse UI.
訳:
各Traceは、実行の個々のステップを記録するための複数のObservations を含めることができます。Observations にはさまざまな種類があります。
- Event は基本的な構成要素です。これらは、トレース内の個別のイベントを追跡するために使用されます。
- Span は時間期間を追跡し、end_timeを含みます。
- Generation は、スパンの特殊なタイプであり、AIモデルの世代を記録するために使用されます。これには、モデル、LLMトークン、コスト追跡に関する追加のメタデータが含まれ、プロンプト/補完は、特にlangfuse UI でレンダリングされます。

Langfuse での見え方#

Trace名 workflow の下には、日時と所要時間とToken 数が見て取れます。Dify 側で出すInput/Out Token とLangfuse 側の取り扱いが原因で、ゼロになってますが合計のToken も確認することができます。
まずこのTrace のInput とOutput を確認することが可能ですが、それに加えて下の方にはDify で付与したMetadata があることも確認できます。


ただ、ちょっと問題なのはDifyで3つあったLLM での処理と各アウトプットが全部 llm で名称が統一されてしまっており、Langfuse の画面だけで分からない (DifyのUIの仕様) 問題があります。これについては、各GENERATION をクリックして中身から確認が可能です。
この画面ではGENERATION の詳細で、Systemプロンプトなどの他にレイテンシーやToken、Model などの情報が確認できます。

この画面の下の方では、Metadata が表示されておりDIfyのノード名やタイプなどの情報を
確認することができます。 node_name として定義されている部分です。


Langfuseでの可視化 [Dify編 (前半) ] まとめ#
本記事ではLangfuseのTrace機能を通じて、Difyの処理の可視化の基本的をご紹介しました。次回はもう少し深掘りして、RAGを行った場合について触れていきます。
ガオ株式会社 は企業向けにLangfuse ProおよびEnterpriseプランを日本円で販売し、日本語でサポート提供・導入支援などを実施している唯一の企業です。
Langfuseにご興味ある方は、contact@gao-ai.comまでご連絡ください。