Skip to content

Repository files navigation

의사소통: 의료상담 챗봇 프로젝트

개요

의사소통 의료상담 챗봇은 바쁜 일상 속에서 병원을 방문할 시간이 없거나 어느 병원에 가야 할지 고민하는 사용자들을 위해 설계된 헬스케어 솔루션입니다. GPT-NeoX 기반의 Polygloy-ko 모델을 활용하여, 사용자의 증상을 분석하고 의심되는 질병을 추정하며, 적합한 병원을 추천하고 간단한 대처 방법을 제공합니다.

주요 기능

  • 증상 분석 및 진단: 사용자가 입력한 증상을 바탕으로 GPT-NeoX 모델의 강력한 자연어 처리 능력을 활용하여 가능한 질병을 추정합니다.
  • 병원 추천: 사용자가 겪고 있는 증상에 따라 적합한 전문 병원이나 클리닉을 추천해 줍니다.
  • 대처 방법 안내: 병원 방문 전까지 필요한 간단한 대처 방법이나 응급 처치 방법을 제공합니다.
  • 사용자 친화적 인터페이스: 직관적이고 사용하기 쉬운 인터페이스를 통해 누구나 쉽게 상담을 받을 수 있습니다.

특징

  • 신속한 상담: 병원 방문이 어려운 상황에서 빠르게 건강 상담을 받을 수 있습니다.
  • 맞춤형 추천: 사용자의 증상에 맞는 병원과 대처 방법을 개인 맞춤형으로 제공합니다.
  • 언제 어디서나 사용 가능: 모바일 및 웹 플랫폼을 통해 언제 어디서나 쉽게 접근할 수 있습니다.

사용 예시:

  1. 사용자가 챗봇에 "머리가 아프고 열이 나요"라고 입력합니다.
  2. 챗봇은 증상을 분석하여 "감기, 독감, 편두통" 등의 가능한 원인을 제시합니다.
  3. 챗봇은 사용자에게 가까운 내과 또는 이비인후과 병원을 추천하고, 집에서 할 수 있는 간단한 대처 방법(예: 물 많이 마시기, 휴식 취하기)을 안내합니다.

사용

  • 프론트엔드
# 깃 클론
git clone https://github.com/Songysp/DoctorChat_frontend

# 프로젝트 루트 폴더에서 아래 실행(패키지 설치)
npm install

# 실행(android studio, expo cli 필요
npx expo start
  • 백엔드

백앤드 깃허브 링크

# 깃 클론
git clone https://github.com/Songysp/DoctorChat_BackEnd

# 프로젝트 루트 폴더에서 아래 실행(패키지 설치)
pip install -r requirements.txt

# 실행
uvicorn app:app --host 0.0.0.0 --port 8000 --reload

서비스 구동 화면

보기/접기

구동화면

모델 선정 기준

  1. 대규모 파라미터 수:

    5.8억 개의 파라미터를 가지고 있어, 다양한 의료 데이터에 대해 높은 성능을 보일 수 있습니다.

  2. 의료 특화:

    의료 문서, 논문, 임상 기록 등의 데이터를 학습해 의료 분야에 특화되어 있어 전문적인 의료 상담이나 정보 제공에 적합합니다.

  3. 한국어 최적화:

    한국어 데이터로 학습되었기 때문에, 한국어 텍스트 처리에 강점을 보입니다.

  4. 고품질 데이터 학습:

    MedText와 ChatDoctor 데이터셋을 GPT3.5를 통해 한국어 대화로 변환시켜 학습되었습니다. 이는 모델의 답변 정확도와 신뢰성을 높이는 데 기여합니다.

포트폴리오

펼치기/접기

의사소통 (1)

의사소통 (2)

의사소통 (3)

의사소통 (4)

의사소통 (5)

의사소통 (6)

의사소통 (7)

의사소통 (8)

의사소통 (9)

의사소통 (10)

의사소통 (11)

사용 기술

  • 프론트엔드

    • JavaScript
    • ReactNative-Expo
  • 백엔드

    • FastAPI
  • 모델

    • GPT-NeoX 기반의 Polygloy-ko 모델
    • Pytorch
    • transformers
  • 협업

    • GitHub

개인 기여

기획 단계

  • 아이디어 제안: 프로젝트의 초기 아이디어를 제안하고, 프로젝트의 방향성을 설정하는 데 기여했습니다.

  • 데이터 탐색: 데이터 탐색 및 분석을 통해 프로젝트에 적합한 데이터셋을 선정 했습니다

