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

API 概要


ソースコード

class Agent

Pydantic フィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • model_name: <class 'str'>
  • temperature: <class 'float'>
  • system_message: <class 'str'>
  • tools: list[typing.Any]
ソースコード

method step

step(state: AgentState) → AgentState
エージェントの1ステップを実行します。 引数:
  • state: 環境の現在の状態。
  • action: 実行するアクション。
戻り値: 環境の新しい状態。
ソースコード

class AgentState

Pydantic のフィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • history: list[typing.Any]

ソースコード

class AnnotationSpec

Pydantic のフィールド:
  • name: str | None
  • description: str | None
  • field_schema: dict[str, typing.Any]
  • unique_among_creators: <class 'bool'>
  • op_scope: list[str] | None
ソースコード

classmethod preprocess_field_schema

preprocess_field_schema(data: dict[str, Any]) → dict[str, Any]

ソースコード

classmethod validate_field_schema

validate_field_schema(schema: dict[str, Any]) → dict[str, Any]

ソースコード

method value_is_valid

value_is_valid(payload: Any) → bool
このアノテーション仕様のスキーマに対して、ペイロードを検証します。 引数:
  • payload: スキーマに対して検証するデータ 戻り値:
  • bool: 検証が成功した場合は True、失敗した場合は False

ソースコード

class Audio

サポートされている形式(wav または mp3)の音声データを表すクラス。 このクラスは音声データの保持を行い、さまざまなソースからの読み込みやファイルへのエクスポート用のメソッドを提供します。 属性:
  • format: 音声フォーマット(現在は ‘wav’ または ‘mp3’ をサポートします)
  • data: 生の音声データ(bytes)
引数:
  • data: 音声データ(bytes または base64 エンコードされた文字列)
  • format: 音声フォーマット(‘wav’ または ‘mp3’)
  • validate_base64: 入力データの base64 デコードを試行するかどうか 例外:
  • ValueError: 音声データが空である、またはフォーマットがサポートされていない場合
ソースコード

メソッド __init__

__init__(
    data: 'bytes',
    format: 'SUPPORTED_FORMATS_TYPE',
    validate_base64: 'bool' = True
) → None

ソースコード

method export

export(path: 'str | bytes | Path | PathLike') → None
音声データをファイルとしてエクスポートします。 引数:
ソースコード

classmethod from_data

from_data(data: 'str | bytes', format: 'str') → Self
生データと指定されたフォーマットから Audio オブジェクトを作成します。
  • path: オーディオファイルを書き込むパス Args:
  • data: バイト列または base64 でエンコードされた文字列としてのオーディオデータ
  • format: オーディオフォーマット(‘wav’ または ‘mp3’) Returns:
  • Audio: 新しい Audio インスタンス
Raises:
  • ValueError: フォーマットがサポートされていない場合

ソースコード

classmethod from_path

from_path(path: 'str | bytes | Path | PathLike') → Self
ファイルパスから Audio オブジェクトを作成します。 引数:
  • path: 拡張子が .wav または .mp3 である音声ファイルへのパス
戻り値:
  • Audio: ファイルから読み込まれた新しい Audio インスタンス
例外:
  • ValueError: ファイルが存在しない場合、またはサポートされていない拡張子である場合

ソースコード

class Content

さまざまなソースからのコンテンツを表し、それらを関連するメタデータ付きの、統一されたバイト指向の表現へと正規化するためのクラスです。 このクラスは、次のいずれかのクラスメソッドを使ってインスタンス化する必要があります:
  • from_path()
  • from_bytes()
  • from_text()
  • from_url()
  • from_base64()
  • from_data_url()
ソースコード

メソッド __init__

__init__(*args: 'Any', **kwargs: 'Any') → None
このクラスの直接初期化は無効になっています。インスタンスを作成するには、Content.from_path() のようなクラスメソッドを使用してください。 Pydantic フィールド:
  • data: <class 'bytes'>
  • size: <class 'int'>
  • mimetype: <class 'str'>
  • digest: <class 'str'>
  • filename: <class 'str'>
  • content_type: typing.Literal['bytes', 'text', 'base64', 'file', 'url', 'data_url', 'data_url:base64', 'data_url:encoding', 'data_url:encoding:base64']
  • input_type: <class 'str'>
  • encoding: <class 'str'>
  • metadata: dict[str, typing.Any] | None
  • extension: str | None

プロパティ art

property ref


ソースコード

method as_string

as_string() → str
データを文字列として表示します。バイト列は encoding 属性を使ってデコードされます。base64 の場合、データは一度 base64 バイト列として再エンコードされ、その後 ASCII 文字列としてデコードされます。 戻り値: str。
ソースコード

classmethod from_base64

from_base64(
    b64_data: 'str | bytes',
    extension: 'str | None' = None,
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None
) → Self
base64 エンコードされた文字列またはバイト列から Content を初期化します。
ソースコード

classmethod from_bytes

from_bytes(
    data: 'bytes',
    extension: 'str | None' = None,
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None,
    encoding: 'str' = 'utf-8'
) → Self
バイト列から Content を初期化します。
ソースコード

クラスメソッド from_data_url

from_data_url(url: 'str', metadata: 'dict[str, Any] | None' = None) → Self
データURLから Content を初期化します。
ソースコード

classmethod from_path

from_path(
    path: 'str | Path',
    encoding: 'str' = 'utf-8',
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None
) → Self
ローカルファイルパスをもとに Content を初期化します。
ソースコード

classmethod from_text

from_text(
    text: 'str',
    extension: 'str | None' = None,
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None,
    encoding: 'str' = 'utf-8'
) → Self
文字列から Content を初期化します。
ソースコード

classmethod from_url

from_url(
    url: 'str',
    headers: 'dict[str, Any] | None' = None,
    timeout: 'int | None' = 30,
    metadata: 'dict[str, Any] | None' = None
) → Self
HTTP(S) URL からバイト列を取得して Content を初期化します。 コンテンツをダウンロードし、ヘッダー・URL パス・データから MIME タイプ/拡張子を推論し、得られたバイト列から Content オブジェクトを構築します。
ソースコード

クラスメソッド model_validate

model_validate(
    obj: 'Any',
    strict: 'bool | None' = None,
    from_attributes: 'bool | None' = None,
    context: 'dict[str, Any] | None' = None
) → Self
dict から Content を再構築できるように model_validate をオーバーライドします。
ソースコード

classmethod model_validate_json

model_validate_json(
    json_data: 'str | bytes | bytearray',
    strict: 'bool | None' = None,
    context: 'dict[str, Any] | None' = None
) → Self
JSON から Content を復元する処理を行うために model_validate_json をオーバーライドします。
ソースコード

