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

API 概要


class CrossProjectRefError

クライアント側でダイジェストを計算する際に、内部 ID に解決できない別のプロジェクトへの ref に遭遇した場合に発生します。

class FlushStatus

現在のフラッシュ処理のステータス情報。

class NoInternalProjectIDError

内部プロジェクト ID がまだ解決されていないため、クライアント側でダイジェストを計算できない場合に発生します。

class PendingJobCounts

各タイプの保留中ジョブ数。

class WeaveClient

method __init__

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

プロパティ num_outstanding_jobs

すべてのエグゼキュータとサーバーにわたる、保留中のジョブの総数を返します。 このプロパティを使用すると、メインスレッドをブロックすることなく、バックグラウンドタスクの進行状況を確認できます。 戻り値:
  • 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: プロンプトトークンあたりのコスト。例: .0005
  • completion_token_cost: 補完トークンあたりのコスト。例: .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 add_tags

add_tags(obj_ref: 'ObjectRef | str', tags: 'list[str]') → None
object のバージョンに タグ を追加します。 引数:

method clear_wandb_run_context

clear_wandb_run_context() → None
wandb run コンテキストのオーバーライドをクリアします。 これを呼び出すと、Call は run_id と step の情報にグローバルな wandb.run (利用可能な場合) を使うようフォールバックします。
  • obj_ref: オブジェクトのバージョンへの参照です。ObjectRef または weave /// URI 文字列のいずれかです。
  • tags: 追加するタグ文字列のリスト。 例:
client = weave.init("my-project")
client.set_wandb_run_context(run_id="my-run-id", step=5)
# ... いくつかのcallsを実行 ...
client.clear_wandb_run_context()
# これ以降、callsはグローバルのwandb.runを使用する

method 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,
    started_at: 'datetime | None' = None
) → Call
Call を作成し、ログし、ランタイムスタックにプッシュします。 引数:
  • op: Call を生成する操作、または無名の操作の名前。
  • inputs: 操作への入力。
  • parent: 親 Call。parent が指定されていない場合は、現在の run が親として使用されます。
  • display_name: Call の表示名。デフォルトは None です。
  • attributes: Call の属性。デフォルトは None です。
  • use_stack: Call をランタイムスタックにプッシュするかどうか。デフォルトは True です。
  • started_at: Call の開始時刻を上書きします。None の場合は、現在時刻を使用します。 戻り値: 作成された 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 を指定して Call を削除します。 Call を削除すると、そのすべての子 Call も削除されます。 引数:

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: 削除する Call ID のリスト。例: [“2F0193e107-8fcf-7630-b576-977cc3062e2e”] 引数:
  • object_name: バージョンを削除する対象のオブジェクトの名。
  • digests: 削除する digest のリスト。“latest” や “v0” などのエイリアスを含めることができます。 戻り値: 削除されたバージョンの数。

method delete_op_version

delete_op_version(op: 'OpRef') → None

method fail_call

fail_call(call: 'Call', exception: 'BaseException') → None
例外を発生させて Call を失敗させます。これは finish_call のための簡易 method です。

method finish

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

method finish_call

finish_call(
    call: 'Call',
    output: 'Any' = None,
    exception: 'BaseException | None' = None,
    op: 'Op | None' = None,
    ended_at: 'datetime | None' = None
) → None
Call を完了し、その結果を永続化します。 call.summary に含まれる値は、データベースに書き込まれる前に、計算された summary 統計 (使用量やステータスのカウントなど) とディープマージされます。

method flush

flush() → None
バックグラウンドで実行中の非同期タスクをフラッシュします。複数回呼び出しても問題ありません。

method get

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

method get_aliases

get_aliases(obj_ref: 'ObjectRef | str') → list[str]
オブジェクトバージョンのエイリアスを取得します。
  • use_progress_bar: flush 時にプログレスバーを表示するかどうか。プログレスバーが適切に表示されない環境 (例: CI 環境) では、False に設定します。
  • callback: ステータス更新を受け取るオプションのコールバック関数。use_progress_bar より優先されます。 引数:
  • obj_ref: オブジェクトバージョンへの参照。ObjectRef または weave /// URI 文字列を指定します。 戻り値: エイリアス文字列のリスト。オブジェクトバージョンが最新の場合は、仮想的な “latest” エイリアスも含まれます。

