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

API の概要


ソースコード

class FlushStatus

現在実行中のフラッシュ処理に関するステータス情報。
ソースコード

class PendingJobCounts

ジョブタイプごとの保留中ジョブ数。
ソースコード

class WeaveClient

ソースコード

メソッド __init__

__init__(
    entity: 'str',
    project: 'str',
    server: 'TraceServerInterface',
    ensure_project_exists: 'bool' = True
)

property num_outstanding_jobs

すべての executor およびサーバーに存在する保留中ジョブの合計数を返します。 このプロパティは、メインスレッドをブロックせずにバックグラウンドタスクの進捗状況を確認するために使用できます。 戻り値:
  • int: 保留中ジョブの合計数

ソースコード

method add_cost

add_cost(
    llm_id: 'str',
    prompt_token_cost: 'float',
    completion_token_cost: 'float',
    effective_date: 'datetime | None' = None,
    prompt_token_cost_unit: 'str | None' = 'USD',
    completion_token_cost_unit: 'str | None' = 'USD',
    provider_id: 'str | None' = 'default'
) → CostCreateRes
現在のプロジェクトにコストを追加します。 例:
client.add_cost(llm_id="my_expensive_custom_model", prompt_token_cost=1, completion_token_cost=2)
client.add_cost(llm_id="my_expensive_custom_model", prompt_token_cost=500, completion_token_cost=1000, effective_date=datetime(1998, 10, 3))
引数:
  • llm_id: LLM の ID。例 “gpt-4o-mini-2024-07-18”
  • prompt_token_cost: プロンプトトークン 1 個あたりのコスト。例 .0005
  • completion_token_cost: 完了トークン 1 個あたりのコスト。例 .0015
  • effective_date: デフォルトは現在の日付。datetime.datetime オブジェクト。
  • provider_id: LLM のプロバイダ。デフォルトは “default”。例 “openai”
  • prompt_token_cost_unit: プロンプトトークンのコストの単位。デフォルトは “USD”。(現在は未使用。将来的に、コストの単位種別(例: “tokens” や “time”)を指定するために使用予定)
  • completion_token_cost_unit: 完了トークンのコストの単位。デフォルトは “USD”。(現在は未使用。将来的に、コストの単位種別(例: “tokens” や “time”)を指定するために使用予定) 戻り値: CostCreateRes オブジェクト。ids という名前のフィールドを 1 つだけ持ち、タプルのリストになっている。各タプルは llm_id と、作成されたコストオブジェクトの id を含む。

ソースコード

method clear_wandb_run_context

clear_wandb_run_context() → None
wandb run コンテキストのオーバーライドをクリアします。 これを呼び出すと、その後の呼び出しでは、(利用可能であれば)グローバルな wandb.run が run_id と step 情報の取得に使用されるようにフォールバックします。 例:
client = weave.init("my-project")
client.set_wandb_run_context(run_id="my-run-id", step=5)
# ... いくつかの呼び出しを行う ...
client.clear_wandb_run_context()
# これ以降の呼び出しはグローバルの wandb.run を再び使用する

ソースコード

メソッド create_call

create_call(
    op: 'str | Op',
    inputs: 'dict[str, Any]',
    parent: 'Call | None' = None,
    attributes: 'dict[str, Any] | None' = None,
    display_name: 'str | Callable[[Call], str] | None' = None,
    use_stack: 'bool' = True,
    _call_id_override: 'str | None' = None
) → Call
ランタイムスタック上に Call を作成し、ログに記録してプッシュします。 Args:
  • op: Call を生成するオペレーション、または匿名オペレーションの名前。
  • inputs: オペレーションへの入力。
  • parent: 親 Call。parent が指定されていない場合は、現在の run が親として使用されます。
  • display_name: Call の表示名。デフォルトは None。
  • attributes: Call の属性。デフォルトは None。
  • use_stack: Call をランタイムスタックにプッシュするかどうか。デフォルトは True。 Returns: 作成された Call オブジェクトを返します。

ソースコード

method delete_all_object_versions

delete_all_object_versions(object_name: 'str') → int
オブジェクトのすべてのバージョンを削除します。 引数:
  • object_name: バージョンを削除する対象のオブジェクト名。 戻り値: 削除されたバージョン数。

