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

API 概要


Source

class FlushStatus

現在の flush 操作に関するステータス情報。
Source

class PendingJobCounts

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

class WeaveClient

Source

method __init__

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

property num_outstanding_jobs

すべてのエグゼキューターとサーバーにわたる保留中のジョブの総数を返します。 このプロパティを使用すると、メインスレッドをブロックすることなくバックグラウンドタスクの進行状況を確認できます。 Returns:
  • int: 保留中のジョブの総数

Source

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
現在の Projects にコストを追加します。 Examples:
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))
Args:
  • 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” などの通貨タイプを指定するために使用予定) Returns: CostCreateRes オブジェクト。ids と呼ばれるタプルのリストを持つ1つのフィールドが含まれます。各タプルには llm_id と作成されたコストオブジェクトの ID が含まれます。

Source

method clear_wandb_run_context

clear_wandb_run_context() → None
wandb run コンテキストのオーバーライドをクリアします。 これを呼び出した後、呼び出しは run_id と step 情報について(利用可能な場合は)グローバルな wandb.run を使用するように戻ります。 Examples:
client = weave.init("my-project")
client.set_wandb_run_context(run_id="my-run-id", step=5)
# ... いくつかの呼び出しを行う ...
client.clear_wandb_run_context()
# これで呼び出しは再びグローバルな wandb.run を使用するようになります

Source

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
) → Call
call を作成、ログ記録し、ランタイムスタックにプッシュします。 Args:
  • op: call を生成する操作、または匿名操作の名前。
  • inputs: 操作への入力。
  • parent: 親の call。parent が指定されない場合、現在の run が親として使用されます。
  • display_name: call の表示名。デフォルトは None。
  • attributes: call の属性。デフォルトは None。
  • use_stack: call をランタイムスタックにプッシュするかどうか。デフォルトは True。 Returns: 作成された Call オブジェクト。

Source

method delete_all_object_versions

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

Source

method delete_all_op_versions

delete_all_op_versions(op_name: 'str') → int
op のすべてのバージョンを削除します。 Args:
  • op_name: バージョンを削除する op の名前。 Returns: 削除されたバージョンの数。

Source

method delete_call

delete_call(call: 'Call') → None

Source

method delete_calls

delete_calls(call_ids: 'list[str]') → None
ID を指定して call を削除します。 call を削除すると、そのすべての子も削除されます。 Args:
Source

method delete_object_version

delete_object_version(object: 'ObjectRef') → None

Source

method delete_object_versions

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

Source

method delete_op_version

delete_op_version(op: 'OpRef') → None

Source

method fail_call

fail_call(call: 'Call', exception: 'BaseException') → None
例外を伴って call を失敗させます。これは finish_call の便利なメソッドです。
Source

method finish

finish(
    use_progress_bar: 'bool' = True,
    callback: 'Callable[[FlushStatus], None] | None' = None
) → None
すべてのバックグラウンドタスクを flush して、それらが処理されるようにします。 このメソッドは、現在エンキューされているすべてのジョブが処理されるまでブロックされ、保留中のタスクのステータスを示すプログレスバーを表示します。メインスレッドの実行中に並列処理を保証し、データがサーバーにアップロードされる前にユーザーコードが完了した場合のパフォーマンスを向上させることができます。 Args:
Source

method finish_call

finish_call(
    call: 'Call',
    output: 'Any' = None,
    exception: 'BaseException | None' = None,
    op: 'Op | None' = None
) → None
call を完了させ、その結果を永続化します。 call.summary に存在するすべての値は、データベースに書き込まれる前に計算されたサマリー統計(例:使用状況やステータス数)とディープマージされます。
Source

method flush

flush() → None
バックグラウンドの非同期タスクを flush します。複数回呼び出しても安全です。
Source

method get

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

Source

method get_call

get_call(
    call_id: 'str',
    include_costs: 'bool' = False,
    include_feedback: 'bool' = False,
    columns: 'list[str] | None' = None
) → WeaveObject
ID を指定して単一の call を取得します。
  • use_progress_bar: flush 中にプログレスバーを表示するかどうか。プログレスバーがうまくレンダリングされない環境(例:CI環境)では False に設定してください。
  • callback: ステータスの更新を受け取るオプションの コールバック 関数。use_progress_bar をオーバーライドします。 Args:
  • 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)は常に含まれます。 Returns: call オブジェクト。