프론트엔드

  • Expo를 통한 초기 화면 구성: Expo를 사용하여 초기 사용자 인터페이스(UI)를 설계하고 구현하였습니다

  • JavaScript로 서버와의 통신 구현: JavaScript를 활용하여 서버와 클라이언트 간의 통신을 구현하고, API 요청 및 응답을 처리하여 프론트엔드와 백엔드의 연결을 담당했습니다.

백엔드

  • FastAPI 서버 구축: FastAPI를 사용하여 효율적이고 성능이 우수한 서버를 구축하였으며, REST API를 통해 데이터와 기능을 제공합니다.

  • REST API와 초기 모델 연결 및 응답 생성: 초기 모델과 REST API를 연결하여 클라이언트 요청에 대한 응답을 생성하고, 서버의 기능을 통합했습니다.

모델

  • 모델 및 데이터셋 선정: 프로젝트 목표에 적합한 모델과 데이터셋을 선정하고, 최적의 성능을 내기 위한 기반을 마련했습니다.

  • 모델 학습: QLora, Transformer, bnb 기법을 통해 모델을 학습시키고, 학습을 위한 메모리 최적화를 진행했습니다.

협업

  • 전체적인 유지 보수 및 버전 관리: 프로젝트의 전반적인 유지 보수와 코드 버전 관리를 담당하며, 팀원 간의 협업을 원활하게 지원했습니다. 깃허브를 사용하여 코드 변경 사항을 관리하고, 충돌을 해결했습니다.

팀원 역할

  • 이현우 팀장

    • 디자인 및 화면 구성, 기획: 사용자 인터페이스 디자인과 전체적인 화면 구성 계획을 주도하고, 프로젝트 기획을 책임졌습니다.

    • 모델 파인튜닝 및 학습: 모델의 성능을 최적화하기 위해 파인튜닝을 수행하고 학습 과정을 관리했습니다.

    • 데이터셋 전처리: 데이터셋의 전처리를 담당하여 모델 학습에 적합한 형태로 데이터를 준비했습니다.

    • 학습 과정 분석: 모델의 학습 과정을 분석하고 결과를 평가하여 성능 향상 방안을 모색했습니다.

    • 기획서 작성, 발표: 프로젝트 기획서를 작성하고, 최종 발표를 준비하여 프로젝트 결과를 효과적으로 전달했습니다.

  • 임희선

    • 프론트엔드 화면 구성: 사용자 인터페이스의 프론트엔드 화면 구성 및 디자인을 담당했습니다.

    • 채팅창 구현: 채팅 기능을 구현하여 사용자와 시스템 간의 상호작용을 지원했습니다.

  • 박성주

    • 모델을 활용한 API 서버 구축: 모델을 활용하여 API 서버를 구축하고, 모델의 API와의 연계를 관리했습니다.

    • 최종 모델 연결: 최종 모델을 API 서버와 연결하여 실시간 응답이 가능하도록 설정했습니다.

  • 송윤섭

    • 아이디어 제안: 프로젝트의 아이디어를 제안하고, 초기 방향성을 설정했습니다.

    • 모델 및 데이터셋 선정: 프로젝트에 적합한 모델과 데이터셋을 선정하여 초기 기획에 기여했습니다.

    • 프론트 초기 화면 구성: 프론트엔드의 초기 화면을 구성하고, 사용자 경험을 향상시키기 위한 작업을 진행했습니다.

    • 초기 버전 API 서버 구현: 초기 버전의 API 서버를 구현하여 모델과 프론트엔드 간의 연결을 담당했습니다.

    • 모델과 서버 연결하여 프론트엔드 요청에 응답 생성: 모델과 서버를 연결하여 프론트엔드의 요청에 응답을 생성하는 기능을 구현했습니다.

    • 모델 파인튜닝 및 학습 보조: 모델의 파인튜닝 및 학습 과정에서 보조 역할을 수행했습니다.

    • 전체적인 유지 보수: 프로젝트의 전반적인 유지 보수를 담당하며, 시스템의 안정성을 유지했습니다.

    • 깃허브 버전 관리: 프로젝트의 코드 버전 관리를 통해 팀원 간의 협업을 원활하게 지원했습니다.

About

자연어처리 의료상담 챗봇 프로젝트 프론트엔드

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages