Skip to main content
これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクを利用できます。

Weave との統合: 本番ダッシュボード

GenAI ツールを取り巻く状況は急速に進化しており、新しいフレームワーク、ツール、アプリケーションが次々と登場しています。Weave は、GenAI のモニタリングと評価に関するあらゆるニーズにワンストップで応えることを目指しています。そのため、既存のプラットフォームと統合したり、プロジェクトや組織の要件に合わせて Weave を拡張したりする必要が生じることもあります。 このクックブックでは、Weave の強力な API と関数を活用して、Weave の Traces view を拡張する形で本番モニタリング用のカスタムダッシュボードを作成する方法を紹介します。主に次の内容を扱います。
  • Weave からトレース、コスト、フィードバック、その他のメトリクスを取得する
  • ユーザーフィードバックとコスト分布の集計ビューを作成する
  • トークン使用量とレイテンシの時系列可視化を作成する
streamlit をインストールして この本番ダッシュボードスクリプト を実行すれば、自分の Weave プロジェクトでこのダッシュボードを試せます。 Weave を使用した本番ダッシュボードの例

1. セットアップ

このチュートリアルを進めるには、以下のパッケージをインストールするだけで十分です。

2. 実装

2.1 Weave クライアントの初期化とコストの定義

まず、Weave クライアントを初期化し、各モデルのコストを追加する関数を設定します。
  • 多くの標準モデルについては標準コストが含まれていますが、独自のカスタムコストやカスタムモデルも簡単に追加できます。以下では、いくつかのモデルにカスタムコストを追加し、それ以外には標準コストを使用する方法を示します。
  • コストは、Weave で各 call に対してトラッキングされた token に基づいて計算されます。多くの LLM ベンダーのライブラリでは token usage は自動的にトラッキングされますが、任意の call に対してカスタムの token 数を返すこともできます。カスタムモデルの token 数とコスト計算を定義する方法については、このクックブックを参照してください。custom cost cookbook

2.2 Weave から call データを取得する

Weave から call データを取得するには、次の 2 つの方法があります。
  1. call ごとにデータを取得する
  2. 高レベル API を使用する

2.2.1 call 単位でデータを取得する

Weave からデータにアクセスする最初の方法は、フィルター済みの calls のリストを取得し、必要なデータを call 単位で抽出することです。そのために、calls_query_stream API を使用して Weave から calls データを取得できます。
  • calls_query_stream API: この API を使用すると、Weave から calls データを取得できます。
  • filter dictionary: この辞書には、calls データを取得するためのフィルターパラメーターが含まれます。詳しくはこちらを参照してください。
  • expand_columns list: このリストには、calls データ内で展開する列が含まれます。
  • sort_by list: このリストには、calls データの並べ替えパラメーターが含まれます。
  • include_costs boolean: この真偽値は、calls データにコストを含めるかどうかを示します。
  • include_feedback boolean: この真偽値は、calls データにフィードバックを含めるかどうかを示します。
Weaveの戻り値を使えば、calls の処理は非常に簡単です。必要な情報を抽出して dict の list に格納します。次に、その dict の list を pandas DataFrame に変換して返します。

2.2.2 高レベル API の使用

個々のcallをすべて確認する代わりに、Weave にはモデルのコスト、フィードバック、そのほかのメトリクスに直接アクセスできる高レベル API も用意されています。 たとえばコストについては、query_costs API を使用して、プロジェクト内で使用されているすべての LLM のコストを取得します。

2.4 入力を収集し、可視化を生成する

次に、plotly を使って可視化を生成します。これは最も基本的なダッシュボードですが、必要に応じて自由にカスタマイズできます。より複雑な例については、こちらの Streamlit のサンプルを参照してください。

まとめ

このクックブックでは、Weave の API と関数を使用して、カスタムの本番モニタリングダッシュボードを作成する方法を紹介しました。Weave は現在、データを簡単に取り込める高速なインテグレーションと、カスタム処理向けにデータを抽出する機能に重点を置いています。
  • データ入力:
    • @weave-op() デコレータによるフレームワーク非依存のトレースと、CSV から calls を import できる機能 (関連する import cookbook を参照)
    • さまざまなプログラミングフレームワークや言語から Weave にログするための Service API エンドポイント。詳細は こちら を参照してください。
  • データ出力:
    • CSV、TSV、JSONL、JSON 形式でデータを簡単にダウンロードできます。詳細は こちら を参照してください。
    • データへのプログラムによるアクセスを使って簡単にエクスポートできます。このクックブックで説明したように、エクスポートパネルの「Use Python」セクションを参照してください。詳細は こちら を参照してください。
このカスタムダッシュボードは Weave のネイティブな Traces view を拡張し、本番環境の LLM アプリケーションを用途に合わせて監視できるようにします。より複雑なダッシュボードに興味がある場合は、独自の Weave プロジェクト URL を追加できる Streamlit の例を このリポジトリ で確認してください。