API 진입
사용자 질문을 ChatState로 정리한 뒤 LangGraph 진입점에 전달하고, 최종 answer와 sources를 세션 로그에 저장한 후 응답으로 반환하는 시작 흐름입니다.
흩어져 있는 의료 기록을 한곳에 모으고, 복약 정보를 정리·확인할 수 있도록 돕는 서비스입니다.

Medinote는 흩어져 있는 처방전과 진료 기록을 구조화된 데이터로 정리하고, 복약 이력을 체계적으로 관리할 수 있도록 설계한 의료 정보 관리 서비스입니다. 단일 RAG 구조의 한계를 개선하기 위해 Supervisor 기반 멀티 에이전트 아키텍처를 도입해 질병·약·비의료 질문을 분리 처리하며, 안전한 의료 정보 제공을 위한 가드레일을 함께 설계했습니다.
처방전과 약 사진을 찍으면 OCR이 핵심 정보를 추출하여 자동으로 복약 리스트를 생성합니다.
병용 금기나 주의 사항을 데이터베이스 기반으로 분석해 사용자에게 즉각적인 주의 메시지를 전달합니다.
사용자의 과거 복약 이력과 진료 기록을 바탕으로 맞춤형 건강 질문에 답변합니다.
복잡한 의료 데이터를 로드맵 형태로 요약하여 사용자가 자신의 건강 흐름을 이해하도록 돕습니다.

* OCR·LLM·STT 처리는 Redis Queue 기반의 비동기 파이프라인으로 구성해, 요청이 몰리는 상황에서도 메인 API 응답을 안정적으로 유지하도록 설계했습니다.
사용자 질문을 ChatState로 정리한 뒤 LangGraph 진입점에 전달하고, 최종 answer와 sources를 세션 로그에 저장한 후 응답으로 반환하는 시작 흐름입니다.
LangGraph의 단일 entry node가 공용 ChatState를 받아 오케스트레이터로 전달하고, 멀티 에이전트 실행 흐름을 시작합니다.
Supervisor는 질문을 1차 분류한 뒤, LLM 플래너로 필요한 에이전트 조합과 실행 순서를 정하고 공용 state를 순차적으로 넘깁니다.
선택된 에이전트는 공용 state에서 질문을 읽고, 검색·재정렬·Q-score 계산·LLM 호출을 거쳐 answer와 sources를 다시 state에 기록합니다.
문제 — 약물·질병 데이터 출처별 구조와 표현 방식 상이 → 서비스 활용 어려움
해결 — 질병·약품 데이터 분리 전처리 전략 및 약품 중심 정규화 파이프라인 구축
근거 기반 의료 정보 제공 가능한 정규화 데이터 구조 확보
문제 — 하나의 RAG 파이프라인으로 모든 질문 처리 → 도메인 혼선 및 확장성 한계
해결 — LangGraph 기반 Supervisor + 도메인별 멀티 에이전트 구조 도입
질문 유형별 처리 경로 분리 및 확장 가능한 RAG 아키텍처 확보
문제 — 의료 챗봇 답변의 법적·윤리적 위험 관리 필요
해결 — 프롬프트·응답 템플릿 기반 답변 범위 제한 가드레일 설계
법적 리스크 최소화 및 안전 중심 의료 챗봇 UX 확보