method open

open() → bool
ファイルをオペレーティングシステムのデフォルトアプリケーションで開きます。 このメソッドは、ファイルの種類に関連付けられたデフォルトアプリケーションでファイルを開くために、プラットフォーム固有の機構を使用します。 戻り値:
  • bool: ファイルを正常に開けた場合は True、それ以外の場合は False。

ソースコード

method save

save(dest: 'str | Path') → None
ファイルを指定された宛先パスにコピーします。最後に保存されたコピーを反映するように、コンテンツのファイル名とパスを更新します。 引数:
ソースコード

メソッド serialize_data

serialize_data(data: 'bytes') → str
JSON モードでモデルをダンプする場合
ソースコード

method to_data_url

to_data_url(use_base64: 'bool' = True) → str
コンテンツからデータ URL を構築します。
  • dest: ファイルをコピーする先のパス(文字列または pathlib.Path)。宛先パスはファイルまたはディレクトリのどちらでもかまいません。dest にファイル拡張子(例: .txt)がない場合、その宛先はディレクトリとして扱われます。 Args:
  • use_base64: True の場合、データは base64 でエンコードされます。False の場合はパーセントエンコードされます。デフォルトは True です。 Returns: データ URL を表す文字列。

ソースコード

class Dataset

簡単に保存でき、自動バージョン管理に対応した Dataset オブジェクト。 例:
# データセットを作成する
dataset = Dataset(name='grammar', rows=[
     {'id': '0', 'sentence': "He no likes ice cream.", 'correction': "He doesn't like ice cream."},
     {'id': '1', 'sentence': "She goed to the store.", 'correction': "She went to the store."},
     {'id': '2', 'sentence': "They plays video games all day.", 'correction': "They play video games all day."}
])

# データセットを公開する
weave.publish(dataset)

# データセットを取得する
dataset_ref = weave.ref('grammar').get()

# 特定のサンプルにアクセスする
example_label = dataset_ref.rows[2]['sentence']
Pydantic のフィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • rows: trace.table.Table | trace.vals.WeaveTable
ソースコード

メソッド add_rows

add_rows(rows: Iterable[dict]) → Dataset
既存のデータセットに行を追加して、新しいデータセットバージョンを作成します。 これは、大規模なデータセット全体をメモリに読み込むことなく、例を追加したい場合に便利です。 引数:
  • rows: データセットに追加する行。 戻り値: 更新されたデータセット。

ソースコード

classmethod convert_to_table

convert_to_table(rows: Any) → Table | WeaveTable

ソースコード

classmethod from_calls

from_calls(calls: Iterable[Call]) → Self
ソースコード

classmethod from_hf

from_hf(
    hf_dataset: Union[ForwardRef('HFDataset'), ForwardRef('HFDatasetDict')]
) → Self

ソースコード

classmethod from_obj

from_obj(obj: WeaveObject) → Self

ソースコード

classmethod from_pandas

from_pandas(df: 'DataFrame') → Self

ソースコード

メソッド select

select(indices: Iterable[int]) → Self
指定されたインデックスに基づいて、データセットから行を選択します。 引数:
  • indices: 選択する行を指定する整数インデックスからなるイテラブル。 戻り値: 選択された行のみを含む新たな Dataset オブジェクト。

ソースコード

メソッド to_hf

to_hf() → HFDataset

ソースコード

method to_pandas

to_pandas() → DataFrame

ソースコード

class EasyPrompt

ソースコード

method __init__

__init__(
    content: str | dict | list | None = None,
    role: str | None = None,
    dedent: bool = False,
    **kwargs: Any
) → None
Pydantic フィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • data: <class 'list'>
  • config: <class 'dict'>
  • requirements: <class 'dict'>

property as_str

すべてのメッセージを1つの文字列に連結します。

プロパティ is_bound


property messages(メッセージ)

property のプレースホルダー


property system_message

すべてのメッセージを 1 つの system プロンプトメッセージにまとめます。

property system_prompt

すべてのメッセージを結合して、1つの system prompt オブジェクトにまとめます。

property unbound_placeholders


ソースコード

method append

append(item: Any, role: str | None = None, dedent: bool = False) → None

ソースコード

method as_dict

as_dict() → dict[str, Any]

ソースコード

メソッド as_pydantic_dict

as_pydantic_dict() → dict[str, Any]

ソースコード

method bind

bind(*args: Any, **kwargs: Any) → Prompt

ソースコード

method bind_rows

bind_rows(dataset: list[dict] | Any) → list['Prompt']

ソースコード

メソッド config_table

config_table(title: str | None = None) → Table

ソースコード

メソッド configure

configure(config: dict | None = None, **kwargs: Any) → Prompt

ソースコード

method dump

dump(fp: <class 'IO'>) → None

ソースコード

method dump_file

dump_file(filepath: str | Path) → None

ソースコード

method format

format(**kwargs: Any) → Any

ソースコード

classmethod from_obj

from_obj(obj: WeaveObject) → Self

ソースコード

classmethod load

load(fp: <class 'IO'>) → Self

ソースコード

classmethod load_file

load_file(filepath: str | Path) → Self

ソースコード

メソッド messages_table

messages_table(title: str | None = None) → Table

ソースコード

メソッド print

print() → str

ソースコード

method publish

publish(name: str | None = None) → ObjectRef

ソースコード

method require

require(param_name: str, **kwargs: Any) → Prompt

ソースコード

method run

run() → Any

ソースコード

method validate_requirement

validate_requirement(key: str, value: Any) → list

ソースコード

method validate_requirements

validate_requirements(values: dict[str, Any]) → list

ソースコード

method values_table

values_table(title: str | None = None) → Table

ソースコード

class Evaluation

スコアラーのセットとデータセットからなる評価をセットアップします。 evaluation.evaluate(model) を呼び出すと、データセットの各行をモデルに渡し、データセットの列名を model.predict の引数名に対応付けます。 続いて、すべてのスコアラーを実行し、結果を Weave に保存します。 データセットの各行を前処理したい場合は、preprocess_model_input に渡す関数を指定できます。 例:
# サンプルを収集する
examples = [
     {"question": "What is the capital of France?", "expected": "Paris"},
     {"question": "Who wrote 'To Kill a Mockingbird'?", "expected": "Harper Lee"},
     {"question": "What is the square root of 64?", "expected": "8"},
]

# カスタムスコアリング関数を定義する
@weave.op
def match_score1(expected: str, model_output: dict) -> dict:
     # ここでモデル出力をスコアリングするロジックを定義する
     return {'match': expected == model_output['generated_text']}

@weave.op
def function_to_evaluate(question: str):
     # ここでLLMの呼び出しを追加して出力を返す
     return  {'generated_text': 'Paris'}

