これはインタラクティブなノートブックです。ローカルで実行することも、以下のリンクを使用することもできます。
サードパーティシステムからトレースをインポート
csv または json 形式で入手できることがよくあります。
このクックブックでは、より低レベルな Weave Python API を使って CSV ファイルからデータを抽出し、Weave にインポートして、洞察の獲得や厳密な評価に役立てる方法を紹介します。
このクックブックで前提とするサンプルデータセットは、次の構造になっています。
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 クライアントを取得します
データの読み込み
conversation_id と turn_index でソートします。
その結果、各会話ターンが conversation_data に配列として格納された、2 列の pandas DF になります。
トレースを Weave にログする
conversation_idごとに親 call を作成しますturn_indexでソートされた turn 配列を順に処理して、子 call を作成します
- Weave の call は Weave のトレースに相当し、この call には親や子を関連付けることができます
- Weave の call には、Feedback や Metadata など、ほかの情報を関連付けることもできます。ここでは inputs と outputs のみを関連付けていますが、データにそれらが含まれている場合は、import 時に追加するとよいでしょう。
- Weave の call には
createdとfinishedがあります。これはリアルタイムでトラッキングすることを想定しているためです。今回は事後的な import なので、object を定義して相互に関連付けたあとで、作成と完了をまとめて行います。 - call の
op値は、Weave が同じ構成の call を分類するためのものです。この例では、すべての親 call はConversationタイプ、すべての子 call はTurnタイプです。必要に応じて変更できます。 - call には
inputsとoutputを持たせることができます。inputsは作成時に定義し、outputは call の完了時に定義します。
結果: トレースが Weave にログされる


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

結果
