Passer au contenu principal
W&B Sandboxes est en aperçu privé, disponible uniquement sur invitation. Pour demander à y participer, contactez l’assistance ou votre AISE.
Utilisez le W&B Secrets Manager avec le SDK Python W&B pour accéder, dans un sandbox, à des informations sensibles telles que des clés API et des jetons. Pour utiliser un secret dans un sandbox, ajoutez-le d’abord au Secrets Manager de votre équipe. Faites ensuite référence à ce secret par son nom lorsque vous créez le sandbox. N’incluez pas directement la valeur du secret dans votre code ni dans la configuration du sandbox. W&B injecte chaque secret demandé dans le sandbox sous forme de variable d’environnement. Par défaut, le nom de la variable d’environnement correspond au nom du secret. Vous pouvez personnaliser le nom de la variable d’environnement avec le paramètre env_var.
Voir Gérer les secrets pour plus d’informations sur la création et la gestion des secrets dans votre compte W&B.

Accéder aux secrets dans un sandbox

Utilisez la classe Secret pour spécifier quels secrets inclure dans un sandbox. Passez un ou plusieurs objets Secret au paramètre secrets de Sandbox.run(). Chaque objet Secret identifie un secret par son nom. W&B injecte la valeur du secret dans le sandbox sous forme de variable d’environnement.
Passez le nom du secret, et non sa valeur. Dans le sandbox, lisez le secret à partir de la variable d’environnement correspondante.
L’exemple suivant met deux secrets existants à disposition dans le sandbox : HF_TOKEN et 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)
Dans le sandbox, accédez à chaque secret via sa variable d’environnement. Dans cet exemple, HF_TOKEN est disponible dans os.environ["HF_TOKEN"] et OPENAI_API_KEY dans os.environ["OPENAI_API_KEY"]. Pour personnaliser le nom de variable d’environnement d’un secret, voir Utiliser un nom de variable d’environnement personnalisé.

Utiliser un nom personnalisé pour une variable d’environnement

Par défaut, le nom de la variable d’environnement d’un secret correspond à celui du secret. Pour personnaliser la variable d’environnement d’un sandbox pour un secret donné, définissez le paramètre env_var sur Secret (Secret(env_var="CUSTOM_NAME")). L’exemple suivant vérifie que le secret HF_TOKEN est disponible dans le sandbox :
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)