# スコアリング関数を使用してサンプルをスコアリングする
evaluation = Evaluation(
     dataset=examples, scorers=[match_score1]
)

# 評価のトラッキングを開始する
weave.init('intro-example')
# 評価を実行する
asyncio.run(evaluation.evaluate(function_to_evaluate))
Pydantic のフィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • dataset: <class 'dataset.dataset.Dataset'>
  • scorers: list[typing.Annotated[trace.op_protocol.Op | flow.scorer.Scorer, BeforeValidator(func=<function cast_to_scorer at 0x110ab76a0>, json_schema_input_type=PydanticUndefined)]] | None
  • preprocess_model_input: collections.abc.Callable[[dict], dict] | None
  • trials: <class 'int'>
  • metadata: dict[str, typing.Any] | None
  • evaluation_name: str | collections.abc.Callable[trace.call.Call, str] | None
ソースコード

method evaluate

evaluate(model: Op | Model) → dict

ソースコード

classmethod from_obj

from_obj(obj: WeaveObject) → Self

ソースコード

method get_eval_results

get_eval_results(model: Op | Model) → EvaluationResults

ソースコード

メソッド get_evaluate_calls

get_evaluate_calls() → PaginatedIterator[CallSchema, WeaveObject]
この Evaluation オブジェクトを使用したすべての evaluation call を取得します。 これは単一の call ではなく CallsIter を返します。1 つの evaluation に対して複数の evaluation call が存在する可能性があるためです(例: 同じ evaluation を複数回 run した場合)。 戻り値:
  • CallsIter: evaluation run を表す Call オブジェクトに対するイテレータ。
例外:
  • ValueError: evaluation に ref がない場合(まだ保存も run もされていない場合)。
使用例:
evaluation = Evaluation(dataset=examples, scorers=[scorer])
await evaluation.evaluate(model)  # 最初に評価を実行する
calls = evaluation.get_evaluate_calls()
for call in calls:
     print(f"Evaluation run: {call.id} at {call.started_at}")

ソースコード

method get_score_calls

get_score_calls() → dict[str, list[Call]]
各 evaluation run について、trace ID ごとにグループ化された scorer 呼び出しを取得します。 戻り値:
  • dict[str, list[Call]]: trace ID をキーとして、scorer の Call オブジェクトのリストに対応付ける辞書。各 trace ID は 1 つの evaluation run を表し、そのリストにはその run 中に実行されたすべての scorer 呼び出しが含まれます。
例:
evaluation = Evaluation(dataset=examples, scorers=[accuracy_scorer, f1_scorer])
await evaluation.evaluate(model)
score_calls = evaluation.get_score_calls()
for trace_id, calls in score_calls.items():
     print(f"Trace {trace_id}: {len(calls)} scorer calls")
     for call in calls:
         scorer_name = call.summary.get("weave", {}).get("trace_name")
         print(f"  Scorer: {scorer_name}, Output: {call.output}")

ソースコード

method get_scores

get_scores() → dict[str, dict[str, list[Any]]]
評価 run から scorer の出力を抽出し、整理します。 戻り値:
  • dict[str, dict[str, list[Any]]]: 次のような入れ子の辞書構造:
    • 第1階層のキーはトレースID(evaluation run)
    • 第2階層のキーは scorer 名
    • 値は、その run と scorer に対する scorer 出力のリスト
例:
evaluation = Evaluation(dataset=examples, scorers=[accuracy_scorer, f1_scorer])
await evaluation.evaluate(model)
scores = evaluation.get_scores()
# トレースとスコアラーごとにスコアにアクセスする
for trace_id, trace_scores in scores.items():
         print(f"Evaluation run {trace_id}:")
         for scorer_name, outputs in trace_scores.items():
             print(f"  {scorer_name}: {outputs}")
期待される出力:
{
     "trace_123": {
     "accuracy_scorer": [{"accuracy": 0.85}],
     "f1_scorer": [{"f1": 0.78}]
     }
}

ソースコード

method model_post_init

model_post_init(_Evaluation__context: Any) → None

ソースコード

method predict_and_score

predict_and_score(model: Op | Model, example: dict) → dict

ソースコード

method summarize

summarize(eval_table: EvaluationResults) → dict

ソースコード

class EvaluationLogger

このクラスは、評価をログに記録するための命令型インターフェースを提供します。 最初の予測が log_prediction メソッドでログに記録された時点で評価が自動的に開始され、log_summary メソッドが呼び出されると終了します。 予測をログに記録するたびに、ScoreLogger オブジェクトが返されます。このオブジェクトを使用して、その特定の予測に対するスコアおよびメタデータをログに記録できます。詳細は ScoreLogger クラスを参照してください。 基本的な使用方法:入力と出力とともに予測を直接ログに記録します:
ev = EvaluationLogger()

# 既知の入力/出力で予測をログに記録する
pred = ev.log_prediction(inputs={'q': 'Hello'}, outputs={'a': 'Hi there!'})
pred.log_score("correctness", 0.9)

# 評価を終了する
ev.log_summary({"avg_score": 0.9})
高度な使い方 - コンテキストマネージャーを使用して動的な出力やネストした処理を行う:
ev = EvaluationLogger()

# ネストされた操作をキャプチャする必要がある場合はコンテキストマネージャーを使用する
with ev.log_prediction(inputs={'q': 'Hello'}) as pred:
     # ここでの操作(LLM呼び出しなど)は自動的に
     # predict呼び出しの子要素になる
     response = your_llm_call(...)
     pred.output = response.content
     pred.log_score("correctness", 0.9)

# 評価を終了する
ev.log_summary({"avg_score": 0.9})
ソースコード

method __init__

__init__(
    name: 'str | None' = None,
    model: 'Model | dict | str | None' = None,
    dataset: 'Dataset | list[dict] | str | None' = None,
    eval_attributes: 'dict[str, Any] | None' = None,
    scorers: 'list[str] | None' = None
) → None

プロパティ 属性


プロパティ ui_url


ソースコード

method fail

fail(exception: 'BaseException') → None
評価を例外で失敗させるための補助メソッドです。
ソースコード

メソッド finish

finish(exception: 'BaseException | None' = None) → None
サマリーをログに記録せずに、評価用リソースを明示的にクリーンアップします。 すべての予測呼び出しとメインの評価呼び出しを確定させます。logger がコンテキストマネージャーとして使用されている場合は、自動的に呼び出されます。
ソースコード

メソッド log_example