ソースコード

method delete_all_op_versions

delete_all_op_versions(op_name: 'str') → int
指定された op のすべてのバージョンを削除します。 引数:
  • op_name: バージョンを削除する対象の op の名前。 戻り値: 削除されたバージョン数。

ソースコード

method delete_call

delete_call(call: 'Call') → None

ソースコード

method delete_calls

delete_calls(call_ids: 'list[str]') → None
ID で呼び出しを削除します。 呼び出しを削除すると、そのすべての子呼び出しも削除されます。 引数:
ソースコード

method delete_object_version

delete_object_version(object: 'ObjectRef') → None

ソースコード

method delete_object_versions

delete_object_versions(object_name: 'str', digests: 'list[str]') → int
オブジェクトの特定のバージョンを削除します。
  • call_ids: 削除する呼び出し ID のリスト。例: [“2F0193e107-8fcf-7630-b576-977cc3062e2e”] 引数:
  • object_name: バージョンを削除する対象オブジェクトの名前。
  • digests: 削除するダイジェストのリスト。“latest” や “v0” のようなエイリアスを含めることができます。 戻り値: 削除されたバージョンの数。

ソースコード

メソッド delete_op_version

delete_op_version(op: 'OpRef') → None

ソースコード

method fail_call

fail_call(call: 'Call', exception: 'BaseException') → None
例外を発生させて呼び出しを失敗として終了させます。これは finish_call のためのヘルパーメソッドです。
ソースコード

method finish

finish(
    use_progress_bar: 'bool' = True,
    callback: 'Callable[[FlushStatus], None] | None' = None
) → None
すべてのバックグラウンドタスクをフラッシュし、確実に処理されるようにします。 このメソッドは、現在キューに入っているすべてのジョブが処理されるまでブロックし、保留中タスクの進行状況を示すプログレスバーを表示します。メインスレッドの実行中にも並列処理を行えるようにし、ユーザーコードの実行がデータのサーバー送信よりも先に完了する場合にパフォーマンスを改善できます。 Args:
ソースコード

method finish_call

finish_call(
    call: 'Call',
    output: 'Any' = None,
    exception: 'BaseException | None' = None,
    op: 'Op | None' = None
) → None
呼び出しを確定し、その結果を永続化します。 call.summary に含まれている値は、計算された要約統計量(例:使用量やステータスのカウント)とディープマージされてから、データベースに書き込まれます。
ソースコード

メソッド flush

flush() → None
バックグラウンドで実行中の非同期タスクをフラッシュします。複数回呼び出しても安全です。
ソースコード

メソッド get

get(ref: 'ObjectRef', objectify: 'bool' = True) → Any

ソースコード

method get_call

get_call(
    call_id: 'str',
    include_costs: 'bool' = False,
    include_feedback: 'bool' = False,
    columns: 'list[str] | None' = None
) → WeaveObject
ID で指定された単一の呼び出しを取得します。
  • use_progress_bar: フラッシュ中にプログレスバーを表示するかどうか。プログレスバーが適切に表示されない環境(例: CI 環境)では False に設定します。
  • callback: ステータス更新を受け取るオプションのコールバック関数。use_progress_bar より優先されます。 引数:
  • call_id: 取得する呼び出しの ID。
  • include_costs: true の場合、cost 情報が summary.weave に含まれます。
  • include_feedback: true の場合、feedback 情報が summary.weave.feedback に含まれます。
  • columns: レスポンスに含めるカラムのリスト。None の場合、すべてのカラムが含まれます。指定するカラムを減らすと、より高いパフォーマンスが期待できます。次のカラムは常に含まれます: id, project_id, trace_id, op_name, started_at 戻り値: 呼び出しオブジェクト。

ソースコード

method get_calls

