メインコンテンツへスキップ

Ops

Op は、バージョン管理され、トラッキングされる関数です。関数を @weave.op() (Python) でデコレートするか、weave.op() (TypeScript) でラップすると、Weave はそのコード、入力、出力、実行メタデータを自動的に記録します。Ops は、トレース、評価スコアラー、およびトラッキング対象のあらゆる計算の基本構成要素です。
    @weave.op
    async def my_function(){
      ...  }

Calls

Call は、Op の実行をログしたものです。Op が実行されるたびに、Weave は次の情報を記録する Call を作成します。
  • 入力引数
  • 出力値
  • 実行タイミングとレイテンシ
  • 親子関係 (ネストされた Call の場合)
  • 発生したエラー
Calls は Weave UI では トレース として表示され、デバッグ、分析、評価のためのデータを提供します。Call オブジェクトの完全な構造とプロパティについては、Call スキーマリファレンスを参照してください。 Calls は、OpenTelemetry のデータモデルにおけるスパンに似ています。Call には次の特徴があります。
  • Trace に属する (同じ実行コンテキスト内にある複数の Call の collection)
  • 親 Call と子 Call を持ち、ツリー構造を形成する

トレース

トレースは、同じ実行コンテキストを共有する Call の完全なツリー構造です。各トレースには ID (trace_id) が含まれており、これを使用して Call ツリー全体を取得できます。Call の情報をその id のみを使って取得した場合、返されるのは指定した Call に関するデータだけであり、その子 Call のデータは含まれません。

スレッド

スレッドは、単一のセッションまたは会話に関連するトレースの集合です。スレッドを使用すると、個々の Call ではなく、[会話全体]をひとまとまりとして分析またはスコアリングできます。 次の図は、スレッド、トレース、Call の関係を示しています。
Thread: "session-abc"
  ├── Turn 1 (trace_id: aaa) → user says "Hi"
  │     ├── LLM call
  │     └── format response
  ├── Turn 2 (trace_id: bbb) → user says "What is the capitol of Paris?"
  │     ├── RAG retrieval
  │     ├── LLM call
  │     └── format response
  └── Turn 3 (trace_id: ccc) → user says "Thanks"
        └── LLM call