log_example(
    inputs: 'dict[str, Any]',
    output: 'Any',
    scores: 'dict[str, ScoreType]'
) → None
入力、出力、およびスコアを含む完全な例をログに記録します。 これは、すべてのデータがあらかじめ揃っている場合に、log_prediction と log_score をまとめてログに記録するための便利なメソッドです。 Args:
  • inputs: 予測の入力データ
  • output: 出力値
  • scores: スコアラー名からスコア値への対応を表す辞書 Example:
ev = EvaluationLogger()
ev.log_example(
    inputs={'q': 'What is 2+2?'},
    output='4',
    scores={'correctness': 1.0, 'fluency': 0.9}
)

ソースコード

メソッド log_prediction

log_prediction(inputs: 'dict[str, Any]', output: 'Any' = None) → ScoreLogger
Evaluation に予測をログとして記録します。 直接またはコンテキストマネージャーとして使用できる ScoreLogger を返します。 引数:
  • inputs: 予測の入力データ
  • output: 出力値。デフォルトは None。後から pred.output を使って設定できます。 戻り値: スコアを記録し、必要に応じて予測を完了するための ScoreLogger。
例(直接):
  • pred = ev.log_prediction({'q': ’…’}, output=“answer”) pred.log_score(“correctness”, 0.9) pred.finish()
例(コンテキストマネージャー):
  • with ev.log_prediction({'q': ’…’}) as pred: response = model(…) pred.output = response pred.log_score(“correctness”, 0.9) # with ブロック終了時に自動的に finish() を呼び出します

ソースコード

メソッド log_summary

log_summary(summary: 'dict | None' = None, auto_summarize: 'bool' = True) → None
サマリー用の dict を Evaluation にログします。 これによりサマリーが計算され、summarize オペレーションが呼び出され、その後 Evaluation が確定されます。確定後は、それ以上予測やスコアをログすることはできません。
ソースコード

method set_view

set_view(
    name: 'str',
    content: 'Content | str',
    extension: 'str | None' = None,
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None,
    encoding: 'str' = 'utf-8'
) → None
評価のメイン呼び出しのサマリーに、weave.views 配下としてビューを添付します。 指定したコンテンツをプロジェクト内のオブジェクトとして保存し、その参照 URI を評価の evaluate 呼び出し用に summary.weave.views.<name> 配下に書き込みます。文字列入力は、指定された拡張子または mimetype を用いて、Content.from_text によるテキストコンテンツとしてラップされます。 Args:
  • name: 表示するビュー名で、summary.weave.views 配下のキーとして使用されます。
  • content: シリアライズする weave.Content インスタンスまたは文字列。
  • extension: 文字列コンテンツ入力用の任意のファイル拡張子。
  • mimetype: 文字列コンテンツ入力用の任意の MIME タイプ。
  • metadata: 新しく作成される Content に付与する任意のメタデータ。
  • encoding: 文字列コンテンツ入力用のテキストエンコーディング。 Returns: なし
Examples: import weave
ev = weave.EvaluationLogger() ev.set_view(“report”, ”# Report”, extension=“md”)

ソースコード

class File

パス、MIME タイプ、サイズ情報を持つファイルを表すクラスです。 ソースコード

method __init__

__init__(path: 'str | Path', mimetype: 'str | None' = None)
File オブジェクトを初期化します。 引数:

property filename

ファイル名を取得します。
  • path: ファイルへのパス(文字列 または pathlib.Path)
  • mimetype: ファイルの MIME タイプ(省略可) - 指定しない場合は拡張子から推定されます Returns:
  • str: ディレクトリパス部分を除いたファイル名。

ソースコード

method open

open() → bool
ファイルを OS のデフォルトアプリケーションで開きます。 このメソッドは、プラットフォーム固有の仕組みを使って、ファイルの種類に関連付けられたデフォルトアプリケーションでファイルを開きます。 戻り値:
  • bool: ファイルを正常に開けた場合は True、それ以外の場合は False。

ソースコード

method save

save(dest: 'str | Path') → None
指定された出力先パスにファイルをコピーします。 Args:
ソースコード

class Markdown

Markdown を描画可能なオブジェクト。
  • dest: ファイルがコピーされる宛先パス(string または pathlib.Path)。宛先パスはファイルまたはディレクトリのいずれでもかまいません。 Args:
  • markup (str): Markdown を含む文字列。
  • code_theme (str, optional): コードブロック用の Pygments テーマ。デフォルトは “monokai”。コードテーマについては https://pygments.org/styles/ を参照してください。
  • justify (JustifyMethod, optional): 段落の配置方法。デフォルトは None。
  • style (Union[str, Style], optional): Markdown に適用する任意のスタイル。
  • hyperlinks (bool, optional): ハイパーリンクを有効にします。デフォルトは True
ソースコード

メソッド __init__

__init__(
    markup: 'str',
    code_theme: 'str' = 'monokai',
    justify: 'JustifyMethod | None' = None,
    style: 'str | Style' = 'none',
    hyperlinks: 'bool' = True,
    inline_code_lexer: 'str | None' = None,
    inline_code_theme: 'str | None' = None
) → None

ソースコード

class MessagesPrompt

ソースコード

method __init__

__init__(messages: list[dict])
  • inline_code_lexer: (str, optional): インラインコードのシンタックスハイライトが有効になっている場合に使用する lexer。デフォルトは None。
  • inline_code_theme: (Optional[str], optional): インラインコードのシンタックスハイライトに使用する Pygments テーマ。ハイライトしない場合は None。デフォルトは None。 Pydantic フィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • messages: list[dict]
ソースコード

メソッド format

format(**kwargs: Any) → list

ソースコード

method format_message

format_message(message: dict, **kwargs: Any) → dict
テンプレート変数を置き換えて単一のメッセージをフォーマットします。 このメソッドでは、実際のフォーマット処理のロジックをスタンドアロン関数 format_message_with_template_vars に委譲します。
ソースコード

classmethod from_obj

from_obj(obj: WeaveObject) → Self

ソースコード

class Model

入力に対して動作するコードとデータの組み合わせを表すクラスです。たとえば、プロンプト付きで LLM を呼び出して予測を行ったり、テキストを生成したりする処理などが該当します。 モデルを定義している属性やコードを変更すると、その変更がログに記録され、バージョンが更新されます。これにより、異なるバージョンのモデル間で予測結果を比較できます。これを利用してプロンプトを繰り返し改善したり、最新の LLM を試してさまざまな設定で予測結果を比較したりできます。 例:
class YourModel(Model):
     attribute1: str
     attribute2: int

     @weave.op
     def predict(self, input_data: str) -> dict:
         # モデルのロジックをここに記述
         prediction = self.attribute1 + ' ' + input_data
         return {'pred': prediction}
Pydantic のフィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
ソースコード

method get_infer_method

get_infer_method() → Callable

ソースコード

class Monitor

受信した呼び出しを自動でスコアリングするモニターを設定します。 例:
import weave
from weave.scorers import ValidJSONScorer

json_scorer = ValidJSONScorer()

my_monitor = weave.Monitor(
     name="my-monitor",
     description="This is a test monitor",
     sampling_rate=0.5,
     op_names=["my_op"],
     query={
         "$expr": {
             "$gt": [
                 {
                         "$getField": "started_at"
                     },
                     {
                         "$literal": 1742540400
                     }
                 ]
             }
         }
     },
     scorers=[json_scorer],
)