get_calls(
    filter: 'CallsFilterLike | None' = None,
    limit: 'int | None' = None,
    offset: 'int | None' = None,
    sort_by: 'list[SortByLike] | None' = None,
    query: 'QueryLike | None' = None,
    include_costs: 'bool' = False,
    include_feedback: 'bool' = False,
    include_storage_size: 'bool' = False,
    include_total_storage_size: 'bool' = False,
    columns: 'list[str] | None' = None,
    expand_columns: 'list[str] | None' = None,
    return_expanded_column_values: 'bool' = True,
    scored_by: 'str | list[str] | None' = None,
    page_size: 'int' = 1000
) → CallsIter
このプロジェクトのトレースされた呼び出し(オペレーション)の一覧を取得します。 このメソッドは、トレースデータをクエリするための強力で柔軟なインターフェースを提供します。ページネーション、フィルタリング、ソート、フィールドの射影、スコアリング用メタデータをサポートしており、カスタムのトレース UI や分析ツールの基盤として利用できます。 パフォーマンス上のヒント: columns を指定し、filter または query を使用して結果サイズを削減してください。 引数:
  • filter: op_nameparent_ids などのフィールドで結果を絞り込むための高レベルフィルタ。
  • limit: 返す呼び出しの最大件数。
  • offset: 結果を返す前にスキップする呼び出しの件数(ページネーションに使用)。
  • sort_by: 結果をソートするフィールドのリスト(例: started_at desc)。
  • query: 高度なフィルタリングのための Mongo 風の式。すべての Mongo 演算子がサポートされているわけではありません。
  • include_costs: True の場合、summary.weave にトークン/コスト情報を含めます。
  • include_feedback: True の場合、summary.weave.feedback にフィードバックを含めます。
  • include_storage_size: True の場合、呼び出しのストレージサイズを含めます。
  • include_total_storage_size: True の場合、トレース全体のストレージサイズ合計を含めます。
  • columns: 呼び出しごとに返すフィールドのリスト。これを減らすとパフォーマンスを大幅に向上できます(idtrace_idop_namestarted_at など一部のフィールドは常に含まれます)。
  • scored_by: 1 つ以上の scorer(名前または ref URI)でフィルタします。複数の scorer は AND 条件になります。
  • page_size: 1 ページあたりに取得する呼び出し数。大規模なクエリではパフォーマンス向上のために調整してください。
戻り値:
  • CallsIter: Call オブジェクトに対するイテレータ。スライス、反復、および .to_pandas() をサポートします。
例:
calls = client.get_calls(
     filter=CallsFilter(op_names=["my_op"]),
     columns=["inputs", "output", "summary"],
     limit=100,
)
for call in calls:
     print(call.inputs, call.output)

ソースコード

メソッド get_evaluation

get_evaluation(uri: 'str') → Evaluation
URI を指定して特定の Evaluation オブジェクトを取得します。 Evaluation の URI は通常、次の形式に従います: weave:///entity/project/object/Evaluation:version “フレンドリー”な名前で Evaluation を取得することもできます: get_evaluation(“Evaluation:v1”) Args:
  • uri (str): 取得する Evaluation の一意のリソース識別子。
Returns:
  • Evaluation: 指定された URI に対応する Evaluation オブジェクト。
Raises:
  • TypeError: URI で指定されるオブジェクトが Evaluation インスタンスではない場合。
  • ValueError: URI が無効であるか、オブジェクトが見つからない場合。
Examples:
client = weave.init("my-project")
evaluation = client.get_evaluation("weave:///entity/project/object/my-eval:v1")
print(evaluation.name)

ソースコード

メソッド get_evaluations

get_evaluations() → list[Evaluation]
現在のプロジェクトから、すべての Evaluation オブジェクトを取得します。 戻り値:
  • list[Evaluation]: 現在のプロジェクト内のすべての Evaluation オブジェクトのリスト。評価が見つからない場合、またはすべての変換に失敗した場合は空リストになります。
使用例:
client = weave.init("my-project")
evaluations = client.get_evaluations()
print(f"Found {len(evaluations)} evaluations")
for eval in evaluations:
     print(f"Evaluation: {eval.name}")

ソースコード

method get_feedback

get_feedback(
    query: 'Query | str | None' = None,
    reaction: 'str | None' = None,
    offset: 'int' = 0,
    limit: 'int' = 100
) → FeedbackQuery
プロジェクトからフィードバックをクエリします。 例:
# 特定のフィードバックオブジェクトを取得する。
# これはコレクションを返すことに注意。コレクションには
# 0件または1件のアイテムが含まれることが想定される。
client.get_feedback("1B4082A3-4EDA-4BEB-BFEB-2D16ED59AA07")

