Skip to content

joo9906/MedAIcine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏥 RAG 기반 환자 요약 및 투약 제안 챗봇

프로젝트 시연 영상

MedAIcine.mp4 이미지를 클릭하면 영상을 다운로드 받아 재생할 수 있습니다.

💡 프로젝트 소개

서울 8팀의 챗봇은 의료인을 위한 약물 투약 제안 AI 챗봇 입니다.

아이디어는 의료 파업이나 만성적인 의료계의 인력 부족으로 인해 책임이 가중되고 업무가 늘어나는 의료인들을 돕기 위해 제안되었습니다. 위와 같은 문제의 예시로 외과 환자가 내과로 이관 된다거나 의사가 투약 약물 선정에 어려움을 느끼는 경우가 있고 이를 돕는 기능을 개발하였습니다.

의사는 어떤 약물을 투약하는게 좋을 지 의사결정에 도움을 받을 수 있고 책임을 명확히 할 수 있습니다. 간호사는 의사의 지시를 다시 확인할 수 있고 잘못된 약물이 투약되는 경우를 막을 수 있습니다. 환자의 안전 또한 보장 될 수 있으며 병원 관계자들 모두에게 도움이 될 것이라 생각하였습니다.

환자 CSV 데이터를 기반으로 환자 개인 맞춤형 요약 정보를 생성하고, RAG(Retrieval-Augmented Generation) 구조로 개발하였습니다.
임베딩 모델, 벡터 스토어, LLM을 결합하여 정확하고 신뢰성 있는 응답을 제공합니다.

프론트엔드 서버는 AWS의 Amplify로 배포하였습니다. 백엔드 서버는 EC2로 배포하였습니다.

프로젝트 상세 내용은 MedAIcine 노션 에서 볼 수 있습니다

🚀 사용법

  1. synthea를 이용하여 가상환자를 제작합니다.
  2. 가상 환자의 바이탈과 피지컬, 질병과 사회력 정보 등을 파싱 및 임베딩하여 DB에 저장합니다.
  3. 실제 환자의 정보를 웹에서 입력 받습니다.
  4. 의료인이 챗봇에게 질문을 하면 백터화 된 데이터 중 환자와 가장 유사한 백터를 검색합니다.
  5. 해당하는 가상 환자에게 투약된 약물과 실제 환자 정보를 LLM으로 전달하여 답변을 받아옵니다.
  6. 응답이 수신 될 경우 프론트에 랜더링 합니다.

🌐 배포된 링크


⚙️ 실행 방법

# 1. 레포 클론
git clone https://github.com/joo9906/AI_self.git
cd AI_self

# 2. 의존성 설치
pip install -r requirements.txt

# 3. 로컬 실행(서버)
cd server
python app.py

# 4. 프론트
cd front
npm install
npm run dev

# 5. (선택) Chroma DB 초기화 및 벡터 DB 생성
python create_vectorstore.py

챗봇 서비스 이용 방법

  • 환자 정보 입력
    • 환자 나이, 혈압, 몸무게, 흡연 여부, 성별은 필수 입력
    • 기저 질환, 투약 약물, 알러지, 수술/시술 정보는 선택 입력 (미입력시 없음으로 서버에 전송)
  • 챗봇과 의사소통 시작
    • 등록된 환자 정보는 좌측에 표로 정리
    • 환자 정보 표 밑에 지금까지 나눈 대화 10개
  • 오류 발생 시
    • 추천이 어렵습니다 = AI에게 질문이 넘어갔으나 AI가 실제로 추천하지 않는 것입니다. 질문을 구체화하거나 다시 질문하면 제대로 된 답변을 받을 수 있습니다.
    • 서버와 연결이 되지 않았습니다 = 서버와 통신이 안되거나 문제가 있는 경우입니다. 혹은 API키와 관련된 문제일 수 있습니다.

About

RAG 기반 약물 투약 AI 챗봇 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors