Python과 Telnyx AI를 사용하여 통화 녹음에서 PII(개인정보) 비식별화하기
요약
Telnyx AI와 Python Flask를 활용하여 통화 녹음 및 스크립트 내 개인정보(PII)를 자동으로 비식별화하는 방법을 소개합니다. 오디오 전사부터 구조화된 JSON 형태의 비식별화 결과 생성까지의 워크플로우를 다룹니다.
핵심 포인트
- Telnyx AI를 이용한 이름, 카드번호 등 PII 자동 플레이스홀더 교체
- 오디오 파일을 Whisper 모델로 전사 후 비식별화하는 통합 프로세스
- 감사(Audit)가 용이하도록 구조화된 JSON 응답 제공
- Flask 기반의 간단한 구현 예제 및 GitHub 코드 제공
저는 Telnyx AI를 사용하여 통화 스크립트(transcript)와 통화 녹음에서 PII(개인정보)를 비식별화(redact)하는 작은 Flask 예제를 만들었습니다.
코드:
https://github.com/team-telnyx/telnyx-code-examples/tree/main/call-recording-redactor-python
이 앱은 두 가지 워크플로우(workflow)를 가집니다:
- 기존 스크립트 제출
- 오디오 파일 업로드, 전사(transcribe), 그 후 스크립트 비식별화
비식별화 대상
프롬프트(prompt)는 모델에게 일반적인 PII를 플레이스홀더(placeholder)로 교체하도록 요청합니다:
- 이름 ->
[NAME] - 신용카드 ->
[CREDIT_CARD] - SSN / 국가 식별 번호 ->
[SSN] - 전화번호 ->
[PHONE] - 이메일 ->
[EMAIL] - 도로명 주소 ->
[ADDRESS] - 생년월일 ->
[DOB] - 계좌 번호 ->
[ACCOUNT_NUMBER]
유용한 점은 응답이 단순히 다시 작성된 텍스트가 아니라 구조화된 JSON이라는 것입니다.
{
"redacted_transcript": "안녕하세요, [NAME]입니다. 제 카드 번호는 [CREDIT_CARD]입니다.",
"redactions": [
...
이는 여러분의 앱이 감사(audit)에 용이한 비식별화 맵(redaction map)을 유지하면서도 정화된(sanitized) 스크립트를 보여줄 수 있음을 의미합니다.
실행 방법
git clone https://github.com/team-telnyx/telnyx-code-examples.git
cd telnyx-code-examples/call-recording-redactor-python
cp .env.example .env
...
.env 설정:
TELNYX_API_KEY=your_telnyx_api_key
AI_MODEL=meta-llama/Llama-3.3-70B-Instruct
HOST=127.0.0.1
스크립트 비식별화
curl -X POST http://localhost:5000/redact \
-H "Content-Type: application/json" \
-d '{
...
이것은 다음을 통해 Telnyx AI Inference를 호출합니다:
POST /v2/ai/chat/completions
오디오 파일 비식별화
curl -X POST http://localhost:5000/redact/audio \
-F "file=@recording.wav"
오디오의 경우, 앱은 먼저 다음을 호출합니다:
POST /v2/ai/audio/transcriptions
다음 모델을 사용합니다:
distil-whisper/distil-large-v2
그 다음 동일한 PII 비식별화 흐름을 통해 스크립트를 전송합니다.
포함된 라우트(Routes)
POST /redactPOST /redact/audioGET /redactionsGET /redactions/<id>GET /health
프로덕션 아이디어 (Production ideas)
이것은 스타터 앱(starter app)이므로, 비식별화 작업(redaction jobs)을 메모리에 저장합니다.
프로덕션 환경을 위해서는 다음과 같은 사항들을 추가하겠습니다:
- 인증 (auth)
- 지속성 저장소 (persistent storage)
- 긴 녹음 파일을 위한 비동기 처리 (async processing)
- 통화 녹음 웹훅 수집 (call recording webhook ingestion)
- 모델 출력에 대한 스키마 검증 (schema validation)
- 감사 로그 (audit logs)
- 사용자 정의 PII 카테고리 (custom PII categories)
- 원본 스크립트에 대한 역할 기반 액세스 제어 (role-based access)
- 원본 녹음 파일도 정화(sanitize)해야 하는 경우를 위한 오디오 마스킹 (audio masking)
핵심 패턴은 재사용 가능합니다. 통신 데이터가 시스템 내부로 더 깊숙이 이동하기 전에, 이를 구조화되고 더 안전한 애플리케이션 데이터로 변환하는 것입니다.
리소스:
- 코드: https://github.com/team-telnyx/telnyx-code-examples/tree/main/call-recording-redactor-python
- Telnyx AI 추론(Inference) 문서: https://developers.telnyx.com/docs/inference
- 오디오 전사(Audio Transcriptions) API: https://developers.telnyx.com/api/inference/create-transcription
- 채팅 완성(Chat Completions) API: https://developers.telnyx.com/api/inference/chat-completions
- Telnyx AI 스킬 및 툴킷: https://github.com/team-telnyx/ai
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기