24시간 AI 의사와 대화: 개인프로젝트 기획
프로젝트 기획이유
음성대화를 할 수 있는 AI의사가 있다면 얼마나 도움이 될까요?
큰 병은 아니라서 병원에는 안 가도 되는데 주말이나 밤에 사소한 증상이 있다면?
집에 구비해둔 약 중 어떤 약을 써야할지, 또 간단히 처치를 할 수 있는 방법이 있을 지 간단히 물어볼 수 있으면 좋겠다고 생각해서 ‘AI의사’ 사이트를 생각하게 되었습니다.
기존 헬스케어 앱의 불편한 점
기존에는 걸음수, 체온 등 건강정보를 측정한 결과를 보거나, 복약 알림과 같은 기능을 가진 앱들, 그리고 실제 의사를 연결해 주는 사이트가 있으나 실제 의사와 대화하듯 음성대화를 할 수 있는, 제가 원하는 형식과는 거리가 멀어서 음성대화를 할 수 있게 구현해보고 싶었습니다.
사회적 측면에서의 비용 절감
알고보니 심야약국을 운영하는 곳들이 있으나, 건강보험심사평가원에서 검색을 해야 하며, 가까운 동네에 있는지도 알아봐야 되는 등 이용에 불편함이 있어서, 큰 병이 아니라면 의사처럼 직접 증상을 물어봐주고 집에서 처치방법을 가르쳐 주는 AI의사랑 대화를 할 수 있으면 좋겠고, 만약 자판기에서 약도 얻을 수 있다면(실제로는 어렵겠습니다만) 심야 약국 운영 비용을 줄일 수도 있지 않을까 생각했습니다.
개인적 측면에서의 비용 절감
많이 사용되는 ChatGpt로 의사를 설정하고 이런 대화를 할수도 있겠지만, ChatGpt의 구독료가 요즘 1달에 3만원 정도하기 때문에, 평소에 ChatGpt를 구독하지 않는 분들은 이 비용도 부담이 되어서 몇 분 잠시 사용하고 비용이 거의 안 드는 웹이 필요합니다.
그리고 AI의사가 증상, 등 상세 사항을 물어봐줘야 하는데 이런 자세한 내용을 일반인이 하기 힘들기 때문에 의료용 음성대화 앱이 필요하다고 생각합니다.
프로세스 기획
사용방법을 draw.io에서 간단히 나타내 보았습니다.
로그인 -> 분야에 맞는 AI의사를 선택, 또는 AI의사 추천받기 -> AI의사와 음성대화 -> 대화내용 보고서에 자동기록 -> 보고서 열람 및 통계 보기
사용기술과 사용이유
1) 프론트엔드
- Next.js: React 기반의 풀스택 프레임워크
- 백엔드 개발 없이도 API를 만들 수 있어서 개발 시간 단축
React: UI 개발 라이브러리
- Recharts: 리액트 기반 차트 라이브러리
- 시각화를 위해 파이차트 사용
- TypeScript: 정적 타입 검사를 위함
- 코드의 안정성과 예측 가능성. 잠재적인 오류를 미리 예측 및 방지 가능
- Shadcn UI: 재사용 가능한 UI 컴포넌트 라이브러리 (Button, Textarea, Table 등)
- 시간 단축 및 커스터마이징이 유연
- Moment.js: 날짜 및 시간 처리 라이브러리
- 상담 기록의 타임스탬프를 관리하거나, 사용자에게 대화 시간을 보여주는 등 정확한 시간 관리가 필요하여 잡한 날짜/시간 연산을 간편하게 처리하고 포맷팅할 수 있어서 효율적
2) 백엔드 & AI/음성 연동
- Vapi.ai: 실시간 음성 AI 통화 및 음성 처리 API (텍스트-음성, 음성-텍스트 변환 및 실시간 대화 흐름 관리)
- ‘음성 대화’가 핵심기능이라서, 복잡한 음성-텍스트 변환(STT), 텍스트-음성 변환(TTS), 그리고 실시간 대화 흐름 관리까지 모든 것을 통합적으로 처리해주는 Vapi.ai 플랫폼을 사용. 따라서 자연스럽게 통화하는 경험을 사용자에게 제공.
- OpenRouter.ai: 다양한 LLM(거대 언어 모델)을 통합하여 사용할 수 있는 API
- 단일 LLM에 종속되지 않고, Google Gemini, DeepSeek, Gemma 등 다양한 LLM을 하나의 API 키로 유연하게 사용할 수 있다는 점이 장점. 가장 효율적이고 비용 효율적인 모델을 프로젝트에 적용 가능.
- axios: HTTP 통신 라이브러리
3) 데이터베이스 & 인증:
Neon: 서버리스 PostgreSQL 데이터베이스
- Drizzle
- 프로젝트에서 SQL 쿼리를 직접 작성하지 않고도 타입스크립트를 활용해서 안전하고 효율적으로 데이터베이스를 관리할 수 있게 도와주는 도구
- Clerk: 사용자 인증(Authentication) 및 사용자 관리 서비스
4) 기타 도구
- Logoipsum: svg 로고 디자인