AI의사 음성대화 웹 프로젝트 설명
AI닥터톡 프로젝트 소개
<24시간 AI 의사와 대화: 개인프로젝트 기획> 👈(클릭시 이동)
위의 포스팅과 같이 간단히 기획하고 사용할 기술을 정하여 AI의사와 음성대화하는 웹사이트를 개발했는데, 이름은 ‘AI 닥터톡(AI Doctor Talk)’이라고 지었습니다. 의사는 아니라 assistant라고 해야 될 것 같은데 아무튼 이름 간단하게 지었습니다.
설명과 함께 어려웠던 문제를 해결했던 방법을 쓰도록 하겠습니다.
디자인
여러 앱, 웹사이트를 참고했는데 저는 디자이너가 아니기 때문에 빠르게 개발하고 싶어서 Shadcn UI 라이브러리의 컴포넌트를 사용했습니다.
AI닥터톡 사용방법
홈 화면에도 AI닥터톡 사용방법을 설명해놓았습니다.
로그인
- Clerk의 장점
Next.js에서 쓰는 NextAuth.js (Auth.js)이 있지만, Clerk에서는 즉시 사용할 수 있는 UI컴포넌트가 있고, Fraud/Abuse 방지, 봇 감지, 다단계 인증(MFA), 세션 관리가 내장되어 있어서 Clerk를 사용함.
- Clerk의 단점
그런데 UI를 커스텀해야 한다면 NextAuth.js를 쓰는 게 좋겠습니다. 그리고 세션관리에서 사용자가 활동 없을 시 로그아웃 하는 기능이 유료라서 별도로 1시간 내 활동 없을 시 자동 로그아웃하는 기능을 추가했습니다.
10개 분야의 AI의사
10개 분야 의사로 임의로 나눴으며 원하는 분야를 선택하면 됩니다. 의사 이미지는 구글 제미나이 무료버전으로 생성했습니다.
AI의사 추천받기
증상을 간단히 기재하면 분야에 맞는 AI의사가 추천됩니다.
이때, 해당 의사별로 아주 전문적인 스크립트가 삽입되어 있어야 합니다. 하지만 스크립트가 많이 추가될 수록 비용이 추가되므로 저는 간단히 기재하였습니다.
알맞은 AI의사 찾는 것은 ‘딥시크(DeepSeek)’ 무료버전을 이용했습니다. 다른 유료 버전도 있어서 사용하면 속도가 더 빠를 수 있겠지만 비용문제와 보고서를 쓰는 부분에서 특정형식(JSON)을 쓰는 부분이 딥시크에서 장점이 있다고 하여 딥시크를 사용했습니다.
AI의사와 음성대화
음성대화는 ChatGpt 최신버전(유료)과 하게 되고, 음성을 텍스트로 바꿔주는 역할은 구글 Gemini를 사용했습니다.
더 정교한 설정을 하려면 더 상세한 의료지식과 역할을 지시하는 스크립트를 삽입해놓으면 되는데, 저는 간단하게 지시를 해놓았습니다.
보고서 생성
음성으로 대화한 것 중 보고서에 들어갈 항목을 추출해서 DeepSeek가 기록해줍니다.
보고서 생성
어떤 분야를 상담했는데 파이차트로 시각화하여 보여주며, 목록에서 자세히 기록을 확인할 수도 있습니다.
문제점과 해결방법
AI의사와의 음성대화도 원래는 구글 Gemini로 설정해서 비용 줄이려고 했었는데, 음성이 끊기는 등 문제가 있어서 여러 종류의 AI모델로 테스트를 해봤더니,
실질적으로 대화하는 부분은 ‘ChatGpt 4.1’ 사용자의 음성을 텍스트로 바꾸는 음성기술은 ‘Google Gemini 2.0 Flash’, ‘ChatGpt 4.1’이 생성한 텍스트 답변을 AI의사의 음성으로 변환하는 역할은 ‘Vapi’ Voice Provider가 하게 되는데,
이 조합이 비용과 효율 측면에서 좋았습니다.
저는 비용를 고려하여 최대한 저렴하게 해보았는데 1분당 100원 정도의 비용이 발생합니다.
더 자연스러운 음성대화가 필요하면 더 비싼 유료 모델을 사용하는 것이 좋겠습니다.