メインコンテンツへスキップ
これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクを使用できます:

サードパーティシステムからのトレースのインポート

場合によっては、Weaveの簡単な統合を使用してPythonやJavascriptコードを計測し、GenAIアプリケーションのリアルタイムトレースを取得することができないことがあります。多くの場合、これらのトレースは後でcsvまたはjson形式で利用可能になります。 このクックブックでは、より低レベルのWeave Python APIを探索して、CSVファイルからデータを抽出し、Weaveにインポートして洞察と厳密な評価を行います。 このクックブックで想定されているサンプルデータセットは、以下の構造を持っています:
このクックブックでのインポートの決定を理解するには、Weaveトレースには1対多の継続的な親子関係があることを知っておく必要があります。つまり、1つの親は複数の子を持つことができますが、その親自体が別の親の子である可能性もあります。 したがって、私たちはconversation_idを親識別子として、turn_indexを子識別子として使用し、完全な会話ログを提供します。 必要に応じて変数を変更してください。

環境のセットアップ

必要なパッケージをすべてインストールしてインポートします。 環境にWANDB_API_KEYを設定して、wandb.login()で簡単にログインできるようにします(これはcolabに秘密として与えられるべきです)。 colabにアップロードするファイルの名前をname_of_fileに設定し、これをログに記録したいW&Bのプロジェクトをname_of_wandb_projectに設定します。 NOTE: name_of_wandb_project{team_name}/{project_name}の形式でもよく、トレースをログに記録するチームを指定します。 次に、weave.init()

データの読み込み

データをPandasデータフレームに読み込み、conversation_idturn_indexで並べ替えて、親と子が正しく順序付けられていることを確認します。 これにより、会話のターンがconversation_dataの下に配列として含まれる2列のpandas DFが生成されます。

トレースをWeaveにログ記録する

ここでpandas DFを反復処理します:
  • すべてのconversation_id
  • ターン配列を反復処理して、turn_index
低レベルPython APIの重要な概念:
  • Weave callはWeaveトレースと同等であり、このcallには関連する親または子がある場合があります
  • Weave callには他のものも関連付けることができます:フィードバック、メタデータなど。ここでは入力と出力のみを関連付けていますが、データが提供する場合は、インポート時にこれらのものを追加することもできます。
  • weave callはcreatedおよびfinishedされます。これらはリアルタイムで追跡されることを意図しています。これは事後のインポートであるため、オブジェクトが定義され互いに結び付けられたら、作成して終了します。
  • callのop値は、Weaveが同じ構成のcallをどのように分類するかです。この例では、すべての親callはConversationタイプで、すべての子callはTurnタイプです。これは必要に応じて変更できます。
  • callにはinputsoutputがあります。inputsは作成時に定義され、outputはcallが終了したときに定義されます。

Result: Traces are Logged to Weave

Traces: image.png Operations: image.png

Bonus: Export your traces to run rigorous evaluations!

トレースがWeaveに入り、会話がどのように見えるかを理解したら、後でそれらを別のプロセスにエクスポートしてWeave Evaluationsを実行したい場合があります image.png これを行うには、シンプルなクエリAPIを通じてW&Bからすべての会話を取得し、そこからデータセットを作成します。

結果

image.png 評価についてもっと学ぶには、クイックスタートをチェックして、新しく作成したデータセットを使用してRAGアプリケーションを評価しましょう!