Source

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

Source

method get_evaluation

get_evaluation(uri: 'str') → Evaluation
URI を指定して特定の Evaluation オブジェクトを取得します。 Evaluation の URI は通常、weave:///entity/project/object/Evaluation:version という形式に従います。 また、「フレンドリーな」名前で評価を取得することもできます: 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)

Source

method get_evaluations

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

Source

method get_feedback

get_feedback(
    query: 'Query | str | None' = None,
    reaction: 'str | None' = None,
    offset: 'int' = 0,
    limit: 'int' = 100
) → FeedbackQuery
Projects 内のフィードバックをクエリします。 Examples:
# 特定のフィードバックオブジェクトを取得します。
# これにより、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)
Args:
  • query: Mongo スタイルのクエリ式。便宜上、フィードバックの UUID 文字列も受け入れます。
  • reaction: 便宜上、特定のリアクション絵文字でフィルタリングします。
  • offset: フィードバックオブジェクトの取得を開始するオフセット。
  • limit: 取得するフィードバックオブジェクトの最大数。 Returns: FeedbackQuery オブジェクト。

Source

method purge_costs

purge_costs(ids: 'list[str] | str') → None
現在の Projects からコストを消去します。 Examples:
client.purge_costs([ids])
client.purge_costs(ids)
Args:
Source

method query_costs

query_costs(
    query: 'Query | str | None' = None,
    llm_ids: 'list[str] | None' = None,
    offset: 'int' = 0,
    limit: 'int' = 100
) → list[CostQueryOutput]
Projects 内のコストをクエリします。
  • ids: 消去するコスト ID。単一の ID または ID のリストを指定できます。 Examples:
# 特定のコストオブジェクトを取得します。
# これにより、0個または1個のアイテムが含まれることが期待される
# コレクションが返されます。
client.query_costs("1B4082A3-4EDA-4BEB-BFEB-2D16ED59AA07")

# 特定のリアクションを持つすべてのコストオブジェクトを検索します。
client.query_costs(llm_ids=["gpt-4o-mini-2024-07-18"], limit=10)
Args:
  • query: Mongo スタイルのクエリ式。便宜上、コストの UUID 文字列も受け入れます。
  • llm_ids: 便宜上、特定の llm_ids セットでフィルタリングします。
  • offset: コストオブジェクトの取得を開始するオフセット。
  • limit: 取得するコストオブジェクトの最大数。 Returns: CostQuery オブジェクト。

Source

method save

save(val: 'Any', name: 'str', branch: 'str' = 'latest') → Any
直接呼び出さないでください。代わりに weave.publish() を使用してください。 Args:
  • val: 保存するオブジェクト。
  • name: オブジェクトを保存する際の名前。
  • branch: オブジェクトを保存するブランチ。デフォルトは “latest”。 Returns: 保存されたオブジェクトのデシリアライズされたバージョン。

Source

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 を関連付けることができます。 Args:
  • run_id: run ID(entity/project プレフィックスは含まない)。クライアントは自動的に entity/project プレフィックスを追加します。
  • step: call に使用するステップ番号。None の場合、ステップは設定されません。 Examples:
client = weave.init("my-project")
client.set_wandb_run_context(run_id="my-run-id", step=5)
# これで、すべての call は step 5 の entity/project/my-run-id に関連付けられます

# ステップなしの場合
client.set_wandb_run_context(run_id="my-run-id")
# call はステップなしで entity/project/my-run-id に関連付けられます

Source

function get_obj_name

get_obj_name(val: 'Any') → str

Source

function get_parallelism_settings

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

Source

function map_to_refs

map_to_refs(obj: 'Any') → Any

Source
print_call_link(call: 'Call') → None

Source

function redact_sensitive_keys

redact_sensitive_keys(obj: 'Any') → Any

Source

function sanitize_object_name

sanitize_object_name(name: 'str') → str