Skip to main content
これはインタラクティブなノートブックです。ローカルで実行するか、以下のリンクを使用できます。
このノートブックでは、W&B Weave サービス API を使用してトレースをログし、次の操作を行う方法を学びます。
  1. シンプルな LLM Call と応答のモックを作成し、Weave にログします。
  2. より複雑な LLM Call と応答のモックを作成し、Weave にログします。
  3. ログしたトレースに対してサンプルのルックアップクエリを実行します。
ログしたトレースを表示する このガイドのコードを実行して作成されたすべての Weave トレースを表示するには、Weave プロジェクト (team_id\project_id で指定) の Traces タブに移動し、トレースの名前を選択します。
始める前に、前提条件を済ませておいてください。

前提条件: 変数とエンドポイントを設定する

トレースをログする前に、サービス API のエンドポイントを設定し、W&B の認証情報で認証する必要があります。 次のコードは、サービス API へのアクセスに使用する URL エンドポイントを設定します。 また、次の変数を設定する必要があります。
  • project_id: トレースをログする Weights & Biases のプロジェクト名。
  • team_id: CoreWeave Forge のチーム名。
  • wandb_token: ご自身の W&B APIキー。

シンプルなトレース

以下のセクションでは、シンプルなトレースの作成方法について説明します:
  1. シンプルなトレースを開始する
  2. シンプルなトレースを終了する

シンプルなトレースを開始する

以下のコードは、サンプルの LLM Call payload_start を作成し、url_start エンドポイントを使用して Weave にログします。payload_start オブジェクトは、クエリ Why is the sky blue? で OpenAI の gpt-4o への Call を模倣します。 成功すると、このコードはトレースが開始されたことを示すメッセージを出力します:

シンプルなトレースを終了する

シンプルなトレースを完了するために、以下のコードはサンプル LLM Call payload_end を作成し、url_end エンドポイントを使用して Weave にログします。payload_end オブジェクトは、クエリ Why is the sky blue? に対する OpenAI の gpt-4o からの応答を模倣しています。このオブジェクトは、pricing summary information とチャット補完が Weave ダッシュボードのトレースビューで生成されるようにフォーマットされています。 成功すると、このコードはトレースが完了したことを示すメッセージを出力します:

複雑なトレース

シンプルな単一ステップのトレースをログしたので、以下のセクションでは、複数操作の RAG ルックアップに似た、子スパンを持つより複雑なトレースの作成方法をご案内します。
  1. 複雑なトレースを開始する
  2. RAG ドキュメント ルックアップ用の子スパンを追加する
  3. LLM 補完 Call 用の子スパンを追加する
  4. 複雑なトレースを終了する

複雑なトレースを開始する

以下のコードは、複数のスパンを持つより複雑なトレースを作成する方法を示しています。例として、Retrieval-Augmented Generation (RAG) のルックアップに続いて LLM Call を行うものがあります。最初の部分では、操作を表す親トレース (payload_parent_start) を初期化します。この場合、操作はユーザークエリ Can you summarize the key points of this document? を処理します。 payload_parent_start オブジェクトは、多段階のワークフローの初期ステップを模倣し、url_start エンドポイントを使用して Weave に操作をログします。 成功すると、このコードは親 Call がログされたことを示すメッセージを出力します:

RAG ドキュメント ルックアップ用の子スパンを追加

以下のコードは、前のステップで開始した複雑な親トレースに子スパンを追加する方法を示しています。このステップは、ワークフロー内の RAG ドキュメント ルックアップのサブ操作をモデル化します。 子トレースは、以下の内容を含む payload_child_start オブジェクトで開始されます:
  • trace_id: この子スパンを親トレースにリンクします。
  • parent_id: 子スパンを親操作に関連付けます。
  • inputs: 検索クエリをログします。例: "This is a search query of the documents I'm looking for."
url_start エンドポイントへの呼び出しが成功すると、コードは子 Call が開始および完了したことを示すメッセージを出力します:

LLM 補完 Call の子スパンを追加する

次のコードは、複雑な親トレースに、LLM 補完 Call を表す子スパンをもう 1 つ追加する方法を示しています。このステップでは、前の RAG 操作で取得したドキュメントのコンテキストに基づいて LLM が応答を生成する処理をモデル化します。 LLM 補完のトレースは、payload_child_start オブジェクトで開始します。このオブジェクトには次の項目が含まれます。
  • trace_id: この子スパンを親トレースにリンクします。
  • parent_id: 子スパンを親ワークフローに関連付けます。
  • inputs: ユーザーのクエリと、追加されたドキュメントのコンテキストを含む、LLM への入力メッセージをログします。
  • model: 操作に使用するモデル (gpt-4o) を指定します。
成功すると、LLM の子スパンのトレースが開始されたことを示すメッセージが出力されます。
操作が完了すると、payload_child_end オブジェクトは LLM が生成した応答を output フィールドにログして、トレースを終了します。また、このコードは使用量の要約情報もログします。 成功すると、LLM の子スパンのトレースが開始され、終了したことを示すメッセージが出力されます:

複雑なトレースを終了する

次のコードは、親トレースを確定し、ワークフローの完了を示す方法を説明します。このステップでは、すべての子スパン (たとえば、RAG ルックアップや LLM 補完) の結果を集約し、最終出力とメタデータをログします。 トレースは、次の内容を含む payload_parent_end オブジェクトを使用して確定されます。
  • id: 親トレースの開始時の parent_call_id です。
  • output: ワークフローの最終出力を表します。
  • summary: ワークフローの使用量データを集約します。
  • prompt_tokens: すべてのプロンプトで使用されたトークンの総数です。
  • completion_tokens: すべての応答で生成されたトークンの総数です。
  • total_tokens: ワークフロー全体のトークン数の合計です。
  • requests: 行われたリクエストの総数です (この場合は 1) 。
成功すると、コードは次の内容を出力します。

ルックアップクエリを実行する

トレースが Weave にログされていれば、サービス API を使用してプログラムでクエリできます。以下のコードは、前のサンプル で作成されたトレースをクエリする方法を示しており、inputs.model フィールドが gpt-4o に等しいトレースのみをフィルターします。 query_payload オブジェクトには以下が含まれます:
  • project_id: クエリする チーム と project を識別します。
  • filter: クエリが トレース のルート (top-level のトレース) のみを返すようにします。
  • query: $expr オペレーターを使用してフィルターロジックを定義します。
    • $getField: inputs.model フィールドを取得します。
    • $literal: inputs.model が "gpt-4o" に等しいトレースに一致します。
  • limit: クエリを 10,000 件の結果に制限します。
  • offset: 最初の結果からクエリを開始します。
  • sort_by: started_at タイムスタンプで結果を降順に並べ替えます。
  • include_feedback: 結果からフィードバックデータを除外します。
クエリが成功すると、応答にはクエリパラメーターに一致するトレースデータが含まれます:
最終更新日 2026年9月30日