my_monitor.activate()
Pydantic のフィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • sampling_rate: <class 'float'>
  • scorers: list[flow.scorer.Scorer]
  • op_names: list[str]
  • query: trace_server.interface.query.Query | None
  • active: <class 'bool'>
ソースコード

メソッド activate

activate() → ObjectRef
モニターを有効化します。 戻り値: モニターへの参照を返します。
ソースコード

method deactivate

deactivate() → ObjectRef
モニターを無効化します。 戻り値: モニターへの参照。
ソースコード

classmethod from_obj

from_obj(obj: WeaveObject) → Self

ソースコード

class Object

追跡およびバージョン管理が可能な Weave オブジェクトの基底クラスです。 このクラスは Pydantic の BaseModel を拡張し、オブジェクトの追跡、参照、シリアライズのための Weave 固有の機能を提供します。オブジェクトには名前、説明、および参照を持たせることができ、これにより Weave システムへの保存および Weave システムからの取得が可能になります。 属性:
  • name (Optional[str]): オブジェクトの、人が読んで理解しやすい名前。
  • description (Optional[str]): オブジェクトが何を表しているかの説明。
  • ref (Optional[ObjectRef]): Weave システム内のオブジェクトへの参照。
例:
# シンプルなオブジェクトを作成する
obj = Object(name="my_object", description="A test object")

# URIからオブジェクトを作成する
obj = Object.from_uri("weave:///entity/project/object:digest")
Pydantic のフィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
ソースコード

classmethod from_uri

from_uri(uri: str, objectify: bool = True) → Self
Weave URI からオブジェクトインスタンスを生成します。 引数:
  • uri (str): オブジェクトを指す Weave URI。
  • objectify (bool): 結果をオブジェクト化するかどうか。デフォルトは True。
戻り値:
  • Self: URI から生成される、このクラスのインスタンス。
例外:
  • NotImplementedError: クラスがデシリアライズに必要なメソッドを実装していない場合。
使用例:
obj = MyObject.from_uri("weave:///entity/project/object:digest")

ソースコード

classmethod handle_relocatable_object

handle_relocatable_object(
    v: Any,
    handler: ValidatorFunctionWrapHandler,
    info: ValidationInfo
) → Any
ObjectRef や WeaveObject を含む再配置可能オブジェクトの検証を行います。 このバリデータは、入力が標準の Object インスタンスへ正しく変換される必要がある ObjectRef または WeaveObject である場合といった、特別なケースを処理します。参照が保持されること、またスキップすべき型が検証処理中に正しく扱われることを保証します。 引数:
  • v (Any): 検証する値。
  • handler (ValidatorFunctionWrapHandler): 標準的な pydantic 検証ハンドラ。
  • info (ValidationInfo): 検証用のコンテキスト情報。
戻り値:
  • Any: 検証済みのオブジェクトインスタンス。
例: このメソッドは、オブジェクトの作成および検証時に自動的に呼び出されます。次のようなケースを処理します: ```python

ObjectRef が渡されたとき

obj = MyObject(some_object_ref)

WeaveObject を渡した場合

obj = MyObject(some_weave_object)

---

<SourceLink url="https://github.com/wandb/weave/blob/v0.52.24/weave/trace/refs.py#L159" />

## <kbd>class</kbd> `ObjectRef`
ObjectRef(entity: 'str', project: 'str', name: 'str', _digest: 'str | Future[str]', _extra: 'tuple[str | Future[str], ...]' = ()) 

<SourceLink url="https://github.com/wandb/weave/blob/v0.52.24/../../../../weave/trace/refs/__init__" />

### <kbd>method</kbd> `__init__`

```python
__init__(
    entity: 'str',
    project: 'str',
    name: 'str',
    _digest: 'str | Future[str]',
    _extra: 'tuple[str | Future[str], ]' = ()
) → None

property digest


property extra


ソースコード

method as_param_dict

as_param_dict() → dict

ソースコード

method delete

delete() → None

ソースコード

method get

get(objectify: 'bool' = True) → Any

ソースコード

メソッド is_descended_from

is_descended_from(potential_ancestor: 'ObjectRef') → bool

ソースコード

メソッド maybe_parse_uri

maybe_parse_uri(s: 'str') → AnyRef | None

ソースコード

method parse_uri

parse_uri(uri: 'str') → ObjectRef

ソースコード

method uri

uri() → str

ソースコード

method with_attr

with_attr(attr: 'str') → Self

ソースコード

method with_extra

with_extra(extra: 'tuple[str | Future[str], ]') → Self

ソースコード

method with_index

with_index(index: 'int') → Self

ソースコード

method with_item

with_item(item_digest: 'str | Future[str]') → Self

ソースコード

method with_key

with_key(key: 'str') → Self

ソースコード

class Prompt

Pydantic のフィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
ソースコード

method format

format(**kwargs: Any) → Any

ソースコード

class SavedView

SavedView オブジェクトをフルエントインターフェース形式で扱うためのクラスです。 ソースコード

メソッド __init__

__init__(view_type: 'str' = 'traces', label: 'str' = 'SavedView') → None

プロパティ エンティティ


property label


property project


プロパティ view_type


ソースコード

method add_column

add_column(path: 'str | ObjectPath', label: 'str | None' = None) → SavedView

ソースコード

メソッド add_columns

add_columns(*columns: 'str') → SavedView
グリッドに複数の列を追加するためのユーティリティメソッド。
ソースコード

メソッド add_filter

add_filter(
    field: 'str',
    operator: 'str',
    value: 'Any | None' = None
) → SavedView

ソースコード

メソッド add_sort

add_sort(field: 'str', direction: 'SortDirection') → SavedView

ソースコード

メソッド column_index

column_index(path: 'int | str | ObjectPath') → int

ソースコード

メソッド filter_op

filter_op(op_name: 'str | None') → SavedView

ソースコード

method get_calls

get_calls(
    limit: 'int | None' = None,
    offset: 'int | None' = None,
    include_costs: 'bool' = False,
    include_feedback: 'bool' = False,
    all_columns: 'bool' = False
) → CallsIter
この保存ビューのフィルターと設定に一致する呼び出しを取得します。
ソースコード

