これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクから利用できます。
Weave との統合: 本番ダッシュボード
このノートブックでは、Weave の Traces ビューを拡張する本番モニタリング用のカスタムダッシュボードを、Weave の API と関数を使用して作成する方法を紹介します。このガイドは、本番環境で LLM アプリケーションを運用し、デフォルトの Traces ビューでは得られない、パフォーマンス、コスト、ユーザーのフィードバックに関する独自の情報を把握したい開発者や ML エンジニアを対象としています。このノートブックでは、次の内容を扱います。- Weave からトレース、コスト、フィードバック、その他のメトリクスを取得します。
- ユーザーのフィードバックとコスト分布の集計ビューを作成します。
- トークン使用量とレイテンシーの経時変化を可視化します。
streamlit をインストールして本番ダッシュボードのスクリプトを実行すると、自分の Weave プロジェクトでダッシュボードを試すことができます。
セットアップ
まず、次のパッケージをインストールします。Implementation
以下のセクションでは、Weave クライアントの初期化、Call データの取得、およびダッシュボード用の可視化の生成について説明します。Weave クライアントを初期化し、コストを定義する
まず、Weave クライアントを初期化し、各モデルのコストを追加する関数を設定します。このステップは、後続のコストクエリで各呼び出しにトークンあたりの料金を割り当てるために必須です。 W&B には多くの標準モデルの標準コストが含まれており、独自のカスタムコストやカスタムモデルも追加できます。次の例では、いくつかのモデルにカスタムコストを追加し、残りのモデルには標準コストを使用する方法を示します。 コストは、Weave で各呼び出しについて追跡されたトークンに基づいて計算されます。多くの LLM ベンダーのライブラリでは、Weave がトークン使用量を自動的にトラッキングしますが、任意の呼び出しでカスタムのトークン数を返すこともできます。カスタムモデルのトークン数とコスト計算の定義について詳しくは、カスタムコストのクックブックを参照してください。Weave から Call データをフェッチする
クライアントの初期化とコストの設定が完了したら、次のステップは Weave から Call データをプルすることです。Call データをフェッチするためのオプションは 2 つあります。- データを Call ごとにフェッチする。
- 高レベル API を使用する。
Call ごとにデータを取得する
Weave からデータにアクセスする 1 つ目の方法は、フィルター処理した Call の一覧を取得し、必要なデータを Call ごとに抽出する方法です。そのためには、calls_query_stream API を使用して Weave から Call データを取得します。
calls_query_streamAPI: Weave から Call データを取得する API です。filter辞書: Call データの取得に使用するフィルターパラメーターを格納する辞書です。詳細については、CallSchema リファレンスを参照してください。expand_columnsリスト: Call データ内で展開する列を格納するリストです。sort_byリスト: Call データの並べ替えパラメーターを格納するリストです。include_costsブール値: Call データにコストを含めるかどうかを指定するブール値です。include_feedbackブール値: Call データにフィードバックを含めるかどうかを指定するブール値です。
高レベル API を使用する
Weave には、すべての Call を 1 つずつ確認しなくても、モデルのコスト、フィードバック、その他のメトリクスに直接アクセスできる高レベル API も用意されています。 たとえばコストの場合は、query_costs API を使用して、project 内で使用されているすべての LLM のコストを取得します。
入力の収集と可視化の生成
call のデータとコストがデータフレームとして利用可能であれば、plotly を使用して可視化を生成できます。これはお好みでカスタマイズできるスターターダッシュボードです。より高度な例については、knowledge-worker-weave リポジトリ内の Streamlit の例 をご確認ください。まとめ
このクックブックでは、Weave の API と関数を使用して、カスタムの本番モニタリングダッシュボードを作成する方法を紹介しました。Weave は、データをスムーズに取り込み、カスタムプロセス向けにデータを抽出できる、手軽なインテグレーションを重視しています。- データ入力:
@weave-op()デコレーターによるフレームワークに依存しないトレースと、CSV から Call をインポートするオプション (関連するインポートのクックブックを参照してください) 。- さまざまなプログラミングフレームワークや言語から Weave にログするためのサービス API エンドポイント。詳細については、サービス API リファレンスを参照してください。
- データ出力:
- CSV、TSV、JSONL、または JSON 形式でデータをダウンロードできます。詳細については、サービス API リファレンスを参照してください。
- プログラムからデータにアクセスしてエクスポートできます。このクックブックで説明したとおり、エクスポートパネルの「Use Python」セクションを参照してください。詳細については、Call のクエリとエクスポートを参照してください。