W&B Sandboxes는 비공개 프리뷰로, 초대를 받은 경우에만 사용할 수 있습니다. 등록을 요청하려면
지원팀 또는 AISE에 문의하세요.
샌드박스에서 API 키 및 토큰과 같은 민감한 정보에 액세스하려면 W&B Python SDK와 함께 W&B Secrets Manager를 사용하세요.
샌드박스에서 시크릿을 사용하려면 먼저 팀의 Secrets Manager에 시크릿을 추가하세요. 그런 다음 샌드박스를 생성할 때 해당 시크릿을 이름으로 참조하세요. 코드나 샌드박스 설정에 시크릿 값을 직접 포함하지 마세요.
W&B는 요청된 각 시크릿을 환경 변수로 샌드박스에 주입합니다. 기본적으로 환경 변수 이름은 시크릿 이름과 같습니다. env_var 매개변수를 사용해 환경 변수 이름을 사용자 지정할 수 있습니다.
샌드박스에 포함할 시크릿을 지정하려면 Secret 클래스를 사용하세요. 하나 이상의 Secret 객체를 Sandbox.run()의 secrets 매개변수에 전달하세요. 각 Secret 객체는 이름으로 시크릿을 식별합니다. W&B는 시크릿 값을 환경 변수로 샌드박스에 주입합니다.
시크릿 값이 아니라 시크릿 이름을 전달하세요. 샌드박스 내에서는 해당 환경 변수에서 시크릿을 읽어 사용하세요.
다음 예제에서는 기존 시크릿 두 개(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"]로 사용할 수 있습니다.
시크릿의 환경 변수 이름을 사용자 지정하려면 맞춤형 환경 변수 이름 사용을 참조하세요.
기본적으로 시크릿의 환경 변수 이름은 시크릿 이름과 동일합니다. 특정 시크릿에 대해 sandbox의 환경 변수를 사용자 지정하려면 Secret의 env_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)