これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクを使用できます:
サードパーティシステムからのトレースのインポート
場合によっては、Weaveの簡単な統合を使用してPythonやJavascriptコードを計測し、GenAIアプリケーションのリアルタイムトレースを取得することができないことがあります。多くの場合、これらのトレースは後で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に設定します。
NOTE: name_of_wandb_projectは{team_name}/{project_name}の形式でもよく、トレースをログに記録するチームを指定します。
次に、weave.init()
データの読み込み
データをPandasデータフレームに読み込み、conversation_idとturn_indexで並べ替えて、親と子が正しく順序付けられていることを確認します。
これにより、会話のターンがconversation_dataの下に配列として含まれる2列のpandas DFが生成されます。
トレースをWeaveにログ記録する
ここでpandas DFを反復処理します:- すべての
conversation_id - ターン配列を反復処理して、
turn_index
- Weave callはWeaveトレースと同等であり、このcallには関連する親または子がある場合があります
- Weave callには他のものも関連付けることができます:フィードバック、メタデータなど。ここでは入力と出力のみを関連付けていますが、データが提供する場合は、インポート時にこれらのものを追加することもできます。
- weave callは
createdおよびfinishedされます。これらはリアルタイムで追跡されることを意図しています。これは事後のインポートであるため、オブジェクトが定義され互いに結び付けられたら、作成して終了します。 - callの
op値は、Weaveが同じ構成のcallをどのように分類するかです。この例では、すべての親callはConversationタイプで、すべての子callはTurnタイプです。これは必要に応じて変更できます。 - callには
inputsとoutputがあります。inputsは作成時に定義され、outputはcallが終了したときに定義されます。