method get_known_columns

get_known_columns(num_calls_to_query: 'int | None' = None) → list[str]
既知の列の集合を取得します。
ソースコード

method get_table_columns

get_table_columns() → list[TableColumn]

ソースコード

method hide_column

hide_column(col_name: 'str') → SavedView

ソースコード

method insert_column

insert_column(
    idx: 'int',
    path: 'str | ObjectPath',
    label: 'str | None' = None
) → SavedView

ソースコード

classmethod load

load(ref: 'str') → Self

ソースコード

method page_size

page_size(page_size: 'int') → SavedView

ソースコード

メソッド pin_column_left

pin_column_left(col_name: 'str') → SavedView

ソースコード

メソッド pin_column_right

pin_column_right(col_name: 'str') → SavedView

ソースコード

method remove_column

remove_column(path: 'int | str | ObjectPath') → SavedView

ソースコード

method remove_columns

remove_columns(*columns: 'str') → SavedView
保存済みビューから列を削除します。
ソースコード

メソッド remove_filter

remove_filter(index_or_field: 'int | str') → SavedView

ソースコード

メソッド remove_filters

remove_filters() → SavedView
保存済みビューからすべてのフィルターを削除します。
ソースコード

method rename

rename(label: 'str') → SavedView

ソースコード

method rename_column

rename_column(path: 'int | str | ObjectPath', label: 'str') → SavedView

ソースコード

method save

save() → SavedView
保存されたビューをサーバー上に公開します。
ソースコード

method set_columns

set_columns(*columns: 'str') → SavedView
グリッドで表示する列を設定します。
ソースコード

メソッド show_column

show_column(col_name: 'str') → SavedView

ソースコード

method sort_by

sort_by(field: 'str', direction: 'SortDirection') → SavedView

ソースコード

method to_grid

to_grid(limit: 'int | None' = None) → Grid

ソースコード

method to_rich_table_str

to_rich_table_str() → str

ソースコード

method ui_url

ui_url() → str | None
この保存済みビューを UI 上で表示するための URL です。 こちらはトレースなどを含む「結果」ページの URL であり、ビューオブジェクト自体の URL ではないことに注意してください。
ソースコード

method unpin_column

unpin_column(col_name: 'str') → SavedView

ソースコード

class Scorer

Pydantic のフィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • column_map: dict[str, str] | None
ソースコード

classmethod from_obj

from_obj(obj: WeaveObject) → Self

ソースコード

method model_post_init

model_post_init(_Scorer__context: Any) → None

ソースコード

メソッド score

score(output: Any, **kwargs: Any) → Any

ソースコード

method summarize

summarize(score_rows: list) → dict | None

ソースコード

class StringPrompt

ソースコード

method __init__

__init__(content: str)
Pydantic のフィールド:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • content: <class 'str'>
ソースコード

method format

format(**kwargs: Any) → str

ソースコード

classmethod from_obj

from_obj(obj: WeaveObject) → Self

ソースコード

class Table

ソースコード

method __init__

__init__(rows: 'list[dict]') → None

property


ソースコード

method append

append(row: 'dict') → None
テーブルに行を追加します。
ソースコード

method pop

pop(index: 'int') → None
指定されたインデックスの行をテーブルから削除します。
ソースコード

class ContextAwareThread

呼び出し元のコンテキストで関数を実行する Thread。 これは threading.Thread のドロップイン置き換えで、スレッド内部での呼び出しが期待どおりに動作することを保証します。Weave では、特定の contextvars が設定されている必要があります(call_context.py を参照)が、新しいスレッドは親からコンテキストを自動的にコピーしないため、呼び出しコンテキストが失われてしまうことがあります —— これは望ましくありません。このクラスは contextvars のコピーを自動化し、ユーザーが期待するように、このスレッドを使えば「そのまま動く」ようにします。 このクラスを使わなくても、代わりに次のように書くことで同じ効果を得られます。
def run_with_context(func, *args, **kwargs):
     context = copy_context()
     def wrapper():
         context.run(func, *args, **kwargs)
     return wrapper

thread = threading.Thread(target=run_with_context(your_func, *args, **kwargs))
thread.start()
ソースコード

メソッド __init__

__init__(*args: 'Any', **kwargs: 'Any') → None

property daemon

このスレッドがデーモンスレッドかどうかを示す真偽値です。 これは start() が呼び出される前に設定しておく必要があり、そうでない場合は RuntimeError が送出されます。初期値はこのスレッドを生成したスレッドから継承されます。メインスレッドはデーモンスレッドではないため、メインスレッドで生成されたすべてのスレッドのデフォルト値は daemon = False になります。 デーモンスレッドのみが残った時点で、Python プログラム全体は終了します。

property ident

このスレッドのスレッド識別子。スレッドが開始されていない場合は None。 これは非ゼロの整数です。get_ident() 関数を参照してください。スレッド識別子は、あるスレッドが終了して別のスレッドが作成されたときに再利用される場合があります。識別子は、スレッドが終了した後でも利用可能です。

property name

識別のためだけに用いられる文字列です。 セマンティクスはありません。複数のスレッドで同じ名前を使用できます。初期の名前はコンストラクタによって設定されます。

property native_id

このスレッドのネイティブの整数スレッド ID。スレッドが開始されていない場合は None となります。 これは負でない整数です。get_native_id() 関数を参照してください。これはカーネルが報告するスレッド ID を表します。
ソースコード

method run

run() → None

ソースコード

class ThreadContext

現在のスレッドおよびターン情報にアクセスするためのコンテキストオブジェクトです。 ソースコード

メソッド __init__

__init__(thread_id: 'str | None')
指定された thread_id を使用して ThreadContext を初期化します。 引数:

property thread_id

このコンテキストの thread_id を取得します。
  • thread_id: このコンテキストのスレッド ID。スレッド追跡が無効な場合は None。 Returns: スレッド ID。スレッド追跡が無効な場合は None。

property turn_id

アクティブなコンテキストから現在の turn_id を取得します。 戻り値: 設定されている場合は現在の turn_id、そうでない場合は None。
ソースコード

class ContextAwareThreadPoolExecutor

呼び出し元のコンテキストで関数を実行する ThreadPoolExecutor です。 これは concurrent.futures.ThreadPoolExecutor のドロップイン代替であり、executor 内で Weave の呼び出しが期待どおりに動作することを保証します。Weave では特定の contextvars が設定されている必要があります(call_context.py を参照)が、新しいスレッドは親からコンテキストを自動的にコピーしないため、call context が失われてしまう可能性があります。これは望ましくありません。このクラスは contextvar のコピーを自動化することで、ユーザーが想定しているとおり、この executor を使えば「そのまま動く」ようにします。 このクラスを使わずに、次のように書くことで同じ効果を得ることもできます:
with concurrent.futures.ThreadPoolExecutor() as executor:
     contexts = [copy_context() for _ in range(len(vals))]

     def _wrapped_fn(*args):
         return contexts.pop().run(fn, *args)

     executor.map(_wrapped_fn, vals)
