메인 콘텐츠로 건너뛰기
W&B Sandboxes는 비공개 프리뷰로, 초대를 받은 경우에만 사용할 수 있습니다. 등록을 요청하려면 지원팀 또는 AISE에 문의하세요.
샌드박스에서 API 키 및 토큰과 같은 민감한 정보에 액세스하려면 W&B Python SDK와 함께 W&B Secrets Manager를 사용하세요. 샌드박스에서 시크릿을 사용하려면 먼저 팀의 Secrets Manager에 시크릿을 추가하세요. 그런 다음 샌드박스를 생성할 때 해당 시크릿을 이름으로 참조하세요. 코드나 샌드박스 설정에 시크릿 값을 직접 포함하지 마세요. W&B는 요청된 각 시크릿을 환경 변수로 샌드박스에 주입합니다. 기본적으로 환경 변수 이름은 시크릿 이름과 같습니다. env_var 매개변수를 사용해 환경 변수 이름을 사용자 지정할 수 있습니다.
시크릿을 생성하고 W&B 계정에서 관리하는 방법에 대한 자세한 내용은 Manage secrets를 참조하세요.

샌드박스에서 시크릿에 액세스하기

샌드박스에 포함할 시크릿을 지정하려면 Secret 클래스를 사용하세요. 하나 이상의 Secret 객체를 Sandbox.run()secrets 매개변수에 전달하세요. 각 Secret 객체는 이름으로 시크릿을 식별합니다. W&B는 시크릿 값을 환경 변수로 샌드박스에 주입합니다.
시크릿 값이 아니라 시크릿 이름을 전달하세요. 샌드박스 내에서는 해당 환경 변수에서 시크릿을 읽어 사용하세요.
다음 예제에서는 기존 시크릿 두 개(HF_TOKENOPENAI_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_TOKENos.environ["HF_TOKEN"]으로, OPENAI_API_KEYos.environ["OPENAI_API_KEY"]로 사용할 수 있습니다. 시크릿의 환경 변수 이름을 사용자 지정하려면 맞춤형 환경 변수 이름 사용을 참조하세요.

맞춤형 환경 변수 이름 사용

기본적으로 시크릿의 환경 변수 이름은 시크릿 이름과 동일합니다. 특정 시크릿에 대해 sandbox의 환경 변수를 사용자 지정하려면 Secretenv_var 파라미터를 설정하세요(Secret(env_var="CUSTOM_NAME")). 다음 예제에서는 HF_TOKEN 시크릿을 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)