# 特定のリアクションを持つすべてのフィードバックオブジェクトを検索する。
client.get_feedback(reaction="👍", limit=10)

# mongoスタイルのクエリを使用して、特定のフィードバックタイプを持つ
# すべてのフィードバックオブジェクトを検索する。
from weave.trace_server.interface.query import Query

query = Query(
    **{
        "$expr": {
            "$eq": [
                {"$getField": "feedback_type"},
                {"$literal": "wandb.reaction.1"},
            ],
        }
    }
)
client.get_feedback(query=query)
引数:
  • query: Mongo 形式のクエリ式。便利のため、feedback の UUID 文字列も指定できます。
  • reaction: 便利のため、特定のリアクション絵文字でフィルタするための値。
  • offset: feedback オブジェクトの取得を開始する位置を示すオフセット。
  • limit: 取得する feedback オブジェクトの最大数。 戻り値: FeedbackQuery オブジェクト。

ソースコード

メソッド purge_costs

purge_costs(ids: 'list[str] | str') → None
現在のプロジェクトからコストを削除します。 例:
client.purge_costs([ids])
client.purge_costs(ids)
引数:
ソースコード

メソッド query_costs

query_costs(
    query: 'Query | str | None' = None,
    llm_ids: 'list[str] | None' = None,
    offset: 'int' = 0,
    limit: 'int' = 100
) → list[CostQueryOutput]
プロジェクトのコスト情報を取得します。
  • ids: 削除するコスト ID。単一の ID または ID のリストを指定できます。 例:
# 特定のコストオブジェクトを取得する。
# これはコレクションを返すことに注意。ゼロまたは1件の
# アイテムが含まれることが想定される。
client.query_costs("1B4082A3-4EDA-4BEB-BFEB-2D16ED59AA07")

# 特定のreactionを持つすべてのコストオブジェクトを検索する。
client.query_costs(llm_ids=["gpt-4o-mini-2024-07-18"], limit=10)
引数:
  • query: Mongo 形式のクエリ式。利便性のため、cost の UUID 文字列も受け付けます。
  • llm_ids: 利便性のため、指定した llm_ids の集合でフィルタリングします。
  • offset: cost オブジェクトの取得を開始するオフセット。
  • limit: 取得する cost オブジェクトの最大数。 戻り値: CostQuery オブジェクト。

ソースコード

method save

save(val: 'Any', name: 'str', branch: 'str' = 'latest') → Any
このメソッドを直接呼び出さず、代わりに weave.publish() を使用してください。 引数:
  • val: 保存するオブジェクト。
  • name: オブジェクトを保存する際の名前。
  • branch: オブジェクトを保存するブランチ。デフォルトは「latest」。
戻り値: 保存されたオブジェクトのデシリアライズ済みバージョン。
ソースコード

method set_wandb_run_context

set_wandb_run_context(run_id: 'str', step: 'int | None' = None) → None
このクライアントが作成する call に対して、wandb の run_id と step を上書きします。 これにより、グローバルな wandb.run シンボルに紐付いていない特定の W&B の run に Weave の call を関連付けることができます。 引数:
  • run_id: run の ID(entity/project プレフィックスを含まない)。クライアントが自動的に entity/project プレフィックスを付与します。
  • step: call に使用する step 番号。None の場合、step は設定されません。
使用例:
client = weave.init("my-project")
client.set_wandb_run_context(run_id="my-run-id", step=5)
# これ以降のすべての呼び出しは、ステップ5のentity/project/my-run-idに関連付けられます

# ステップを指定しない場合
client.set_wandb_run_context(run_id="my-run-id")
# 呼び出しはステップなしでentity/project/my-run-idに関連付けられます

ソースコード

function get_obj_name

get_obj_name(val: 'Any') → str

ソースコード

function get_parallelism_settings

get_parallelism_settings() → tuple[int | None, int | None]

ソースコード

function map_to_refs

map_to_refs(obj: 'Any') → Any

ソースコード
print_call_link(call: 'Call') → None

ソースコード

function redact_sensitive_keys

redact_sensitive_keys(obj: 'Any') → Any

ソースコード

function sanitize_object_name

sanitize_object_name(name: 'str') → str