ソースコード

method __init__

__init__(*args: 'Any', **kwargs: 'Any') → None

ソースコード

メソッド map

map(
    fn: 'Callable',
    *iterables: 'Iterable[Any]',
    timeout: 'float | None' = None,
    chunksize: 'int' = 1
) → Iterator

ソースコード

method submit

submit(fn: 'Callable', *args: 'Any', **kwargs: 'Any') → Any

ソースコード

function as_op

as_op(fn: 'Callable[P, R]') → Op[P, R]
@weave.op でデコレートされた関数を受け取り、その Op を返します。 @weave.op でデコレートされた関数はすでに Op のインスタンスなので、この関数は実行時には実質的に no-op です。ただし、型安全な方法で OpDef の属性にアクセスする必要がある場合、型チェッカーを満足させるために使用できます。 引数:
  • fn: @weave.op でデコレートされた関数。 戻り値: 関数の Op。

ソースコード

function attributes

attributes(attributes: 'dict[str, Any]') → Iterator
呼び出し時に属性を設定するためのコンテキストマネージャー。 例:
with weave.attributes({'env': 'production'}):
     print(my_function.call("World"))

ソースコード

関数 finish

finish() → None
Weave へのロギングを停止します。 finish の呼び出し後は、weave.op でデコレートされた関数の呼び出しはログに記録されなくなります。ロギングを再開するには、再度 weave.init() を実行する必要があります。
ソースコード

function get

get(uri: 'str | ObjectRef') → Any
URI からオブジェクトを取得するためのユーティリティ関数です。 Weave によってログされた多くのオブジェクトは、自動的に Weave サーバーに登録されます。この関数を使うと、それらのオブジェクトを URI から取得できます。 引数:
  • uri: 完全修飾された Weave ref URI。 戻り値: オブジェクト。
例:
weave.init("weave_get_example")
dataset = weave.Dataset(rows=[{"a": 1, "b": 2}])
ref = weave.publish(dataset)

dataset2 = weave.get(ref)  # datasetと同じ!

ソースコード

function get_client

get_client() → WeaveClient | None

ソースコード

function get_current_call

get_current_call() → Call | None
現在実行中の Op 内で、その Op に対応する Call オブジェクトを取得します。 Returns: 現在実行中の Op に対応する Call オブジェクト。トラッキングが初期化されていない場合、またはこのメソッドが Op の外部から呼び出された場合は None。 Note:
返される Call の attributes 辞書は、Call が開始されると変更できなくなります。Op を実行する前に :func:weave.attributes を使って Call のメタデータを設定してください。summary フィールドは Op の実行中にも更新でき、Call の終了時に計算されたサマリ情報とマージされます。

ソースコード

関数 init

init(
    project_name: 'str',
    settings: 'UserSettings | dict[str, Any] | None' = None,
    autopatch_settings: 'AutopatchSettings | None' = None,
    global_postprocess_inputs: 'PostprocessInputsFunc | None' = None,
    global_postprocess_output: 'PostprocessOutputFunc | None' = None,
    global_attributes: 'dict[str, Any] | None' = None
) → WeaveClient
Weave のトラッキングを初期化し、wandb プロジェクトにログを記録します。 ロギングはグローバルに初期化されるため、init の戻り値への参照を保持しておく必要はありません。 init の後は、weave.op でデコレートされた関数の呼び出しが、指定したプロジェクトにログされます。 Args: 注意: グローバルな後処理設定は、各 op 固有の後処理の後に、すべての op に対して適用されます。順序は常に次のとおりです: 1. op 固有の後処理 2. グローバルな後処理
  • project_name: ログを書き込む Weights & Biases のチームとプロジェクトの名前。チームを指定しない場合、デフォルトのエンティティが使用されます。デフォルトのエンティティを確認または更新するには、W&B Models ドキュメントの User Settings を参照してください。
  • settings: Weave クライアント全体の設定。
  • autopatch_settings: (非推奨)autopatch インテグレーションの設定。代わりに明示的なパッチ適用方式を使用してください。
  • global_postprocess_inputs: すべての op のすべての入力に適用される関数。
  • global_postprocess_output: すべての op のすべての出力に適用される関数。
  • global_attributes: すべてのトレースに適用される属性の辞書。 Returns: Weave クライアント。

ソースコード

関数 log_call

log_call(
    op: 'str',
    inputs: 'dict[str, Any]',
    output: 'Any',
    parent: 'Call | None' = None,
    attributes: 'dict[str, Any] | None' = None,
    display_name: 'str | Callable[[Call], str] | None' = None,
    use_stack: 'bool' = True,
    exception: 'BaseException | None' = None
) → Call
デコレータパターンを使わずに、Weave へ呼び出しを直接記録します。 この関数は Weave へのログ記録操作のための命令型 API を提供します。すでに実行された呼び出しを後からログしたい場合や、デコレータパターンがユースケースに適さない場合に有用です。 Args:
  • op (str): ログするオペレーション名。これは呼び出しの op_name として使用されます。公開済みの op を参照しない文字列(匿名オペレーション)もサポートされます。
  • inputs (dict[str, Any]): オペレーションに対する入力パラメータの辞書。
  • output (Any): オペレーションの出力/結果。
  • parent (Call | None): この呼び出しをネストするための任意の親 Call。指定しない場合、この呼び出しはルートレベルの Call(または、存在する場合は現在の Call コンテキストの下にネスト)になります。デフォルトは None。
  • attributes (dict[str, Any] | None): 呼び出しに付与する任意のメタデータ。これらは Call 作成時に固定されます。デフォルトは None。
  • display_name (str | Callable[[Call], str] | None): UI 上での呼び出しの任意の表示名。文字列、または Call を受け取って文字列を返す呼び出し可能オブジェクト(callable)を指定できます。デフォルトは None。
  • use_stack (bool): 実行時スタックにこの呼び出しをプッシュするかどうか。True の場合、呼び出しは Call コンテキストで利用可能になり、weave.require_current_call() を通じてアクセスできます。False の場合、Call はログされますが、Call スタックには追加されません。デフォルトは True。
  • exception (BaseException | None): オペレーションが失敗した場合にログする任意の例外。デフォルトは None。
