メインコンテンツへスキップ
アプリケーションで LLM プロバイダーのライブラリ (OpenAI、Anthropic、Cohere、Mistral など) を使用している場合、autopatching はすべての LLM コールのトレースを Weave が自動で処理するための仕組みです。weave.init() を呼び出すと、Weave はサポートされている LLM クライアントライブラリを自動的にフック (パッチ適用) します。アプリケーションコードは変更する必要がありません。従来どおりプロバイダーの SDK を使うだけで、各リクエストが Weave Call として記録されます。最小限のセットアップで、完全なトレーシングを利用できます。 このページでは、その挙動をいつ・どのように変更するかを説明します。自動追跡をオフにする、特定のプロバイダーに限定する、あるいは入力と出力を後処理する (たとえば PII (個人情報) をマスキングする) といった操作方法を扱います。

デフォルトの動作

デフォルトでは、Weave は openaianthropic などの一般的な LLM ライブラリへの呼び出しに対して、自動的にパッチを適用し、追跡します。プログラムの冒頭で weave.init(...) を呼び出し、その後はこれらのライブラリを通常どおり使用してください。これらの呼び出しは、プロジェクト の Traces に表示されます。

自動パッチの設定

autopatch_settings 引数は非推奨です。暗黙的なパッチ適用を無効にするには implicitly_patch_integrations=False を使用するか、インテグレーションごとに patch_openai(settings={...}) のような特定のパッチ関数を呼び出して設定してください。
Weave は、サポートされているすべてのインテグレーションに対して、デフォルトで 暗黙的な自動パッチ適用 を行います。暗黙的パッチ適用 (自動) : ライブラリは、インポートされるタイミングに関係なく自動的にパッチ適用されます。
# オプション 1: weave.init() の前にインポートする
import openai
import weave
weave.init('your-team-name/your-project-name')  # OpenAI は自動的にパッチ適用されます!

# オプション 2: weave.init() の後にインポートする
import weave
weave.init('your-team-name/your-project-name')
import anthropic  # インポートフック経由で自動的にパッチ適用されます!
暗黙的パッチ適用の無効化: 明示的に制御したい場合は、自動パッチ適用を無効にできます。
import weave

# オプション 1: settings パラメーター経由
weave.init('your-team-name/your-project-name', settings={'implicitly_patch_integrations': False})

# オプション 2: 環境変数経由
# スクリプトを実行する前に WEAVE_IMPLICITLY_PATCH_INTEGRATIONS=false を設定します

# 暗黙的パッチ適用を無効にした場合は、インテグレーションを明示的にパッチ適用する必要があります
import openai
weave.patch_openai()  # OpenAI のトレーシングにはこれが必須になります
明示的パッチ適用 (手動) : より細かく制御するために、インテグレーションを明示的にパッチ適用できます。
import weave
weave.init('your-team-name/your-project-name')
weave.integrations.patch_openai()  # OpenAI のトレーシングを有効化
weave.integrations.patch_anthropic()  # Anthropic のトレーシングを有効化

入力と出力の後処理

パッチ関数に settings を渡すことで (たとえば PII やシークレットをマスキングするなど) 、入力と出力の記録方法をカスタマイズできます。
import weave.integrations

def redact_inputs(inputs: dict) -> dict:
    if "email" in inputs:
        inputs["email"] = "[REDACTED]"
    return inputs

weave.init(...)
weave.integrations.patch_openai(
    settings={
        "op_settings": {"postprocess_inputs": redact_inputs}
    }
)
機微なデータの扱いについての詳細は、How to use Weave with PII data を参照してください。