Skip to main content
Weave で表示したいメディアが、すでにご自身のバケットにある場合は、この方法を使用します。
  • 動画パイプラインのフレーム
  • ブラウザエージェントのスクリーンショット
  • モデルが S3 に書き込んだ画像
それらのバイト列を Weave に再アップロードする代わりに、オブジェクトの URI を string としてログすると、Weave はその画像や動画をご自身のバケットからインライン表示します。Weave に送信されるのは URI のみで、バイト列はバケット内に保持されます。2 GB の動画をログするコストは、そのパスをログする場合と同じです。 これは Content API を使ってメディアをログする方法とは異なります。Content API ではバイト列を読み取って Weave に保存します。
これは Weave の機能であり、W&B artifact と run のストレージを支える platform BYOB (secure storage connector) とは別のものです。参照メディア用のバケットはチームごとに設定され、必要なのは読み取りアクセスのみです。

仕組み

参照メディアのレンダリングは、次の 3 つの手順で行われます。
  1. メディアオブジェクトをバケットに保存します。たとえば s3://[YOUR-BUCKET]/frames/000123.png です。
  2. その URI を、トレース内の任意の場所に string 値としてログします。たとえば、Op の input または output、あるいはエージェント tool の結果です。フィールド名は問いません。
  3. トレースを開くと、Weave は URI を有効期限の短い 事前署名付き URL に解決し、インラインでレンダリングします。レンダリング方法はファイル拡張子によって決まります。一般的な画像形式 (.png.jpg.gif など) や動画形式 (.mp4.mov.webm など) はインラインでレンダリングされます。その他の形式はダウンロードリンクとしてレンダリングされます。
Weave が解決するのは、チームに登録されたバケットを指す URI のみです。サポートされるスキームは s3://gs:// です。

前提条件

  • この機能は、W&B Multi-tenant Cloud でのみサポートされます。
  • W&BアカウントとAPIキー
  • ご自身で管理しているクラウドストレージバケット (S3 または GCS) 。少なくとも 1 つのオブジェクトが含まれている必要があります。
  • 組織管理者権限。参照バケットを追加するには、組織でチームを作成する場合と同じ権限が必要です。

バケットを設定する

W&B にバケットへの読み取りアクセスを付与し、ブラウザが CORS 経由でオブジェクトを取得できるようにします。 トレースを表示すると、W&B は参照先の各オブジェクトに対して、有効期限の短い署名付きダウンロード URL を生成します。署名付き URL を生成できるよう、W&B インテグレーションのプリンシパルにバケットへの読み取りアクセスを付与してください。これはインライン表示のための読み取り専用アクセスです。
  1. W&B インテグレーションのプリンシパルに s3:GetObject を付与するバケットポリシーを適用します。[YOUR-BUCKET] をバケット名に置き換え、以下を bucket-policy.json として保存します。
    次に、これをバケットに適用します。
  2. アプリがブラウザでオブジェクトを取得できるように、CORS 設定を適用します。以下を cors.json として保存します。
    次に、これをバケットに適用します。
オブジェクトが顧客管理の KMS キーで暗号化されている場合は、そのキーポリシーでも arn:aws:iam::725579432336:role/WandbIntegrationkms:Decrypt を付与する必要があります。バケットポリシーだけでは不十分です。
これで、W&B はバケット内のオブジェクトを読み取ることができ、Weave UI はブラウザでそれらを取得できます。

参照バケットを登録する

Weave が参照 URI に対して事前署名付き URL を生成して表示できるように、Team settings でバケットを登録します。
  1. Team settings ページ (https://wandb.ai/[YOUR-TEAM]/settings) に移動します。
  2. Reference buckets セクションで、Add bucket を選択します。
  3. クラウドプロバイダ (AWS または Google Cloud) を選択します。
  4. バケット名には [YOUR-BUCKET] のみを入力します。s3:// または gs:// の接頭辞は含めないでください。
  5. オブジェクトキーには、バケット内の既存オブジェクトのキーを入力します。たとえば photos/cat.png です (完全な URL ではなく、オブジェクトキーのみ) 。W&B はこの 1 つのオブジェクトを読み取って、読み取りアクセス権があること、および CORS が正しく設定されていることを確認します。ここで確認するのはアクセス権のみです。検証が完了すると、バケット内の任意のオブジェクトで事前署名が機能するようになります。
  6. 必要に応じて、Test connection を選択し、保存せずに設定を検証します。
  7. Add bucket を選択して保存します。
Team settings の Add reference bucket ダイアログ。クラウドプロバイダ、バケット名、既存のオブジェクトキーの各フィールドに加え、Test connection ボタンと Add bucket ボタンがあります。
バケットが登録されるまで、参照 URI は表示されません。登録すると、Weave がそのオブジェクトに対して事前署名付き URL を生成し、表示できるようになります。

エージェント スパンを使用してメディア参照をログする

エージェント ツールの結果としてバケット URI を返すと、Weave はその URI を、生成元の tool call の Agents ビューにインライン表示します。次の例では、会話、ターン、ツール スパンを開始し、ツールの結果としてバケット URI を設定します。[YOUR-TEAM]、[YOUR-PROJECT]、[YOUR-BUCKET] はご自身の値に置き換えてください。
この例では Weave のエージェント スパンを使用しています。LLM calls や完全なエージェント ループを含むマルチターンのセットアップ全体については、カスタム エージェントのクイックスタートを参照してください。

Weave Agents で参照を表示する

weave.init() が出力するリンクから会話を開きます。参照先の画像または動画は、URI を返した tool call の Agents ビュー内にインラインで表示されます。Weave が URI を解決できない場合 (たとえば、オブジェクト が存在しない、または バケット が登録されていない場合) 、URI 文字列がそのまま表示されます。
独自のクラウド バケット 内の オブジェクト を指す バケット URI から解決され、Weave Agents ビューの tool call にインライン表示された参照画像。