> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Call スキーマリファレンス

> Call オブジェクトの構造とプロパティのリファレンス

このリファレンスでは、W\&B Weave の Call オブジェクトスキーマについて説明します。プロパティ、実行中に `summary` 辞書にカスタムデータを書き込む方法、Call 完了後にサマリーデータを読み取る方法を含みます。Weave が各 Call に対して記録するデータを検査、フィルター、または拡張する必要がある場合にこのページを使用してください。Call のクエリについては、[Query and export calls](/ja/products/wandb/weave/guides/tracking/querying-calls) を参照してください。

<h2 id="call-properties">
  Call のプロパティ
</h2>

次の表は、Weave における Call の主なプロパティをまとめたものです。完全な実装については、以下を参照してください。

* Python SDK の [class: CallSchema](/ja/products/wandb/weave/reference/python-sdk/trace_server/trace_server_interface#class-callschema)
* TypeScript SDK の [Interface: CallSchema](/ja/products/wandb/weave/reference/typescript-sdk/interfaces/callschema)

| プロパティ | タイプ | 説明 |
| - | - | - |
| `id` | string (uuid) | Call の一意の ID |
| `project_id` | string (optional) | 関連付けられた project の ID |
| `op_name` | string | 操作名 (参照の場合もあります) |
| `display_name` | string (optional) | Call のわかりやすい表示名 |
| `trace_id` | string (uuid) | この Call が属するトレースの ID |
| `parent_id` | string (uuid) | 親 Call の ID |
| `started_at` | datetime | Call の開始タイムスタンプ |
| `attributes` | Dict\[str, Any] | Call に関するユーザー定義のメタデータ *(実行中は読み取り専用)* |
| `inputs` | Dict\[str, Any] | Call の入力パラメーター |
| `ended_at` | datetime (optional) | Call の終了タイムスタンプ |
| `exception` | string (optional) | Call が失敗した場合のエラーメッセージ |
| `output` | Any (optional) | Call の結果 |
| `summary` | Optional\[SummaryMap] | 実行後のサマリー情報。実行中に変更して、カスタムメトリクスを記録することもできます。 |
| `wb_user_id` | Optional\[str] | 関連付けられた W\&B ユーザー ID |
| `wb_run_id` | Optional\[str] | 関連付けられた W\&B Run ID |
| `deleted_at` | datetime (optional) | Call の削除タイムスタンプ (該当する場合) |

<h2 id="property-details">
  プロパティの詳細
</h2>

`CallSchema` のプロパティは Call のトラッキングと管理に役立ちます:

* `id`、`trace_id`、`parent_id` の各プロパティは、システム内で Call を整理し、関連付けるのに役立ちます。
* タイミング情報 (`started_at`、`ended_at`) はパフォーマンス分析をサポートします。
* `attributes` と `inputs` の各プロパティは Call のコンテキストを提供します。属性は Call の開始後に固定されるため、`weave.attributes()` コンテキストマネージャーを使用して呼び出し前に設定してください。`output` と `summary` は結果を取得します。
* `wb_user_id` と `wb_run_id` を使用して、Call を W\&B のユーザーおよび run にリンクします。

これらのプロパティは、project 全体で Call の詳細なトラッキングと分析をサポートします。

<h2 id="use-call-summary">
  Call summary の使用
</h2>

`summary` プロパティを使用して、Call に custom の実行後データを attach し、後で Weave の組み込み metrics と一緒に分析できるようにします。これは、Call の実行中に書き込める dictionary です。Call が完了すると、Weave はあなたの値を独自の computed data と深くマージして結果を保存します。

dictionary には 2 つのゾーンがあります。

* Your custom keys: `call.summary` に直接書き込むもの、例えば `call.summary["accuracy"] = 0.95` など。これらは summary dict の最上位レベルに位置します。
* `summary["weave"]`: Call 完了時に Weave が自動的に入力する予約済み namespace です。このキーに直接書き込まないでください。

Weave はまた、モデル応答から生の LLM token counts を `summary["usage"]` で取得します (モデル名でキー付け)。これはプロバイダーから渡される source データであり、Weave の計算ではありません。`summary["weave"]` 内の `costs` フィールドは、Weave がその usage データから token pricing を使用して導出するものです。

`summary["weave"]` 内の Weave の computed fields:

| Field | Description |
| - | - |
| `status` | 実行ステータス: `SUCCESS`、`ERROR`、`RUNNING`、または `DESCENDANT_ERROR` (Call は成功しましたが、子 Call でエラーが発生しました)。 |
| `latency_ms` | `started_at` と `ended_at` の間のミリ秒単位の期間。`status` が `RUNNING` の場合は `null` です。 |
| `costs` | モデルごとのコスト内訳で、`summary["usage"]` と token pricing データから導出されます。[Track costs](/ja/products/wandb/weave/guides/tracking/costs) を参照してください。 |
| `trace_name` | human-readable な Op 名で、内部 Op reference URI から解析されます。表示と filtering に使用されます。 |

<h3 id="write-during-a-call">
  Call 中に書き込む
</h3>

`summary` 辞書を使用して Call 中に custom データ値を追加できます。

<Tabs>
  <Tab title="Python">
    Python では、`weave.get_current_call()` を使用して実行中の任意の時点で `call.summary` に値を assign できます。

    ```python lines theme={"system"}
    import weave

    @weave.op()
    def my_op(x):
        result = do_work(x)
        call = weave.get_current_call()
        # summary に custom データ値を追加します。
        call.summary["accuracy"] = 0.95
        call.summary["num_retries"] = 2
        return result
    ```
  </Tab>

  <Tab title="TypeScript">
    TypeScript では、`op()` のオプションとして `summarize` 関数を指定します。この関数は最終的な結果を受け取り、Call 完了時に サマリーデータ を返します。

    ```typescript twoslash lines theme={"system"}
    // @noErrors
    const myOp = weave.op(
      async (x: any) => {
        const result = await doWork(x);
        return result;
      },
      {
        name: 'my_op',
        summarize: (result) => ({
          accuracy: result.accuracy,
          numRetries: result.numRetries,
        }),
      }
    );
    ```
  </Tab>
</Tabs>

<h3 id="read-summary-data">
  サマリーデータの読み取り
</h3>

`getCall` を使用して ID で単一の Call を取得するか、`getCalls` を使用して複数の Call を取得します。どちらの場合も、`summary` は同じマージされた辞書です。

<Tabs>
  <Tab title="Python">
    ```python lines theme={"system"}
    import weave
    client = weave.init("my-team/my-project")

    # ID で単一の Call を取得します。
    call = client.get_call("[CALL-ID]")
    weave_summary = (call.summary or {}).get("weave", {})

    print(weave_summary.get("status"))       # TraceStatus enum: SUCCESS, ERROR, RUNNING, または DESCENDANT_ERROR。
    print(weave_summary.get("latency_ms"))   # Call が実行中の場合は null。
    print(weave_summary.get("costs"))        # モデルごとのコスト内訳。
    print(call.summary.get("usage"))         # LLM プロバイダーからの生トークン数。
    print(call.summary.get("accuracy"))      # カスタムフィールド。

    # サーバー側フィルターで複数の Call を反復処理します。
    for call in client.get_calls(filter={"op_names": ["weave:///my-team/my-project/op/my_op:*"]}):
        s = call.summary or {}
        weave_s = s.get("weave", {})
        print(call.id, weave_s.get("status"), weave_s.get("latency_ms"), s.get("accuracy"))
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript twoslash lines theme={"system"}
    // @noErrors
    import * as weave from 'weave';
    const client = await weave.init('my-team/my-project');

    // ID で単一の Call を取得します。
    const call = await client.getCall('[CALL-ID]');
    const weaveSummary = call.summary?.weave;

    console.log(weaveSummary?.status);       // "success", "error", "running", または "descendant_error"。
    console.log(weaveSummary?.latency_ms);   // Call が実行中の場合は undefined。
    console.log(weaveSummary?.costs);        // モデルごとのコスト内訳。
    console.log(call.summary?.usage);        // LLM プロバイダーからの生トークン数。
    console.log(call.summary?.accuracy);     // カスタムフィールド。

    // サーバー側フィルターで複数の Call を取得します。
    const calls = await client.getCalls({ filter: { op_names: ['weave:///my-team/my-project/op/my_op:*'] } });
    for (const call of calls) {
      const weaveS = call.summary?.weave;
      console.log(call.id, weaveS?.status, weaveS?.latency_ms, call.summary?.accuracy);
    }
    ```
  </Tab>
</Tabs>


## Related topics

- [Call のクエリするとエクスポート](/ja/products/wandb/weave/guides/tracking/querying-calls.md)
