검사 결과 알림을 위한 음성 AI 어시스턴트 구축기
요약
Telnyx AI Assistants를 활용하여 의료 검사 결과를 안내하는 음성 AI 어시스턴트 구축 사례를 소개합니다. 의료 행위가 아닌 신원 확인 및 보안 포털 안내와 같은 운영적 역할을 수행하도록 설계되었습니다.
핵심 포인트
- Telnyx AI Assistant를 통한 음성 및 SMS 통합 구현
- 의료 데이터 보안을 위한 신원 확인 및 포털 링크 제공 방식
- AI의 역할을 의료 진단이 아닌 운영적 보조로 제한
- Python과 Flask를 활용한 데모 대시보드 및 백엔드 구성
검사 결과(Lab results)는 전화 통화가 단순해 보이지만, 제품의 경계(product boundaries)가 매우 중요한 의료 워크플로우 중 하나입니다.
환자는 결과가 나왔는지 알고 싶어 합니다. 클리닉은 신원을 확인해야 합니다. 시스템은 적절한 정보만을 공개해야 합니다. 그리고 환자가 전체 보고서가 필요한 경우, 가장 좋은 답변은 모든 내용을 소리 내어 읽어주거나 SMS에 검사 수치를 넣는 것이 아니라, 보통 보안 포털(secure portal) 링크를 제공하는 것입니다.
그래서 저는 임상 어시스턴트(clinical assistant)가 아닌, 알림 어시스턴트(notification assistant)로서 샘플을 구축했습니다.
Telnyx 코드 예제는 여기에 있습니다:
이 예제는 Telnyx AI Assistants와 화면 공유 대시보드 및 선택적인 백엔드 확장 지점을 위한 작은 Python + Flask 앱을 사용합니다.
흐름 (The Flow)
발신자가 AI Assistant에 직접 할당된 Telnyx 전화번호로 전화를 겁니다.
어시스턴트는 다음을 요청합니다:
- 법적 성명 전체 (Full legal name)
- 생년월일 (Date of birth)
이 정보들이 모의 기록(mock record)과 일치한 후에만 검사 결과 요약을 공개합니다.
정상 결과 경로의 경우, 어시스턴트는 결과가 나왔으며 예상 범위 내에 있다고 말한 뒤, 환자가 문자로 보안 포털 링크를 받기를 원하는지 묻습니다.
환자가 '예'라고 답하면, 어시스턴트는 Telnyx 네이티브 메시징(native messaging)을 사용하여 포털 링크를 보냅니다. 문자에는 검사 수치(lab values)가 포함되지 않습니다.
비정상적이거나 경계선에 있는 사례의 경우, 어시스턴트는 후속 안내 문구를 제공하고 환자를 간호사 콜백이나 의료진에게 안내합니다.
내가 중요하게 생각하는 부분
AI는 의료 행위를 하는 것이 아닙니다.
AI는 가공되지 않은 검사 수치(raw lab values)를 해석하는 것이 아닙니다.
AI는 의료 제공자(provider)를 대체하는 것이 아닙니다.
AI는 운영적인 부분(operational part)을 수행합니다:
신원 확인 (verify identity)
의료진이 승인한 짧은 요약 제공 (give a short provider-approved summary)
환자를 보안 포털로 안내 (send the patient to the secure portal)
...
이러한 구분은 의료 AI 데모에서 매우 중요합니다. 좋은 데모는 시스템이 할 수 있는 것을 보여주어야 할 뿐만 아니라, 시스템이 거부하는 것이 무엇인지도 보여주어야 합니다.
여기서 Telnyx AI Assistant를 사용하는 이유
이 데모의 가장 깔끔한 버전은 통화 경로에 별도의 커스텀 터널 (custom tunnel)이 필요하지 않습니다.
전화번호가 Telnyx AI Assistant에 직접 할당됩니다. 어시스턴트는 provision_assistant.py를 통해 프로비저닝 (provisioning)됩니다. SMS 링크는 어시스턴트의 네이티브 send_message 도구를 사용합니다.
즉, 라이브 데모 경로는 다음과 같습니다:
Telnyx 번호
-> Telnyx AI Assistant
-> 네이티브 SMS 링크
Flask 앱은 여전히 유용하지만, 주로 데모 대시보드와 선택적인 백엔드 확장 지점 (extension points)을 위해 사용됩니다.
이를 통해 통화 경험을 화면상에서 설명하기에 충분할 만큼 단순하게 유지할 수 있습니다.
대시보드
또한 다음 위치에 로컬 Flask UI를 추가했습니다:
대시보드는 다음을 보여줍니다:
- 통화 흐름 (call flow)
- 가상 환자 테스트 신원 (mock patient test identities)
- HIPAA 준수 보호 조치 (HIPAA compliance safeguards)
- 로컬 감사 및 콜백 상태 (local audit and callback state)
API 키, 실제 PHI (개인 건강 정보), 할당된 원본 전화번호 또는 원본 전사 데이터 (raw transcripts)는 표시하지 않습니다.
이 화면은 영상 제작 시 유용한데, 전화 통화가 진행되는 동안 시청자에게 볼 수 있는 구체적인 대상을 제공하기 때문입니다.
HIPAA 준수 보호 조치
이 샘플은 HIPAA 준수 검사 결과 알림 워크플로 (workflow)에서 기대되는 보호 조치를 중심으로 설계되었습니다:
- 가상 데이터 (mock data)만 사용
- 결과 공개 전 신원 확인
- 최소한으로 필요한 구두 결과 요약
- SMS 내 검사 수치 포함 금지
- 녹음 비활성화
- 어시스턴트 데이터 보관 비활성화
- 진단 또는 치료 권고 금지
프로덕션 (production) 환경에서는 이러한 제어 조치를 필수적인 BAA (Business Associate Agreement), 역할 기반 액세스 제어 (RBAC), 스토리지 제어, 감사 로그 (audit logs), 보관 설정, 모니터링 및 법적/컴플라이언스 검토와 결합해야 합니다.
이것이 바로 이 데모가 보여주기 위해 구축된 배포 태세 (deployment posture)입니다: PHI를 SMS에서 제외하고 결과 접근을 보안 포털을 통해 라우팅하는, 개인정보에 민감한 의료 워크플로를 위한 Telnyx AI입니다.
로컬에서 실행하기
git clone https://github.com/team-telnyx/telnyx-code-examples.git
cd telnyx-code-examples/ai-lab-results-notification-voice-python
python3 -m venv .venv
...
설정:
TELNYX_API_KEY=KEY...
TELNYX_PHONE_NUMBER=+18005551234
대시보드 시작:
python app.py
어시스턴트 프로비저닝 (Provisioning):
python provision_assistant.py
그 다음, 포털 (Portal)에서 Telnyx 번호를 어시스턴트에 직접 할당하고 전화를 겁니다.
정상적인 시나리오 (Happy path)를 위해 다음 정보를 사용하세요:
name: maya rivera
date of birth: november 22 1984
그 다음, 문자로 보안 포털 (secure portal) 링크를 요청하세요.
프로덕션 참고 사항 (Production Notes)
프로덕션 버전을 구축한다면, 환자 인증 및 결과 조회 기능을 프롬프트 (prompt)에서 분리하여 실제 환자 포털 또는 EHR (전자 건강 기록) 워크플로와 연결된 백엔드 (backend)로 옮길 것입니다.
또한, 어시스턴트 프롬프트를 보수적으로 유지할 것입니다:
신원 확인 (verify identity)
최소한의 정보만 공개 (disclose minimum necessary)
진단 금지 (do not diagnose)
...
이것이 제가 선호하는 이러한 종류의 워크플로 형태입니다. AI는 좁은 범위의 전화 상호작용을 처리하고, 보안 환자 포털은 환자가 전체 보고서에 접근하는 장소로 남겨두는 방식입니다.
리소스 (Resources)
- 코드 예제: https://github.com/team-telnyx/telnyx-code-examples/tree/main/ai-lab-results-notification-voice-python
- Telnyx AI 어시스턴트 퀵스타트 (quickstart): https://developers.telnyx.com/docs/inference/ai-assistants/no-code-voice-assistant
- AI 어시스턴트 중단 (interruption) 설정: https://developers.telnyx.com/docs/inference/ai-assistants/interruption-settings
- Telnyx에서 HIPAA를 위한 아키텍처 설계: https://telnyx.com/resources/architecting-hipaa-telnyx
- Telnyx 개발자 문서 (Developer Docs): https://developers.telnyx.com
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기