Returns:
  • Call: トレース情報を完全に含む、作成済みかつ完了済みの Call オブジェクト。
Examples: 基本的な使用例:
import weave
    >>> weave.init('my-project')
    >>> call = weave.log_call(
    ...     op="my_function",
    ...     inputs={"x": 5, "y": 10},
    ...     output=15
    ... )

    属性と表示名を指定してログを記録する場合:
    >>> call = weave.log_call(
    ...     op="process_data",
    ...     inputs={"data": [1, 2, 3]},
    ...     output={"mean": 2.0},
    ...     attributes={"version": "1.0", "env": "prod"},
    ...     display_name="Data Processing"
    ... )

    失敗した操作をログに記録する場合:
    >>> try:
    ...     result = risky_operation()
    ... except Exception as e:
    ...     call = weave.log_call(
    ...         op="risky_operation",
    ...         inputs={},
    ...         output=None,
    ...         exception=e
    ...     )

    呼び出しをネストする場合:
    >>> parent_call = weave.log_call("parent", {"input": 1}, 2)
    >>> child_call = weave.log_call(
    ...     "child",
    ...     {"input": 2},
    ...     4,
    ...     parent=parent_call
    ... )

    コールスタックに追加せずにログを記録する場合:
    >>> call = weave.log_call(
    ...     op="background_task",
    ...     inputs={"task_id": 123},
    ...     output="completed",
    ...     use_stack=False  # コールスタックにプッシュしない
    ... )

---

<SourceLink url="https://github.com/wandb/weave/blob/v0.52.24/weave/trace/op.py#L1202" />

### <kbd>function</kbd> `op`

```python
op(
    func: 'Callable[P, R] | None' = None,
    name: 'str | None' = None,
    call_display_name: 'str | CallDisplayNameFunc | None' = None,
    postprocess_inputs: 'PostprocessInputsFunc | None' = None,
    postprocess_output: 'PostprocessOutputFunc | None' = None,
    tracing_sample_rate: 'float' = 1.0,
    enable_code_capture: 'bool' = True,
    accumulator: 'Callable[[Any | None, Any], Any] | None' = None,
    kind: 'OpKind | None' = None,
    color: 'OpColor | None' = None
) → Callable[[Callable[P, R]], Op[P, R]] | Op[P, R]
関数またはメソッドを Weave の op にするためのデコレータです。同期処理と非同期処理の両方で動作します。イテレーター関数を自動的に検出し、適切な処理を行います。
ソースコード

function publish

publish(obj: 'Any', name: 'str | None' = None) → ObjectRef
Python オブジェクトを保存してバージョン管理します。 Weave は、同じオブジェクト名がすでに存在していて、その内容ハッシュがそのオブジェクトの最新バージョンと一致しない場合に、新しいバージョンのオブジェクトを作成します。 引数:
  • obj: 保存してバージョン管理するオブジェクト。
  • name: オブジェクトを保存する際に使用する名前。 戻り値: 保存されたオブジェクトへの Weave Ref。

ソースコード

function ref

ref(location: 'str') → ObjectRef
既存の Weave オブジェクトへの Ref を作成します。これはオブジェクトを直接取得するのではなく、他の Weave API 関数にそのオブジェクトを渡せるようにするためのものです。 引数:
  • location: Weave Ref URI、または weave.init() が呼び出されている場合は name:version もしくは nameversion が指定されていない場合は latest が使用されます。 戻り値: オブジェクトを参照する Weave Ref。

ソースコード

function require_current_call

require_current_call() → Call
現在実行中の Op 内で、その Op に対応する Call オブジェクトを取得します。 これにより、その実行中の Call の id や feedback などの属性にアクセスできます。
@weave.op
def hello(name: str) -> None:
     print(f"Hello {name}!")
     current_call = weave.require_current_call()
     print(current_call.id)
Op の実行が完了して戻ったあとでも Call にアクセスすることは可能です。 UI などから取得した Call の ID がわかっている場合、weave.init から返される WeaveClientget_call メソッドを使って、その Call オブジェクトを取得できます。
client = weave.init("<project>")
mycall = client.get_call("<call_id>")
別の方法として、Op を定義したあとにその call メソッドを使うこともできます。例えば次のようにします。
@weave.op
def add(a: int, b: int) -> int:
     return a + b

result, call = add.call(1, 2)
print(call.id)
戻り値: 現在実行中の Op に対応する Call オブジェクト 例外:
  • NoCurrentCallError: トラッキングが初期化されていない場合、またはこのメソッドが Op の外側で呼び出された場合に発生します。

ソースコード

関数 set_view

set_view(
    name: 'str',
    content: 'Content | str',
    extension: 'str | None' = None,
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None,
    encoding: 'str' = 'utf-8'
) → None
現在の呼び出しのサマリーに、カスタムビューを _weave.views.<name> として紐付けます。 引数:
  • name: ビュー名(summary._weave.views 配下のキー)。
  • content: weave.Content インスタンス、または生の文字列。文字列の場合は、指定された拡張子または MIME タイプを用いて Content.from_text によってラップされます。
  • extension: content が文字列の場合に使用する任意のファイル拡張子。
  • mimetype: content が文字列の場合に使用する任意の MIME タイプ。
  • metadata: テキストから Content を作成する際に付与する任意のメタデータ。
  • encoding: テキストから Content を作成する際に適用するテキストエンコーディング。 戻り値: None
使用例: import weave
weave.init(“proj”) @weave.op … def foo(): … weave.set_view(“readme”, ”# Hello”, extension=“md”) … return 1 foo()

ソースコード

function thread

thread(
    thread_id: 'str | None | object' = <object object at 0x1105c49a0>
) → Iterator[ThreadContext]
コンテキスト内の呼び出しに対して thread_id を設定するコンテキストマネージャです。 例:
# thread_idを自動生成
with weave.thread() as t:
     print(f"Thread ID: {t.thread_id}")
     result = my_function("input")  # この呼び出しには自動生成されたthread_idが付与される
     print(f"Current turn: {t.turn_id}")

# thread_idを明示的に指定
with weave.thread("custom_thread") as t:
     result = my_function("input")  # この呼び出しにはthread_id="custom_thread"が付与される

# スレッド追跡を無効化
with weave.thread(None) as t:
     result = my_function("input")  # この呼び出しにはthread_id=Noneが付与される
引数:
  • thread_id: このコンテキスト内での呼び出しに関連付けるスレッド識別子。指定しない場合は UUID v7 が自動生成されます。None を指定した場合はスレッドトラッキングが無効になります。 yield される値:
  • ThreadContext: thread_id と現在の turn_id へアクセスするためのオブジェクト。

ソースコード

関数 wandb_init_hook

wandb_init_hook() → None