API 概要
クラス Agent
Pydantic のフィールド:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonemodel_name:<class 'str'>temperature:<class 'float'>system_message:<class 'str'>tools:list[typing.Any]
method step
state: 環境の現在の状態。action: 実行するアクション。 戻り値: 環境の新しい状態。
クラス AgentState
Pydantic のフィールド:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonehistory:list[typing.Any]
クラス AnnotationSpec
Pydantic のフィールド:
name:str | Nonedescription:str | Nonefield_schema:dict[str, typing.Any]unique_among_creators:<class 'bool'>op_scope:list[str] | None
クラスメソッド preprocess_field_schema
クラスメソッド validate_field_schema
method value_is_valid
-
payload: スキーマに対して検証するデータ 戻り値: -
bool: 検証に成功した場合は True、それ以外の場合は False
クラス Audio
サポート対象の形式 (wav または mp3) のオーディオデータを表すクラスです。
このクラスはオーディオデータを保持し、さまざまなソースからの読み込みやファイルへの書き出しを行うためのメソッドを提供します。
Attributes:
format: オーディオ形式 (現在サポートされているのは ‘wav’ または ‘mp3’)data: bytes としての生のオーディオデータ
-
data: オーディオデータ (bytes または base64 エンコードされた文字列) -
format: オーディオ形式 (‘wav’ または ‘mp3’) -
validate_base64: 入力データの base64 デコードを試行するかどうか 送出される例外 -
ValueError: オーディオデータが空の場合、または形式がサポートされていない場合
method __init__
method export
クラスメソッド from_data
-
path: オーディオファイルの書き込み先パス 引数: -
data: bytes または base64 エンコードされた文字列形式のオーディオデータ -
format: オーディオ形式 (‘wav’ または ‘mp3’) 戻り値: -
Audio: 新しい Audio インスタンス
ValueError:formatで指定した形式がサポートされていない場合
クラスメソッド from_path
-
path: オーディオファイルへのパス (拡張子は.wavまたは.mp3である必要があります) 戻り値: -
Audio: ファイルから読み込まれた新しい Audio インスタンス
ValueError: ファイルが存在しない場合、またはサポートされていない拡張子の場合
クラス ClassifierMonitor
複数の scorer を 1 つの分類器に統合するモニターです。
分類器 モニター は、同じモデルを対象とする複数の LLMAsAJudgeScorers の プロンプト を、1 回のスコアリング call にまとめます。
Pydantic のフィールド:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonesampling_rate:<class 'float'>scorers:list[flow.scorer.Scorer]op_names:list[typing.Union[typing.Literal['genai.turn_ended'], str]]query:trace_server.interface.query.Query | Noneis_traced:<class 'bool'>active:<class 'bool'>scorer_debounce_config:flow.monitor.ScorerDebounceConfig | Noneprompt_header:str | Noneprompt_footer:str | None
method activate
method deactivate
クラスメソッド from_obj
method get_prompt_footer
method get_prompt_header
method model_post_init
op_names を正規化します。
公開処理にはオブジェクトごとの hook がないため、素の weave.publish(monitor) (activate() なし) もカバーできるように、ここで短い名を展開します。公開を行う場合は通常 weave.init を呼び出しているため、モニターの構築時にはクライアントが設定されています。
ユニットテスト、インスペクション、worker で保存済みモニターをデシリアライズする場合など、クライアントなしで構築するユースケースもいくつかあります。get_weave_client() のガードにより、クライアントなしでも構築できます。この場合、正規化は行われませんが、保存済みモニターにはすでに完全な ref が保持されているため、問題ないはずです。
SDK を使用している場合でも、正規化されないままモニターを作成できてしまうエッジケースがあります。これは、ユーザーがモニターを構築し、その後 weave.init を呼び出してから公開する場合です。このユースケースの回避策としては、activate() または deactivate() を呼び出す方法が考えられます。
クラス Content
さまざまなソースのコンテンツを表すクラスです。関連するメタデータとともに、バイト列ベースの統一表現に変換します。
このクラスは、以下のいずれかの classmethod を使用してインスタンス化する必要があります。
- from_path()
- from_bytes()
- from_text()
- from_url()
- from_base64()
- from_data_url()
method __init__
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] | Noneextension:str | None
プロパティ art
プロパティ ref
method as_string
encoding 属性を使用してデコードされます。base64 の場合、データはいったん base64 のバイト列として再エンコードされ、その後 ASCII 文字列にデコードされます。
戻り値:
str.
クラスメソッド from_base64
クラスメソッド from_bytes
クラスメソッド from_data_url
クラスメソッド from_path
クラスメソッド from_text
クラスメソッド from_url
クラスメソッド model_validate
クラスメソッド model_validate_json
method open
bool: ファイルを正常に開けた場合は True、それ以外の場合は False。
method save
method serialize_data
method to_data_url
-
dest: ファイルのコピー先となるパス (string または pathlib.Path) 。コピー先のパスには、ファイルまたはディレクトリを指定できます。destにファイル拡張子 (例:.txt) がない場合、コピー先はディレクトリとして扱われます。 引数: -
use_base64: True の場合、データは base64 エンコードされます。それ以外の場合はパーセントエンコードされます。デフォルトは True です。 戻り値: データ URL 文字列。
クラス Conversation
会話です。conversation_id ごとにターンをグループ化します (span はありません) 。
continue_parent_trace は、この会話が作成するターンの トレース 分離を制御します。デフォルトの False は、各ターンがそれぞれ独自の OTel トレース を開始することを意味します (スタンドアロンの Agents タブのビューでは、これが適切です) 。アプリケーションに外側の トレース (例: fastapi でインストルメントされたリクエスト) があり、その中に エージェント の呼び出しを含める必要がある場合は、True に設定します。
Pydantic のフィールド:
conversation_id:<class 'str'>conversation_name:<class 'str'>agent_name:<class 'str'>model:<class 'str'>include_content:<class 'bool'>continue_parent_trace:<class 'bool'>attributes:dict[str, typing.Any]
method end
method model_post_init
method start_turn
_current_turn の contextvar を設定することで、コンテキストマネージャーを使用しているかどうかにかかわらず、get_current_turn() を通じてターンを参照できます。また、この会話から continue_parent_trace を引き継ぎます。
system_instructions (エージェントのシステムプロンプト) は、ターンの invoke_agent span に保持されます。返された Turn への属性代入によって後から設定することもでき、start_llm と同様です。
クラス Dataset
簡単に保存でき、自動的にバージョン管理されるDatasetオブジェクトです。
例:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonerows:trace.table.Table | trace.vals.WeaveTable
method add_rows
rows: データセットに追加する行。 戻り値: 更新後のデータセット。
クラスメソッド convert_to_table
クラスメソッド from_calls
クラスメソッド from_hf
クラスメソッド from_obj
クラスメソッド from_pandas
method select
indices: 選択する行を指定する整数インデックスのイテラブル。 戻り値: 選択した行のみを含む新しい Dataset オブジェクト。
method to_hf
method to_pandas
クラス EasyPrompt
method __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonedata:<class 'list'>config:<class 'dict'>requirements:<class 'dict'>
プロパティ as_str
すべてのメッセージを結合して1つの文字列にします。プロパティ is_bound
プロパティ messages
プロパティ プレースホルダー
プロパティ system_message
すべてのメッセージを結合して、1つのsystem promptメッセージにします。プロパティ system_prompt
すべてのメッセージを結合して、system prompt オブジェクトにします。プロパティ unbound_placeholders
method append
method as_dict
method as_pydantic_dict
method bind
method bind_rows
method config_table
method configure
method dump
method dump_file
method format
クラスメソッド from_obj
クラスメソッド load
クラスメソッド load_file
method messages_table
method print
method publish
method require
method run
method validate_requirement
method validate_requirements
method values_table
class 評価
scorer のセットとデータセットを含む評価を設定します。
evaluation.evaluate(model) を呼び出すと、データセットの各行がモデルに渡されます。このとき、データセットの列名は model.predict の引数名に対応付けられます。
その後、すべての scorer が呼び出され、結果は Weave に保存されます。
データセットの行を前処理したい場合は、preprocess_model_input に関数を渡せます。
例:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonedataset:<class 'dataset.dataset.Dataset'>scorers:list[typing.Annotated[trace.op_protocol.Op | flow.scorer.Scorer, BeforeValidator(func=<function cast_to_scorer at 0x7f7d21ca09a0>, json_schema_input_type=PydanticUndefined)]] | Nonepreprocess_model_input:collections.abc.Callable[[dict], dict] | Nonetrials:<class 'int'>metadata:dict[str, typing.Any] | Noneevaluation_name:str | collections.abc.Callable[trace.call.Call, str] | None
method evaluate
classmethod from_obj
method get_eval_results
method get_evaluate_calls
評価 オブジェクトを使用したすべての評価 call を取得します。
これは単一の call ではなく CallsIter を返すことに注意してください。1 つの評価に対して複数の評価 call が存在する可能性があるためです (たとえば、同じ評価を複数回実行した場合) 。
戻り値:
CallsIter: 評価 run を表すCallオブジェクトのイテレータ。
ValueError: 評価に ref がない場合 (まだ保存または実行されていない場合) 。
method get_score_calls
dict[str, list[Call]]: trace ID から Scorer の Call オブジェクトのリストへのマッピングを格納した辞書。各 trace ID は 1 つの評価 run を表し、リストにはその run 中に実行されたすべての Scorer call が含まれます。
method get_scores
dict[str, dict[str, list[Any]]]: 次のようなネストされた辞書構造です。- 第1レベルのキーは trace ID (評価 run)
- 第2レベルのキーは Scorer 名
- 値は、その run と Scorer に対応する Scorer の出力のリスト
method model_post_init
method predict_and_score
method summarize
class EvaluationLogger
このクラスは、評価をログするための命令型インターフェースを提供します。
最初の予測を log_prediction method でログすると、自動的に評価が開始され、log_summary method が呼び出されると終了します。
予測をログするたびに、ScoreLogger オブジェクトが返されます。このオブジェクトを使用して、その予測に対応するスコアとメタデータをログできます。詳細は、ScoreLogger クラスを参照してください。
基本的な使用方法 - 入力と出力を直接指定して予測をログします:
method __init__
プロパティ 属性
プロパティ ui_url
method fail
method finish
method log_example
inputs: 予測の入力データoutput: 出力値scores: Scorer 名を score 値に対応付ける辞書 例:
method log_prediction
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) # 終了時に自動的に finish() が呼び出されます
method log_summary
method set_view
weave.views の下で、評価のメイン call の summary に view を追加します。
指定されたコンテンツをプロジェクト内のオブジェクトとして保存し、その参照 URI を、評価の evaluate call の summary.weave.views.<name> に書き込みます。文字列入力は、指定された拡張子または MIME タイプを使って、Content.from_text によりテキストコンテンツとしてラップされます。
引数:
name: 表示する view の名前。summary.weave.views配下のキーとして使用されます。content: シリアライズするweave.Contentインスタンス、または文字列。extension: 文字列コンテンツ入力に使用する省略可能なファイル拡張子。mimetype: 文字列コンテンツ入力に使用する省略可能な MIME タイプ。metadata: 新しく作成されるContentに付加する省略可能なメタデータ。encoding: 文字列コンテンツ入力のテキストエンコーディング。 戻り値: None
import weave
ev = weave.EvaluationLogger() ev.set_view(“report”, ”# Report”, extension=“md”)
class File
パス、MIMEタイプ、サイズ情報を持つファイルを表すクラス。
method __init__
プロパティ filename
ファイル名を取得します。-
path: ファイルのパス (string または pathlib.Path) -
mimetype: 省略可能なファイルの MIME タイプ。指定しない場合は拡張子から推定されます 戻り値: -
str: ディレクトリパスを含まないファイル名。
method open
bool: ファイルを正常に開けた場合は True、それ以外の場合は False。
method save
class LLM
1 回の LLM API Call です。chat OTel span にマッピングされます。
-
dest: file のコピー先パスです (string または pathlib.Path) 。コピー先パスには、file またはディレクトリを指定できます。 Pydantic のフィールド: -
model:<class 'str'> -
provider_name:<class 'str'> -
response_id:<class 'str'> -
response_model:<class 'str'> -
output_type:<class 'str'> -
system_instructions:list[str] -
usage:<class 'conversation.types.Usage'> -
reasoning:<class 'conversation.types.Reasoning'> -
finish_reasons:list[str] -
input_messages:list[conversation.types.Message] -
output_messages:list[conversation.types.Message] -
media_attachments:list[conversation.types.MediaAttachment] -
request_temperature:float | None -
request_max_tokens:int | None -
request_top_p:float | None -
request_frequency_penalty:float | None -
request_presence_penalty:float | None -
request_seed:int | None -
request_stop_sequences:list[str] -
request_choice_count:int | None -
started_at:datetime.datetime | None -
ended_at:datetime.datetime | None
method add_event
weave.permission_request) 、lifecycle の遷移 (例: spawned / streaming / finished) 、または span の存続期間中の特定の時点で発生する任意の custom マイルストーンです (span 全体に対するプロパティである attribute とは異なります) 。
span の開始から終了までの間 (with の内側) で呼び出す必要があります。この範囲外では、この呼び出しは no-op となり、警告がログされます。
method attach_media
Content オブジェクトを作成し、それを公開して weave:// ref を取得し、その ref のみを保存します。content、uri、またはfile_idのいずれか 1 つを必ず指定してください。
公開処理 (メディアのアップロードを行います) は専用のバックグラウンドスレッドで実行されるため、呼び出し元をブロックせず、call はすぐに返ります。添付ごとに 1 つのスレッドがディスパッチされるため、複数のアップロードを並列に進められます。プレースホルダーの MediaAttachment は同期的に追加され、アップロードが完了するとその ref が設定されます。ref は span が送出される前に必ず設定されます (build path は _await_uploads を介して進行中のアップロードを待機します) 。
method attach_media_url
attach_media を簡単に利用できるようにしたものです。data: URL は bytes として解析されて公開され、通常の URI は取得されて公開されます。空の URL は無視されます。チェーンできるように self を返します。
メソッド end
メソッド model_post_init
メソッド output
メソッド record
input_messages、output_messages、usage、response_id など) を割り当てて、chat span を組み立てます。record(...) はそれらを 1 回のキーワード引数による Call にまとめるため、記録箇所を簡潔に保てます。
明示的に渡された (None 以外の) フィールドのみが適用され、既存の値は保持されます。reasoning は Reasoning インスタンスまたは通常の string のいずれも受け入れます (自動的にラップされます) 。チェーンのために self を返します。
メソッド set_attributes
span.set_attributes({"weave.tag": "value"}) を使用します。これは OTel の Span.set_attributes に対応しています。
スパンの開始から終了までの間、つまり with ブロック内で呼び出す必要があります。この範囲外で呼び出しても何も実行されず、警告がログされます。バッチ取り込みの場合は、オブジェクトで宣言されたフィールドに直接値を設定し、それを log_turn / log_conversation に渡してください。
メソッド think
クラス LogResult
一括 log_* Call の結果。
Pydantic のフィールド:
conversation_id:<class 'str'>trace_ids:list[str]root_span_ids:list[str]span_count:<class 'int'>
クラス Markdown
Markdown を表示可能なオブジェクト。
引数:
markup(str): Markdown を含む文字列。code_theme(str, optional): コードブロック用の Pygments テーマ。デフォルトは “monokai” です。コードテーマについては https://pygments.org/styles/ を参照してください。justify(JustifyMethod, optional): 段落の justify 値。デフォルトは None です。style(Union[str, Style], optional): Markdown に適用する任意のスタイル。hyperlinks(bool, optional): ハイパーリンクを有効にします。デフォルトはTrueです。
メソッド __init__
クラス MediaAttachment
LLM Call に添付されるメディア。
常に weave:// コンテンツ ref URI を保持します。生のバイト列、data-URL、およびプレーンな HTTP URI は、ここに格納される前に LLM.attach_media によって公開済みの Content オブジェクトに変換されます。
-
inline_code_lexer: (str, optional): インラインコードのハイライトが有効な場合に使用するレキサー。デフォルトは None です。 -
inline_code_theme: (Optional[str], optional): インラインコードのハイライトに使用する Pygments テーマ。ハイライトを無効にする場合は None。デフォルトは None です。 Pydantic のフィールド: -
ref:<class 'str'> -
modality:<class 'str'> -
mime_type:<class 'str'>
クラス Message
会話内の 1 つのメッセージです。
2 つの構築スタイルがサポートされます。
-
フラット形式 (後方互換性があり、プレーンテキストで扱いやすい) :
Message(role="assistant", content="Hi there") -
明示的なパーツ形式 (より高機能で、tool call、推論とテキストの混在、インラインメディアをサポート) :
Message(role="assistant", parts=[TextPart(content="Let me check"), ToolCallPart(id="c1", name="get_weather", arguments='{...}')])
parts が空でない場合、これが正規の表現になります。空の場合、シリアライザーはフラットフィールドから単一の TextPart (または role="tool" の場合は ToolCallResponsePart) を生成します。
Pydantic のフィールド:
role:typing.Literal['user', 'assistant', 'system', 'tool']content:<class 'str'>tool_call_id:<class 'str'>tool_name:<class 'str'>parts:list[typing.Annotated[conversation.types.TextPart | conversation.types.ReasoningPart | conversation.types.ToolCallPart | conversation.types.ToolCallResponsePart | conversation.types.BlobPart | conversation.types.UriPart | conversation.types.FilePart, FieldInfo(annotation=NoneType, required=True, discriminator='type')]]
クラスメソッド assistant
tool_calls を渡します。両方を指定した場合、テキストは先頭の TextPart として出力され、その後に各 ToolCallPart が続くため、チャットビューではそれらがインラインで表示されます。
クラスメソッド system
クラスメソッド tool_result
output には string、dict、list、スカラー、または None を指定できます。基盤となる ToolCallResponsePart は、文字列以外の値を JSON エンコードします。
クラスメソッド user
クラス MessagesPrompt
メソッド __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonemessages:list[dict]
メソッド format
メソッド format_message
クラスメソッド from_obj
クラス Model
入力に対して処理を行うコードとデータの組み合わせを表すことを目的としています。たとえば、プロンプトを使って LLM を呼び出し、予測を行ったりテキストを生成したりできます。
モデルを定義する属性やコードを変更すると、その変更はログされ、バージョンが更新されます。これにより、モデルの異なるバージョン間で予測を比較できます。これを使用して、プロンプトを改善したり、最新の LLM を試したり、異なる設定間で予測を比較したりできます。
例:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | None
メソッド get_infer_method
クラス Monitor
受信したCallを自動的にスコアリングするモニターを設定します。
op名は、Weave client の entity と project を使って weave ref に変換されることに注意してください。同じ client で複数の Entities と Projects を扱う場合は、完全修飾された weave ref を指定する必要があります。詳しくは _normalized_op_names を参照してください。
例:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonesampling_rate:<class 'float'>scorers:list[flow.scorer.Scorer]op_names:list[typing.Union[typing.Literal['genai.turn_ended'], str]]query:trace_server.interface.query.Query | Noneis_traced:<class 'bool'>active:<class 'bool'>scorer_debounce_config:flow.monitor.ScorerDebounceConfig | None
メソッド activate
メソッド deactivate
クラスメソッド from_obj
メソッド model_post_init
op_names を正規化します。
公開時にはオブジェクトごとの hook がないため、素の weave.publish(monitor) (activate() なし) もカバーできるよう、ここで短縮名を展開します。公開を行う場合は通常 weave.init を呼び出しているため、モニターの構築時点でクライアントは設定されています。
ユニットテスト、インスペクション、worker で保存済みモニターをデシリアライズする場合など、クライアントなしで構築するユースケースもいくつかあります。get_weave_client() のガードにより、クライアントがなくても構築できます。この場合は正規化は行われませんが、保存済みモニターにはすでに完全な ref が保持されているため、問題ないはずです。
SDK を使う場合、正規化せずにモニターを作成できてしまうエッジケースがあります。ユーザーがモニターを構築してから weave.init を呼び出し、その後に公開する場合です。このユースケースの回避策として、activate() または deactivate() を呼び出すことができます。
クラス Object
トラッキングとバージョン管理が可能な Weave オブジェクトの基底クラスです。
このクラスは Pydantic の BaseModel を拡張し、オブジェクトのトラッキング、参照、シリアライズのための Weave 固有の機能を提供します。オブジェクトには名、説明、参照を設定でき、Weave システムで保存および取得できます。
属性:
name(str | None): オブジェクトの人間が読み取れる名前。description(str | None): オブジェクトが表す内容の説明。ref(ObjectRef | None): Weave システム内のオブジェクトへの参照。
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | None
クラスメソッド from_uri
uri(str): オブジェクトを指す Weave URI。objectify(bool): 結果をオブジェクト化するかどうか。デフォルトは True です。
Self: URI から生成されたこのクラスのインスタンス。
NotImplementedError: クラスがデシリアライズに必要なメソッドを実装していない場合。
classmethod handle_relocatable_object
v(Any): 検証する値。handler(ValidatorFunctionWrapHandler): 標準の pydantic 検証ハンドラー。info(ValidationInfo): 検証コンテキスト情報。
Any: 検証済みのオブジェクトインスタンス。
ObjectRef を渡した場合
WeaveObject を渡した場合
クラス ObjectRef
ObjectRef(entity: ‘str’, project: ‘str’, name: ‘str’, _digest: ‘str | Future[str]’, _extra: ‘tuple[str | Future[str], …]’ = ())
メソッド __init__
プロパティ ダイジェスト
プロパティ extra
プロパティ is_digest_resolved
method as_param_dict
method delete
method get
method is_descended_from
method maybe_parse_uri
method parse_uri
method with_attr
method with_extra
method with_index
method with_item
method with_key
クラス Prompt
Pydantic のフィールド:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | None
method format
クラス SavedView
SavedView オブジェクトを扱うための、fluent スタイルのクラスです。
method __init__
プロパティ entity
プロパティ label
プロパティ project
プロパティ view_type
method add_column
method add_columns
method add_filter
method add_sort
method column_index
method filter_op
method get_calls
method get_known_columns
method get_table_columns
method hide_column
method insert_column
クラスメソッド load
method page_size
method pin_column_left
method pin_column_right
method remove_column
method remove_columns
method remove_filter
method remove_filters
method rename
method rename_column
method save
method set_columns
method show_column
method sort_by
method to_grid
method to_rich_table_str
method ui_url
method unpin_column
class Scorer
Pydantic のフィールド:
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonecolumn_map:dict[str, str] | None
プロパティ display_name
クラスメソッド from_obj
method model_post_init
method score
method summarize
クラス Session
:class:weave.Conversation の非推奨エイリアスです。
古い session_id / session_name コンストラクタ フィールドを受け付け、これらを conversation_id / conversation_name へのプロキシとなる読み書き可能なプロパティとしても公開します。元の Session ではこれらがモデル フィールドだったため、s.session_id を参照または代入する既存のコードも引き続き動作します。
method __init__
conversation_id:<class 'str'>conversation_name:<class 'str'>agent_name:<class 'str'>model:<class 'str'>include_content:<class 'bool'>continue_parent_trace:<class 'bool'>attributes:dict[str, typing.Any]
プロパティ session_id
:attr:conversation_id の非推奨エイリアスです。
プロパティ session_name
:attr:conversation_name の非推奨エイリアスです。
クラス StringPrompt
method __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonecontent:<class 'str'>
method format
クラスメソッド from_obj
クラス SubAgent
1 つの ターン 内で委譲されるエージェント呼び出しです。
同じトレース内のネストされた invoke_agent OTel スパンに対応します。
Pydantic のフィールド:
name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>system_instructions:list[str]started_at:datetime.datetime | Noneended_at:datetime.datetime | None
method add_event
weave.permission_request) 、ライフサイクル遷移 (例: spawned / streaming / finished) ) や、span の存続期間中の特定の時点で発生する任意のカスタム マイルストーンに使用します (span 全体に対するプロパティである属性とは異なります) 。
span の開始から終了までの間 (with 内) に呼び出す必要があります。この範囲外では、この呼び出しは no-op となり、警告をログします。
method end
method llm
get_current_llm() から LLM を参照できるように、_current_llm contextvar を設定します。
method record
system_instructions、agent_id など) を、1 回のキーワード呼び出しにまとめます。明示的に渡されたフィールド (None 以外) のみが適用され、既存の値は保持されます。チェーンできるように self を返します。Turn.record / LLM.record と同様の動作です。
注: ストリーミング (with) パスでは、サブエージェント span の名前は __enter__ 時点の name から決まります。そのため、span 名にそれを反映させる必要がある場合は、record ではなく start_subagent / turn.subagent で name を設定してください。record を使っても gen_ai.agent.name 属性は更新されます。
method set_attributes
span.set_attributes({"weave.tag": "value"}) を使用します。これは OTel の Span.set_attributes に対応します。
span の開始から終了までの間、つまり with ブロック内で呼び出す必要があります。この期間外で呼び出しても no-op となり、警告がログされます。バッチ取り込みでは、オブジェクトで宣言されたフィールドに直接値を設定してから、log_turn / log_conversation に渡してください。
method tool
クラス Table
method __init__
プロパティ rows
method append
method pop
class ContextAwareThread
呼び出し元のコンテキストで関数を実行する Thread。
これは、スレッド内で Call が期待どおりに動作するようにする threading.Thread のドロップイン置換です。Weave では特定の contextvars が設定されている必要があります (call_context.py を参照) が、新しいスレッドは親からコンテキストを自動ではコピーしないため、Call コンテキストが失われることがあります。これは好ましくありません。このクラスは contextvar のコピーを自動化するので、このスレッドを使うだけで、ユーザーの期待どおりに動作します。
このクラスを使わなくても、代わりに次のように書けば同じ効果を得られます。
method __init__
プロパティ daemon
このスレッドがデーモンスレッドであるかどうかを示す真偽値です。 これはstart() が呼び出される前に設定する必要があります。そうしないと RuntimeError が発生します。初期値はこのスレッドを生成したスレッドから継承されます。メインスレッドはデーモンスレッドではないため、メインスレッドで作成されたすべてのスレッドはデフォルトで daemon = False になります。
デーモンスレッドだけが残ると、Python プログラム全体は終了します。
プロパティ ident
このスレッドの識別子です。まだ開始されていない場合は None になります。 これは 0 以外の整数です。get_ident() 関数を参照してください。スレッドが終了して別のスレッドが作成されると、スレッド識別子が再利用されることがあります。この識別子は、スレッドの終了後も利用できます。
プロパティ 名
識別のためにのみ使用される文字列です。 特別な意味はありません。複数のスレッドに同じ名を付けることができます。初期名はコンストラクタで設定されます。プロパティ native_id
このスレッドのネイティブな整数のスレッド ID です。まだ開始されていない場合は None です。 これは 0 以上の整数です。get_native_id() 関数を参照してください。これは、カーネルによって報告されるスレッド ID を表します。
method run
class ThreadContext
現在のスレッドとターンの情報にアクセスするためのコンテキストオブジェクト。
method __init__
プロパティ thread_id
このコンテキストのthread_id を取得します。
thread_id: このコンテキストのスレッド識別子。無効な場合は None。 戻り値: スレッド識別子。スレッドのトラッキングが無効な場合は None。
プロパティ turn_id
アクティブなコンテキスト内の現在の turn_id を取得します。 戻り値: 設定されていれば現在の turn_id、設定されていなければ None。class ContextAwareThreadPoolExecutor
呼び出し元のコンテキストで関数を実行する ThreadPoolExecutor。
これは concurrent.futures.ThreadPoolExecutor のドロップイン置換で、executor 内でも Weave の Call が想定どおりに動作するようにします。Weave では特定の contextvars を設定しておく必要があります (call_context.py を参照) 。しかし、新しいスレッドは親のコンテキストを自動的には引き継がないため、call コンテキストが失われることがあります。これは望ましくありません。このクラスは contextvar のコピーを自動化するので、この executor を使用すれば、ユーザーの期待どおりに「そのまま動作」します。
このクラスを使わなくても、代わりに次のように書けば同じ効果を得られます。
method __init__
method map
method submit
class Tool
1 回分のツール実行です。execute_tool OTel span に対応します。
arguments と result には JSONString アノテーションが使用されます。呼び出し元は dict / list / scalar を代入でき、SDK は構築時または代入時にそれを JSON エンコードします。保存される値は常に string で、GenAI semconv の wire format と一致します。
Pydantic のフィールド:
name:<class 'str'>arguments:<class 'str'>result:<class 'str'>tool_call_id:<class 'str'>tool_type:<class 'str'>tool_description:<class 'str'>tool_definitions:<class 'str'>duration_ms:<class 'int'>started_at:datetime.datetime | Noneended_at:datetime.datetime | None
method add_event
weave.permission_request) 、ライフサイクルの遷移 (例: spawned / streaming / finished) 、または span の存続期間中のある時点で発生する任意の custom マイルストーンなどです (span 全体のプロパティである attribute とは対照的です) 。
span の start から end の間 (with ブロック内) で呼び出す必要があります。この範囲外で呼び出すと、呼び出しは no-op となり、警告をログします。
method end
method set_attributes
span.set_attributes({"weave.tag": "value"}) を使用します。これは OTel の Span.set_attributes に対応しています。
span の開始から終了までの間、つまり with ブロック内で呼び出す必要があります。この範囲外で呼び出しても no-op となり、警告がログされます。バッチ取り込みの場合は、オブジェクトで宣言されているフィールドに直接値を設定し、それを log_turn / log_conversation に渡してください。
class Turn
ユーザーとエージェントの 1 回のやり取りです。invoke_agent の OTel span に対応します。
デフォルトでは、各ターンは独自の OTel トレース を開始し (continue_parent_trace=False) 、Agents タブにはターンごとに 1 つの トレース が表示されます。外側の トレース がすでにアクティブで、エージェント呼び出しをその内側にネストしたい場合は、Conversation (または Turn に直接) で continue_parent_trace=True を設定してください。たとえば、fastapi でインストルメントされたリクエスト内の場合です。
Pydantic のフィールド:
agent_name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>system_instructions:list[str]messages:list[conversation.types.Message]spans:list[conversation.conversation.LLM | conversation.conversation.Tool | conversation.conversation.SubAgent]continue_parent_trace:<class 'bool'>started_at:datetime.datetime | Noneended_at:datetime.datetime | None
method add_event
weave.permission_request) 、ライフサイクルの遷移 (例: spawned / streaming / finished) 、または span の存続期間中のある時点で発生する任意のカスタム マイルストーンです (span 全体のプロパティである attribute とは異なります) 。
span の開始から終了までの間 (with 内) に呼び出す必要があります。この範囲外では、この呼び出しは no-op となり、警告をログします。
method end
method llm
get_current_llm() を介して LLM にアクセスできるように、contextvar _current_llm を設定します。
method model_post_init
method record
system_instructions、agent_id、…) を、1 回のキーワード呼び出しにまとめます。明示的に渡された (None ではない) フィールドのみが適用され、既存の値は保持されます。messages はターンの既存のメッセージを置き換えます (単一のメッセージを追加する Turn.user(...) とは異なります) 。チェーン用に self を返します。LLM.record に対応しています。
注: ストリーミング (with) パスでは、ターン span の名前は __enter__ 時点で agent_name から設定されます。そのため、span 名にこれを反映させる必要がある場合は、record ではなく start_turn で agent_name を設定してください。なお、record でも gen_ai.agent.name 属性は更新されます。
method set_attributes
span.set_attributes({"weave.tag": "value"}) を使用します。これは OTel の Span.set_attributes に対応しています。
span の開始から終了までの間、つまり with ブロック内で呼び出す必要があります。この範囲外で呼び出しても no-op となり、警告がログされます。バッチ取り込みの場合は、オブジェクトで宣言されているフィールドを直接設定し、それを log_turn / log_conversation に渡してください。
method subagent
method tool
method user
class Usage
LLM Call における token 使用量です。
Pydantic のフィールド:
input_tokens:<class 'int'>output_tokens:<class 'int'>reasoning_tokens:<class 'int'>cache_creation_input_tokens:<class 'int'>cache_read_input_tokens:<class 'int'>
関数 add_tags
関数 as_op
-
obj_ref: オブジェクトのバージョンへの参照。ObjectRef (weave.publish() によって返される) または weave /// URI 文字列のいずれかです。 -
tags: 追加するタグ文字列のリスト。 引数: -
fn: @weave.op でデコレートされた関数。 戻り値: 関数の Op。
関数 attributes
関数 end_conversation
関数 end_llm
関数 end_session
weave.end_conversation の非推奨エイリアスです。
関数 end_turn
関数 finish
関数 get
uri: 完全修飾された Weave ref URI。 戻り値: オブジェクト。
関数 get_aliases
obj_ref: オブジェクトのバージョンへの参照。ObjectRefまたはweave:///URI 文字列を指定します。 戻り値: エイリアス文字列のリストです。
関数 get_client
関数 get_current_call
返された Call のattributesdict は、call が開始されると不変になります。Op を呼び出す前に call のメタデータを設定するには、:func:weave.attributesを使用してください。summaryフィールドは Op の実行中に更新でき、call の終了時に計算された summary 情報とマージされます。
関数 get_current_conversation
関数 get_current_llm
関数 get_current_session
weave.get_current_conversation の非推奨エイリアスです。
関数 get_current_turn
関数 get_tags
obj_ref: オブジェクトのバージョンへの参照。ObjectRef または weave /// URI 文字列を指定します。 戻り値: タグ文字列のリストです。
関数 get_tags_and_aliases
obj_ref: オブジェクトのバージョンへの参照です。ObjectRef または weave /// URI 文字列を指定します。 戻り値:(タグ, エイリアス)のタプルです。どちらも文字列のリストです。
関数 init
init の戻り値への参照を保持しておく必要はありません。
init の実行後、weave.op でデコレートされた関数の Call は、指定したプロジェクトにログされます。
引数:
注: クライアントレベルの後処理は、各 op 独自の後処理の後に実行されます。順序は常に次のとおりです: 1. op 固有の後処理 2. クライアントレベルの後処理
project_name: ログ先の Weights & Biases のチーム名と project 名です。チームを指定しない場合は、デフォルトの entity が使用されます。デフォルトの entity を確認または更新するには、W&B Models ドキュメントの User Settings を参照してください。settings: Weave クライアント全般の設定です。UserSettingsインスタンス、または次のいずれかのキーを含む dict (いずれも省略可能) を指定できます。すべての設定は、 接頭辞 WEAVE_ を使用する環境変数でも設定できます (例:WEAVE_DISABLED=true) 。使用可能な設定: -disabled(bool): すべての関数でトレースを無効にします。デフォルト:False-print_call_link(bool): ops について、Weave UI へのリンクをターミナルに出力します。デフォルト:True-log_level(str): ログする情報の種類を設定します (DEBUG,INFO,WARNING,ERROR,CRITICAL) 。デフォルト:INFO-display_viewer(str): Weave がコンソールでオブジェクトをどのように表示するかを制御します (auto,rich,print) 。デフォルト:auto-capture_code(bool): トレース対象の ops のコードを Weave プロジェクトに取得します。 デフォルト:True-implicitly_patch_integrations(bool): サポートされるライブラリに自動的にパッチを適用します。デフォルト:True-redact_pii(bool): メールアドレス、電話 番号、クレジットカードなどの機密情報がないか、すべてのトレースデータをスキャンし、サーバーに送信する前にプレースホルダー値に置き換えます。presidio-analyzer パッケージと presidio-anonymizer パッケージが必要です。Default:False-redact_pii_fields(list[str]):redact_piiが True の場合に、マスクする PII エンティティのタイプを指定します。空の場合は、Presidio のデフォルト セットを使用します。例 [‘EMAIL’,‘PHONE_NUMBER’,‘CREDIT_CARD’,‘US_SSN’]。完全なリストは https://microsoft.github.io/presidio/supported_entities/ を参照してくださいDefault:[]-redact_pii_exclude_fields(list[str]): 除外する PII エンティティ タイプ。Default:[]-capture_client_info(bool): Python/SDK のバージョン情報を取得します。Default:True-capture_system_info(bool): OS 情報を取得します。Default:True-client_parallelism(int): バックグラウンド Ops 用ワーカーの数。Default:auto-use_server_cache(bool): サーバー 応答のローカル ディスク キャッシュを有効にします。 -server_cache_size_limit(int): バイト単位のキャッシュ サイズの上限。Default:1_000_000_000-server_cache_dir(str): サーバー キャッシュ用のディレクトリ。Default:temporary-scorers_dir(str): Scorer モデル チェックポイント用のディレクトリ。Default:~/.cache/wandb/weave-scorers-max_calls_queue_size(int): キューの最大サイズ (0 = 無制限) 。Default:100_000-retry_max_interval(float): 再試行の最大間隔 (秒) 。Default:300-retry_max_attempts(int): 最大再試行回数。Default:3-enable_disk_fallback(bool): 破棄された 項目をディスクに書き込みます。Default:True-use_parallel_table_upload(bool): 大きな表の並列チャンク upload を有効にします。False の場合、表はより小さなチャンクに分けて順次 upload されます。Default:True-http_timeout(float): HTTP リクエストの完了を待機する最大時間 (秒) です。これには、接続時間、データ転送時間、サーバーでの処理時間が含まれます。ネットワークが低速な場合や、大きなペイロードを扱う場合は、この値を増やしてください。Default:30.0-use_stainless_server(bool): より高い型安全性、自動リトライ、改善されたエラー処理を備えた、Stainless 生成の HTTP クライアントを使用します。これは実験的な機能であり、将来のバージョンではデフォルトになる可能性があります。Default:False-use_calls_complete(bool): 開始/終了を個別にリクエストする代わりに、完了した Call データ (開始と終了) を 1 つのリクエストにまとめて送信する、最適化された書き込みパスを使用します。これによりサーバー負荷が軽減され、特に短時間で終了する Ops でパフォーマンスが向上します。Default:True-use_otel_v2: (bool): OTel 対応インテグレーションを、それぞれの OTel バリアント経由でルーティングします。Default:Trueautopatch_settings: (非推奨) autopatch インテグレーションの設定です。代わりに、明示的にパッチを適用してください。postprocess_inputs: このクライアントによってトレースされるすべての op の入力に適用される関数。postprocess_output: このクライアントがトレースする各 op の出力に適用される関数。attributes: このクライアントによって生成されるすべての trace に適用される属性の辞書。 戻り値: Weave クライアント。
関数 link_prompt_to_registry
-
prompt: 公開済みのprompt、ObjectRef、または完全修飾された weave ///… URI string。 -
target_path:<registry_project>/<portfolio_name>形式のRegistryの宛先パス。例:wandb-registry-prompts/my-prompt-collection。 -
aliases: 作成されるRegistryバージョンに付与するオプションのエイリアス。 戻り値: -
LinkAssetToRegistryRes: registry-link endpoint からのパース済みレスポンス。
関数 list_aliases
関数 list_tags
関数 log_call
op(str): ログするオペレーション名です。これは、その call のop_nameとして使用されます。匿名オペレーション (公開済みの ops を参照しない文字列) もサポートされます。inputs(dict[str, Any]): オペレーションの入力パラメーターを格納した辞書です。output(Any): オペレーションの出力 / 結果です。parent(Call | None): この call をネストするための省略可能な親 call です。指定しない場合、この call はルートレベルの call になります (現在の call コンテキストが存在する場合は、その下にネストされます) 。デフォルトは None です。attributes(dict[str, Any] | None): call に付加する省略可能なメタデータです。これらは call の作成後に固定されます。デフォルトは None です。display_name(str | Callable[[Call], str] | None): UI で call に表示する省略可能な表示名です。文字列、または call を受け取って文字列を返す callable を指定できます。デフォルトは None です。use_stack(bool): call をランタイムスタックに積むかどうかです。True の場合、call は call コンテキスト内で利用可能になり、weave.require_current_call()でアクセスできます。False の場合、call はログされますが、call スタックには追加されません。デフォルトは True です。exception(BaseException | None): オペレーションが失敗した場合にログする省略可能な例外です。デフォルトは None です。
Call: 完全な トレース 情報を含む、作成および完了済みの Call オブジェクトです。
.spans属性には、その子要素が含まれます。conversation_idが空の場合は自動生成されます。デフォルトでは、各 turn はそれぞれ独自の OTel trace を持ちます。agent_name / modelは会話レベルのデフォルトです。Turn 自身の値が優先され、Turn 側で空の場合にのみ会話の値が補完されます。会話のcontinue_parent_traceはすべての turn に適用されます (Turn ごとのcontinue_parent_traceは、意図的にここでは無効になります) 。
attributesは、出力されるすべてのスパンに付与されます。カスタムの semconv 以外のキーを使用してください。スパン自身のgen_ai.* / weave.*属性と競合するキーはサポートされません (どちらの値が優先されるかはパスによって異なります) 。
function log_session
weave.log_conversation の非推奨エイリアスです。
session_id / session_name は conversation_id / conversation_name に対応します。
関数 log_turn
started_at / ended_at を設定しておく必要があります。送出される OTel スパン の Timestamp は、これらのフィールドから取得されます。turn 自身で値が指定されていない場合は、最も早い/遅い子の Timestamp が使用され、それもない場合は now() にフォールバックします。エージェントのアイデンティティ フィールド (agent_id / agent_description / agent_version) は、ストリーミングパスと同じです。
attributes は、送出されるすべての スパン に付与されます。ストリーミングパスでは、代わりにこれらをアクティブな 会話 から読み取ります。独自の、semconv ではないキーを使用してください。スパン 自身の gen_ai.* / weave.* 属性と競合するキーはサポートされません (どちらの値が優先されるかはパスによって異なります)。
関数 op
関数 otel_traces_endpoint
func: デコレートする関数。name: op のカスタム名。デフォルトは関数名です。call_display_name: Call の表示名。文字列または callable を指定できます。postprocess_inputs: ログする前に入力を変換する関数。postprocess_output: ログする前に出力を変換する関数。tracing_sample_rate: トレースする Call の割合 (0.0~1.0) 。enable_code_capture: この op のソースコードを取得するかどうか。accumulator: ストリーミング op の結果を蓄積する関数。attributes: この op が作成するすべての Call に、最も低い優先順位でマージされるデフォルトの属性です。weave.attributes()コンテキストおよび明示的な Call ごとの属性は、キーが衝突した場合にこれらより優先されます。予約済みの “weave” キーはここでは設定できません。eager_call_start: True の場合、Call の開始はバッチ処理されず、すぐに送信されます。評価のように実行時間の長い operation を UI にすぐ表示する必要がある場合に便利です。 引数:
関数 publish
-
base_url: トレースサーバーのベース URL。デフォルトはweave_trace_server_url()です。 引数: -
obj: 保存してバージョン管理するオブジェクト。 -
name: オブジェクトの保存時に使用する名。 -
tags: 公開されたオブジェクトバージョンに追加する任意の タグ のリスト。 -
aliases: 公開されたオブジェクトバージョンに設定する任意の エイリアス のリスト。 戻り値: 保存されたオブジェクトへの Weave Ref。
関数 ref
location: Weave Ref URI、またはweave.init()が呼び出されている場合はname:versionもしくはname。バージョンが指定されていない場合はlatestが使用されます。 戻り値: オブジェクトを指す Weave Ref。
関数 remove_aliases
関数 remove_tags
obj_ref: オブジェクトへの参照です。ObjectRef または weave /// URI 文字列を指定します。alias: 削除するエイリアス名、またはエイリアス名のリストです。 引数:
関数 require_current_call
weave.init が返す WeaveClient の get_call method を使用して、Call オブジェクトを取得できます。
call method を使用することもできます。例:
obj_ref: オブジェクトのバージョンへの参照。ObjectRef または weave /// URI 文字列のいずれかです。tags: 削除するタグ文字列のリスト。 戻り値: 現在実行中の Op の Call オブジェクト
NoCurrentCallError: トラッキング が初期化されていない場合、またはこの method が Op の外で呼び出された場合。
関数 set_aliases
関数 set_view
_weave.views.<name>にカスタムviewを追加します。
-
obj_ref: オブジェクトのバージョンへの参照。ObjectRef または weave /// URI 文字列のいずれかです。 -
alias: 設定するエイリアス名、またはエイリアス名のリスト (例: “production”) 。 引数: -
name: viewの名前 (summary._weave.views配下のキー) 。 -
content:weave.Contentインスタンス、または生の文字列。文字列は、指定された拡張子またはMIMEタイプを使用してContent.from_textでラップされます。 -
extension:contentが文字列の場合に使用するオプションのファイル拡張子。 -
mimetype:contentが文字列の場合に使用するオプションのMIMEタイプ。 -
metadata: テキストからContentを作成する際に付加するオプションのメタデータ。 -
encoding: テキストからContentを作成する際に適用するテキストエンコーディング。 戻り値: なし
import weave
weave.init(“proj”) @weave.op … def foo(): … weave.set_view(“readme”, ”# Hello”, extension=“md”) … return 1 foo()
function start_conversation
contextvar を設定します。
attributes は、この会話が生成するすべての スパン に付与されます (例: weave.integration.* のようなインテグレーションのアイデンティティ) 。カスタムの非 semconv キーを使用してください。semantic-convention フィールドは、型付きパラメータ (conversation_name、model、…) で設定します。スパン 自身の gen_ai.* / weave.* 属性と衝突するキーはサポートされません。どちらの値が優先されるかは経路依存です (ストリーミングか log_turn かによって異なります) 。
関数 start_llm
provider_name は明示的に渡してください。SDK はモデル ID からこれを推論しません。接頭辞ベースの推測では、ユーザーが Fine-tune したモデル (例: text-... という名前のモデル) を誤って判定し、将来のモデル名に関する前提を telemetry に組み込んでしまうため、事後に修正するコストが高くなります。
関数 start_session
weave.start_conversation の非推奨エイリアスです。
session_id / session_name は conversation_id / conversation_name にマッピングされます。
function start_subagent
start_tool と同様で、親子関係の伝播は OTel コンテキストが処理するため、明示的な委譲は不要です。
関数 start_tool
関数 start_turn
get_current_turn() は None を返します。contextvar ベースでモジュール間アクセスを行う必要がある場合は、代わりに conversation.start_turn() を使用してください。
関数 thread
-
thread_id: このコンテキストで Call に関連付けるスレッド識別子。指定しない場合は、UUID v7 が自動生成されます。Noneの場合は、スレッドの トラッキング が無効化されます。 返される値: -
ThreadContext:thread_idと現在のturn_idにアクセスできるオブジェクト。