これはインタラクティブなノートブックです。ローカルで実行するか、次のリンクから利用できます:
サードパーティシステムから Traces をインポートする
csv や json 形式で利用可能になります。
このクックブックでは、より低レベルな Weave Python API を用いて CSV ファイルからデータを抽出し、インサイトの獲得と厳密な評価のために Weave にインポートする方法を説明します。
このクックブックで想定しているサンプルデータセットは、次のような構造になっています。
conversation_id を、子の識別子として turn_index を使用します。
必要に応じて変数を変更してください。
環境をセットアップする
WANDB_API_KEY を環境変数に設定し、wandb.login() で簡単にログインできるようにします(これは Colab にシークレットとして設定されている必要があります)。
Colab にアップロードするファイル名を name_of_file に設定し、W&B 上でログを記録したいプロジェクトを name_of_wandb_project に設定します。
注意: name_of_wandb_project は、トレースをログするチームを指定するために {team_name}/{project_name} という形式にすることもできます。
その後、weave.init() を呼び出して Weave クライアントを取得します。
データの読み込み
conversation_id と turn_index でソートして、親子関係が正しい順序になるようにします。
これにより、会話のターンが配列として conversation_data 列に格納された、2 列構成の Pandas DataFrame が得られます。
Weave にトレースを記録する
- 各
conversation_idごとに親 call を作成します turn_indexでソートされた子 call を作成するために、turn 配列をイテレートします
- Weave の call は Weave の trace と同義であり、この call には親や子が関連付けられている場合があります
- Weave の call には、Feedback や Metadata などの情報を関連付けることもできます。ここでは inputs と outputs だけを関連付けていますが、データに含まれている場合はインポート時にこれらを追加することもできます。
- Weave の call はリアルタイムに追跡されることを想定して
createdおよびfinishedされます。今回は事後インポートであるため、オブジェクトが定義され互いに関連付けられた段階で、create と finish をそれぞれ 1 回ずつ行います。 - call の
op値は、Weave が同じ構造の call をカテゴリ分けするために使用します。この例では、すべての親 call はConversation型であり、すべての子 call はTurn型です。必要に応じて変更できます。 - call には
inputsとoutputを持たせることができます。inputsは作成時に定義し、outputは call が終了したときに定義します。
結果: トレースが Weave に記録されています


ボーナス: トレースをエクスポートして厳密な評価を行おう!

結果
