W&B Sandboxes は招待制のプライベートプレビューです。利用を希望する場合は、
サポート または担当の AISE にお問い合わせください。
サンドボックス内で APIキーやトークン などの機密情報にアクセスするには、W&B Python SDK で W&B Secrets Manager を使用します。
サンドボックスでシークレットを使用するには、まずチームの Secrets Manager に追加します。次に、サンドボックスの作成時にそのシークレットを名前で参照します。シークレットの値をコードやサンドボックスの設定に直接含めないでください。
W&B は、要求された各シークレットを環境変数としてサンドボックスに挿入します。デフォルトでは、環境変数名はシークレット名と一致します。env_var パラメーターを使用すると、環境変数名をカスタマイズできます。
サンドボックスに含めるシークレットを指定するには、Secret クラスを使用します。1 つ以上の Secret オブジェクトを Sandbox.run() の secrets パラメーターに渡します。各 Secret オブジェクトでは、シークレットを名で指定します。W&B はシークレット値を環境変数としてサンドボックスに設定します。
シークレット値ではなく、シークレット名を渡してください。サンドボックス内では、対応する環境変数からシークレットを読み取ってください。
次の例では、既存の 2 つのシークレット HF_TOKEN と OPENAI_API_KEY をサンドボックスで使用可能にします。
from wandb.sandbox import Sandbox, Secret
with Sandbox.run(
secrets=[
Secret(name="HF_TOKEN"),
Secret(name="OPENAI_API_KEY"),
],
) as sandbox:
result = sandbox.exec([
"python",
"-c",
"""
import os
if "HF_TOKEN" in os.environ:
print(f"Hugging Face token found.")
if "OPENAI_API_KEY" in os.environ:
print(f"OpenAI key token found.")
""",
]).result()
print(result.stdout)
サンドボックス内では、各シークレットに対応する環境変数を通じてアクセスします。この例では、HF_TOKEN は os.environ["HF_TOKEN"] として利用でき、OPENAI_API_KEY は os.environ["OPENAI_API_KEY"] として利用できます。
シークレットの環境変数名をカスタマイズするには、カスタム環境変数名を使用するを参照してください。
デフォルトでは、シークレットの環境変数名はシークレット名と同じです。特定のシークレットについてサンドボックスで使用する環境変数名を変更するには、Secret の env_var パラメーターを設定します (Secret(env_var="CUSTOM_NAME")) 。
次の例では、HF_TOKEN シークレットがサンドボックス内で利用可能であることを確認します。
from wandb.sandbox import Sandbox, Secret
with Sandbox.run(
secrets=[
Secret(name="HF_TOKEN", env_var="HUGGINGFACE_TOKEN")
],
) as sandbox:
result = sandbox.exec([
"python",
"-c",
"""
import os
if "HUGGINGFACE_TOKEN" in os.environ:
print(f"Hugging Face token found!")
""",
]).result()
print(result.stdout)