method get_call

get_call(
    call_id: 'str',
    include_costs: 'bool' = False,
    include_feedback: 'bool' = False,
    columns: 'list[str] | None' = None
) → WeaveObject
IDを指定して単一のCallを取得します。 引数:
  • call_id: 取得するCallのID。
  • include_costs: true の場合、コスト情報が summary.weave に含まれます
  • include_feedback: true の場合、フィードバック情報が summary.weave.feedback に含まれます
  • columns: レスポンスに含めるカラムのリスト。None の場合は、すべてのカラムが含まれます。指定するカラムを少なくすると、パフォーマンスが向上する場合があります。一部のカラムは常に含まれます: id, project_id, trace_id, op_name, started_at 戻り値: Call オブジェクト。

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
このプロジェクトのトレースされた Call (操作) のリストを取得します。 この method は、トレースデータをクエリするための強力で柔軟なインターフェースを提供します。ページネーション、フィルタリング、ソート、フィールド射影、スコアリングメタデータをサポートしており、カスタムのトレース UI や分析ツールの実装に使用できます。 パフォーマンスのヒント: columns を指定し、filter または query を使用して結果サイズを小さくしてください。 引数:
  • filter: op_nameparent_ids などのフィールドで結果を絞り込むための高レベルのフィルター。
  • limit: 返される Call の最大数。
  • offset: 結果を返す前にスキップする Call の数 (ページネーションに使用) 。
  • sort_by: 結果のソートに使用するフィールドのリスト (例: started_at desc) 。
  • query: 高度なフィルタリングのための Mongo 風の式。すべての Mongo 演算子がサポートされるわけではありません。
  • include_costs: True の場合、summary.weave に token/コスト情報を含めます。
  • include_feedback: True の場合、summary.weave.feedback にフィードバックを含めます。
  • include_storage_size: True の場合、Call のストレージサイズを含めます。
  • include_total_storage_size: True の場合、trace の合計ストレージサイズを含めます。
  • columns: Call ごとに返すフィールドのリスト。これを減らすことで、パフォーマンスを大幅に改善できます。 (idtrace_idop_namestarted_at などの一部のフィールドは常に含まれます。)
  • scored_by: 1 つ以上の scorer (名または ref URI) でフィルターします。複数の scorer は AND 条件として扱われます。
  • page_size: 1 ページあたりに取得する Call の数。大規模なクエリでのパフォーマンス向上のために調整してください。
戻り値:
  • 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)

method get_evaluation

get_evaluation(uri: 'str') → Evaluation
特定の 評価 オブジェクトを URI で取得します。 評価 URI は通常、次の形式です: weave:///entity/project/object/Evaluation:version 「フレンドリ名」を使って 評価 を取得することもできます: get_evaluation(“Evaluation:v1”) 引数:
  • uri (str): 取得する 評価 の一意のリソース識別子。
戻り値:
  • Evaluation: 指定した URI に対応する 評価 オブジェクト。
発生する例外:
  • TypeError: URI のオブジェクトが 評価 インスタンスではない場合。
  • ValueError: URI が無効な場合、またはオブジェクトが見つからない場合。
例:
client = weave.init("my-project")
evaluation = client.get_evaluation("weave:///entity/project/object/my-eval:v1")
print(evaluation.name)

method get_evaluations

