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

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

場合によっては、GenAI アプリケーションのリアルタイムのトレースを取得するために、Weave のシンプルなインテグレーションを Python や JavaScript のコードに組み込めないことがあります。そうした場合でも、後からそれらのトレースを csv または json 形式で入手できることがよくあります。 このクックブックでは、より低レベルな Weave Python API を使って CSV ファイルからデータを抽出し、Weave にインポートして、洞察の獲得や厳密な評価に役立てる方法を紹介します。 このクックブックで前提とするサンプルデータセットは、次の構造になっています。
このクックブックでのインポート時の判断を理解するには、Weaveのトレースが 1:多 の連続した親子関係を持つことを知っておく必要があります。つまり、1 つの親に複数の子を持たせることができ、その親自体が別の親の子になる場合もあります。 そのため、会話全体のloggingを行えるよう、親の識別子として conversation_id を、子の識別子として turn_index を使用します。 必要に応じて変数を変更してください。

環境を設定する

必要なパッケージをすべてインストールし、インポートします。 wandb.login() で簡単にログインできるよう、環境変数に WANDB_API_KEY を設定します (これはシークレットとして colab に渡す必要があります) 。 name_of_file には colab にアップロードするファイル名を設定し、name_of_wandb_project にはこれをログする先の W&B のプロジェクトを設定します。 NOTE: name_of_wandb_project は、トレースのログ先となる Teams を指定するために、{team_name}/{project_name} の形式にすることもできます。 その後、weave.init() を呼び出して Weave クライアントを取得します

データの読み込み

データを Pandas の dataframe に読み込み、親子関係が正しい順序になるよう、conversation_idturn_index でソートします。 その結果、各会話ターンが conversation_data に配列として格納された、2 列の pandas DF になります。

トレースを Weave にログする

ここでは、pandas の DF をイテレートします。
  • conversation_id ごとに親 call を作成します
  • turn_index でソートされた turn 配列を順に処理して、子 call を作成します
低レベル Python API の重要な概念:
  • Weave の call は Weave のトレースに相当し、この call には親や子を関連付けることができます
  • Weave の call には、Feedback や Metadata など、ほかの情報を関連付けることもできます。ここでは inputs と outputs のみを関連付けていますが、データにそれらが含まれている場合は、import 時に追加するとよいでしょう。
  • Weave の call には createdfinished があります。これはリアルタイムでトラッキングすることを想定しているためです。今回は事後的な import なので、object を定義して相互に関連付けたあとで、作成と完了をまとめて行います。
  • call の op 値は、Weave が同じ構成の call を分類するためのものです。この例では、すべての親 call は Conversation タイプ、すべての子 call は Turn タイプです。必要に応じて変更できます。
  • call には inputsoutput を持たせることができます。inputs は作成時に定義し、output は call の完了時に定義します。

結果: トレースが Weave にログされる

トレース:
image.png
Operations:
image.png

おまけ: トレースをエクスポートして厳密な評価を行いましょう!

トレースが Weave に取り込まれ、会話の内容を把握できたら、後でそれらを別のプロセスにエクスポートして Weave の評価を実行できます。
image.png
これを行うには、シンプルなクエリ API を使って W&B からすべての会話を取得し、そこからデータセットを作成します。

結果

image.png
評価の詳細については、新しく作成したデータセットを使って RAG アプリケーションを評価する方法を紹介したクイックスタートをご覧ください。