Top Secret은 자유 텍스트에서 민감한 정보를 식별하고 필터링하는 강력한 도구입니다. 이 도구는 다음과 같은 주요 특징과 활용 사례를 가집니다.
1. 민감 정보 필터링 메커니즘
- 정규 표현식(Regex) 및 개체명 인식(NER) 결합: 신용카드 번호나 이메일과 같이 정규 표현식으로 식별 가능한 정보와, 사람 이름, 위치 등 NER(Named-Entity Recognition)을 통해 식별 가능한 정보를 모두 처리합니다. 특히 MITIE Ruby와 같은 도구를 활용하여 NER 모델과의 연동을 용이하게 합니다.
- 필터링된 값의 복원: 필터링된 텍스트를 외부 API로 전송한 후, API 응답에서 필터링된 값을 원래의 정보로 복원할 수 있는 매핑(mapping)을 제공합니다. 이는 챗봇과의 대화에서 사용자에게 자연스러운 응답을 제공하는 데 필수적입니다.
2. 주요 활용 시나리오
- 챗봇 및 LLM과의 통신: 사용자 데이터를 챗봇이나 LLM에 전송하기 전에 민감 정보를 필터링하여 개인 정보 유출을 방지합니다. 필터링된 정보는 [PERSON_1], [LOCATION_1]과 같은 형태로 대체됩니다.
- 대화 상태 관리: 이전 메시지에서 민감한 데이터가 유출되지 않도록 대화의 모든 메시지를 요청에 포함하기 전에 필터링합니다.
TopSecret::Text.filter_all
과 같은 기능을 통해 여러 메시지를 일괄 처리할 수 있습니다. - 데이터베이스 유효성 검사: 데이터베이스에 민감한 정보가 저장되는 것을 방지하기 위한 유효성 검사 도구로 활용될 수 있습니다.
Message
모델의content_cannot_contain_sensitive_information
과 같은 커스텀 유효성 검사를 통해 민감 정보 포함 여부를 확인하고 저장 전에 차단할 수 있습니다.
3. 필터 사용자 정의
- 필터 오버라이드 및 비활성화: 특정 시나리오에서 필터링이 너무 엄격하다고 판단될 경우, 필요에 따라 개별 필터(예:
people_filter
,location_filter
)를 오버라이드하거나 비활성화할 수 있는 유연성을 제공합니다.
Top Secret은 사용자 데이터 보호라는 중요한 책임을 개발자가 효율적으로 수행할 수 있도록 지원하며, 특히 자유 텍스트 처리 환경에서 그 가치가 큽니다.