Skip to content

Med-Check/Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MedCheck Backend API

MedCheck는 AI 기반 약물 상호작용 분석 플랫폼의 백엔드 서버입니다. FastAPI와 LangGraph를 활용하여 약물 간의 복잡한 상호작용을 분석하고, 사용자 맞춤형 리포트를 제공합니다.

프로젝트 개요

단순한 데이터베이스 조회를 넘어, LLM(Large Language Model)의 추론 능력을 결합하여 의학적 근거에 기반한 심층 분석을 수행합니다. DrugBank와 국내 의약품 데이터를 통합하여 폭넓은 커버리지를 제공합니다.

주요 기능

  • AI 기반 심층 분석 (LangGraph)

    • Self-Critique(자가 검증) 워크플로우를 도입하여, AI가 생성한 분석 결과의 정확성을 스스로 검증하고 환각(Hallucination) 현상을 최소화합니다.
    • 증거 수집 -> 위험도 평가 -> 교차 검증 -> 리포트 생성의 다단계 추론 과정을 거칩니다.
  • 실시간 스트리밍 (SSE)

    • Server-Sent Events (SSE) 기술을 적용하여 긴 분석 시간 동안 사용자에게 실시간으로 진행 상황과 중간 분석 결과를 전달합니다. (예: "상호작용 데이터 조회 중...", "위험도 평가 중...")
  • 하이브리드 데이터 엔진

    • DrugBank: 전 세계적으로 통용되는 약물 상호작용 표준 데이터베이스
    • 국내 의약품 데이터: 식약처 및 국내 유통 의약품 정보 통합
    • FAERS: FDA 부작용 보고 시스템 데이터를 활용한 실사용 데이터(RWD) 분석
  • 자동화된 리포트 생성

    • 복잡한 의학 용어를 일반 사용자도 이해하기 쉬운 언어로 변환하여 제공합니다.
    • 위험도 등급(안전/주의/위험)에 따른 구체적인 행동 지침을 제안합니다.

기술 스택

  • Framework: FastAPI (Python 3.11+)
  • Database: PostgreSQL, SQLAlchemy ORM
  • AI & Logic: LangChain, LangGraph, OpenAI GPT-4
  • Real-time: Server-Sent Events (SSE)
  • Validation: Pydantic v2
  • Data: DrugBank, FAERS

프로젝트 구조

backend/
├── app/
│   ├── main.py                 # 애플리케이션 진입점 (Entry Point)
│   ├── config.py               # 환경 변수 및 설정
│   ├── database.py             # DB 세션 매니저
│   ├── models/                 # SQLAlchemy 데이터베이스 모델
│   ├── routes/                 # API 라우터 정의
│   │   ├── auth/               # 사용자 인증 (JWT)
│   │   ├── chat/               # 챗봇 및 대화형 인터페이스
│   │   ├── drug/               # 약물 검색 및 정보 조회
│   │   ├── interaction_sse/    # 상호작용 분석 실시간 스트리밍
│   │   └── report/             # 분석 리포트 생성 및 관리
│   ├── services/               # 비즈니스 로직
│   │   ├── chat/               # 챗봇 로직 및 의도 분류(Intent Classification)
│   │   ├── drug/               # 약물 데이터 매핑 및 처리
│   │   ├── interaction/        # 상호작용 분석 엔진
│   │   ├── report_generation/  # 리포트 빌더 (증거 수집, 위험도 평가)
│   │   └── workflow/           # LangGraph 에이전트 워크플로우
│   └── repositories/           # 데이터 접근 계층 (DAO)
├── scripts/                    # 데이터 초기화 및 마이그레이션 스크립트
├── requirements.txt            # 파이썬 의존성 목록
└── .env                        # 환경 변수 파일

시작하기

1. 가상환경 설정

python -m venv venv
.\venv\Scripts\activate  # Windows

2. 의존성 설치

pip install -r requirements.txt

3. 환경 설정

루트 디렉토리에 .env 파일을 생성하고 다음 설정을 추가합니다:

DATABASE_URL=postgresql://user:password@localhost:5432/drug_interaction
SECRET_KEY=your_secret_key
OPENAI_API_KEY=sk-...

4. 서버 실행

# 개발 모드 실행
uvicorn app.main:app --reload

API 문서

서버 실행 후 아래 주소에서 Swagger UI를 통해 API 명세를 확인할 수 있습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages