메인 콘텐츠로 건너뛰기
이 기능은 Python SDK에서만 사용할 수 있습니다.
일부 조직은 대규모 언어 모델(LLM) 워크플로에서 이름, 전화번호, 이메일 주소와 같은 개인 식별 정보(PII)를 처리합니다. 이 데이터를 W&B Weave에 저장하면 규정 준수 및 보안상 위험이 발생할 수 있습니다. 이 데이터를 로그하기 전에 제거하면 에이전트가 GDPRHIPAA와 같은 규정을 준수하는 데 도움이 됩니다. Sensitive Data Protection 기능을 사용하면 Weave가 트레이스를 Weave 서버로 보내기 전에 트레이스에서 개인 식별 정보(PII)를 자동으로 마스킹할 수 있습니다. 이 기능은 Microsoft Presidio를 Weave Python SDK에 통합하므로 SDK 수준에서 마스킹 설정을 제어할 수 있습니다. Sensitive Data Protection 기능은 Python SDK에 다음 기능을 추가합니다:
  • redact_pii 설정을 weave.init() 호출에서 활성화하거나 비활성화하여 PII 마스킹을 켤 수 있습니다.
  • redact_pii = True일 때 일반적인 entity를 자동으로 마스킹합니다.
  • 구성 가능한 redact_pii_fields 설정으로 마스킹할 필드를 맞춤 설정할 수 있습니다.
  • redact_pii_exclude_fields 설정으로 특정 entity를 마스킹 대상에서 제외할 수 있습니다.

PII 마스킹 활성화

이 section에서는 필요한 의존성을 설치하고, weave.init()에서 PII 마스킹을 켜고, 필요에 따라 Weave가 마스킹할 entity를 조정하는 방법을 안내합니다. Weave에서 Sensitive Data Protection 기능을 시작하려면 다음 step을 완료하세요:
  1. 필요한 의존성을 설치합니다:
    pip install presidio-analyzer presidio-anonymizer
    
  2. 마스킹을 활성화하도록 weave.init() call을 수정합니다. redact_pii=True로 설정하면 Weave는 일반적인 entity를 기본적으로 마스킹합니다:
    import weave
    
    weave.init("my-project", settings={"redact_pii": True})
    
  3. 선택: redact_pii_fields 매개변수로 마스킹 필드를 사용자 지정합니다:
    weave.init("my-project", settings={"redact_pii": True, "redact_pii_fields":["CREDIT_CARD", "US_SSN"]})
    
    감지 및 마스킹할 수 있는 entity의 전체 목록은 Presidio에서 지원하는 PII entity를 참조하세요.
  4. 선택: redact_pii_exclude_fields 매개변수로 특정 entity를 마스킹에서 제외합니다. 기본 마스킹은 유지하면서 특정 entity 유형은 보존하려는 경우에 유용합니다. 다음 예시는 EMAIL_ADDRESSPERSON을 제외한 모든 기본 entity를 마스킹하는 방법을 보여줍니다:
    weave.init("my-project", settings={"redact_pii": True, "redact_pii_exclude_fields":["EMAIL_ADDRESS", "PERSON"]})
    
이 step을 완료하면 Weave는 구성된 PII entity를 Weave 서버로 전송하기 전에 트레이스에서 마스킹합니다.

기본적으로 마스킹되는 entity

이 섹션에는 redact_pii_fields를 지정하지 않고 PII 마스킹을 활성화할 때 Weave가 자동으로 마스킹하는 PII entity 유형이 나열되어 있습니다. PII 마스킹이 활성화되면 다음 entity가 자동으로 마스킹됩니다.
  • CREDIT_CARD
  • CRYPTO
  • EMAIL_ADDRESS
  • ES_NIF
  • FI_PERSONAL_IDENTITY_CODE
  • IBAN_CODE
  • IN_AADHAAR
  • IN_PAN
  • IP_ADDRESS
  • LOCATION
  • PERSON
  • PHONE_NUMBER
  • UK_NHS
  • UK_NINO
  • US_BANK_NUMBER
  • US_DRIVER_LICENSE
  • US_PASSPORT
  • US_SSN

REDACT_KEYS로 민감한 키 마스킹하기

PII 마스킹 외에도 Weave SDK는 REDACT_KEYS를 사용한 맞춤형 키 마스킹을 지원합니다. 이는 PII 범주에 속하지는 않지만 비공개로 유지해야 하는 추가 민감 데이터를 보호하려는 경우에 유용합니다. 예를 들면 다음과 같습니다.
  • API 키
  • 인증 헤더
  • 토큰
  • 내부 ID
  • 설정 값

사전 정의된 REDACT_KEYS

Weave는 기본적으로 다음과 같은 민감한 키를 자동으로 마스킹합니다:
[
  "api_key",
  "auth_headers",
  "authorization"
]

맞춤형 키 추가하기

애플리케이션에서 민감한 값이 포함된 다른 필드 이름을 사용하는 경우, 기본 REDACT_KEYS 목록을 확장할 수 있습니다. 트레이스에서 마스킹하려는 맞춤형 키를 직접 추가하세요:
import weave
from weave.utils import sanitize

client = weave.init("my-project", settings={"redact_pii": True})

# 마스킹할 맞춤형 키 추가
sanitize.add_redact_key("client_id")
sanitize.add_redact_key("token")

client_id = "123"
token = "789"

@weave.op
def test(client_id, token):
    return client_id + token

test(client_id, token)
Weave UI에서 확인하면 client_idtoken 값은 "REDACTED"로 표시됩니다:
client_id = "REDACTED"
token = "REDACTED"

사용 정보

  • 이 기능은 Python SDK에서만 사용할 수 있습니다.
  • 마스킹을 활성화하면 Presidio 의존성으로 인해 처리 시간이 늘어납니다.