get_evaluations() → list[Evaluation]
現在のプロジェクト内のすべての評価オブジェクトを取得します。 戻り値:
  • list[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
フィードバックを取得するためにプロジェクトをクエリします。 例:
# 特定のフィードバックオブジェクトを取得する。
# これはcollectionを返すことに注意。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スタイルのクエリ式です。利便性のため、フィードバック UUID 文字列も指定できます。
  • reaction: 利便性のため、特定のリアクション絵文字でフィルタリングできます。
  • offset: フィードバックオブジェクトの取得を開始する位置のオフセットです。
  • limit: 取得するフィードバックオブジェクトの最大数です。 戻り値: FeedbackQuery オブジェクト。

method get_tags

get_tags(obj_ref: 'ObjectRef | str') → list[str]
オブジェクトのバージョンに付与されたタグを取得します。 引数:
  • obj_ref: オブジェクトのバージョンを参照する値です。ObjectRef または weave:/// URI 文字列を指定します。 戻り値: タグ文字列のリストです。オブジェクトのバージョンにタグがない場合は、空のリストを返します。

method get_tags_and_aliases

get_tags_and_aliases(obj_ref: 'ObjectRef | str') → tuple[list[str], list[str]]
オブジェクトのバージョンに対する タグ とエイリアスの両方を、1 回の呼び出しで取得します。 引数:
  • obj_ref: オブジェクトのバージョンへの参照です。ObjectRef または weave /// URI 文字列のいずれかを指定します。 戻り値: (タグ, aliases) のタプルを返します。どちらも文字列のリストです。オブジェクトのバージョンに タグ またはエイリアスがない場合は、空のリストを返します。

method list_aliases

list_aliases() → list[str]
プロジェクト内の重複しないエイリアスをすべて一覧表示します。 戻り値: プロジェクト内のすべてのエイリアス文字列のリスト。

method list_tags

list_tags() → list[str]
プロジェクト内の重複のないすべての タグ を一覧表示します。 戻り値: プロジェクト内のすべての tag 文字列のリスト。

method purge_costs

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

method 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 を指定できます。 例:
# 特定のコストオブジェクトを取得する。
# これはcollectionを返すことに注意。0件または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 remove_aliases

remove_aliases(obj_ref: 'ObjectRef | str', alias: 'str | list[str]') → None
オブジェクトから 1 つ以上のエイリアスを削除します。 引数:

method remove_tags

remove_tags(obj_ref: 'ObjectRef | str', tags: 'list[str]') → None
オブジェクトのバージョンからタグを削除します。
  • obj_ref: オブジェクトへの参照です。ObjectRef または weave:/// URI 文字列のいずれかです (エイリアス はオブジェクト スコープであるため、digest は使用されません) 。
  • alias: 削除する エイリアス 名、または エイリアス 名のリストです。 引数:

method save

save(val: 'Any', name: 'str', branch: 'str' = 'latest') → Any
直接呼び出さず、代わりに weave.publish() を使用してください。
  • obj_ref: オブジェクトのバージョンへの参照です。ObjectRef または weave /// URI 文字列のいずれかです。
  • tags: 削除するタグ文字列のリストです。 引数:
  • val: 保存するオブジェクト。
  • name: オブジェクトを保存するときの名前。
  • branch: オブジェクトを保存するときのブランチ。デフォルトは “latest” です。 戻り値: 保存したオブジェクトをデシリアライズしたもの。

method set_aliases

set_aliases(obj_ref: 'ObjectRef | str', alias: 'str | list[str]') → None
オブジェクトのバージョンに 1 つ以上のエイリアスを設定します。 引数:

method set_wandb_run_context

set_wandb_run_context(run_id: 'str', step: 'int | None' = None) → None
このクライアントによって作成される Call の wandb run_id と step をオーバーライドします。 これにより、グローバルな wandb.run シンボルに紐付いていない特定の WandB run に Weave Call を関連付けることができます。
  • obj_ref: オブジェクトのバージョンへの参照。ObjectRef または weave /// URI 文字列のいずれかです。
  • alias: 設定する エイリアス 名、または エイリアス 名のリスト (例: “production”)。 引数:
  • run_id: run ID (entity/プロジェクト のプレフィックスを含まない) 。クライアントが entity/プロジェクト のプレフィックスを自動的に追加します。
  • step: Call に使用する step 番号。None の場合、step は設定されません。 例:
client = weave.init("my-project")
client.set_wandb_run_context(run_id="my-run-id", step=5)
# これ以降のすべてのcallsはstep 5のentity/project/my-run-idに関連付けられます

# stepを指定しない場合
client.set_wandb_run_context(run_id="my-run-id")
# callsはstepなしでentity/project/my-run-idに関連付けられます

関数 get_obj_name

get_obj_name(val: 'Any') → str

関数 get_parallelism_settings

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

関数 map_to_refs

map_to_refs(obj: 'Any') → Any

print_call_link(call: 'Call') → None

関数 redact_sensitive_keys

redact_sensitive_keys(obj: 'Any') → Any

関数 sanitize_object_name

sanitize_object_name(name: 'str') → str