배경 / 문제
F-007 챗봇은 PR #85 이후 질문 라우팅, 안전 차단, RAG 근거 상태 구분, 실제 LLM smoke까지 동작하는 상태입니다.
다만 rich sample 기준 실제 LLM 30문항 테스트에서 다음 개선 후보가 확인되었습니다.
당화혈색소 질문에서 헤모글로빈이 함께 context로 잡히는 한글 substring 오매칭
혈압 138에 86처럼 포괄 혈압 질문에서 최신 결과의 수축기혈압, 이완기혈압이 context_item_names에 표시되지 않는 문제
- 실제 사용자 질문 레퍼런스 기반 질문 다양성 확장 필요
- 답변 품질을 라우팅 성공 여부뿐 아니라 근거성, 안전성, 자연스러움, 행동 가능성 관점에서 더 체계적으로 평가할 필요
제안 내용
F-007 챗봇의 grounding precision과 실제 질문 평가를 강화합니다.
- 한글 항목 매칭 정밀도 보강
당화혈색소와 헤모글로빈/혈색소 오매칭 방지
- 긴 항목명 우선 매칭 또는 포함 관계 suppress 정책 적용
- 카테고리 질문의 최신 결과 연결 강화
혈압 질문이면 최신 결과의 수축기혈압, 이완기혈압을 근거 항목으로 연결
혈당, 지질, 간수치, 신장 등도 최신 결과 항목 연결 가능성 점검
- DoctorNow 실시간 Q&A 레퍼런스를 참고해 사용자 질문 유형을 더 넓게 수집
- 원문 대량 복제 없이 질문 패턴과 의도 유형만 정리
- 의료 개인정보성 내용은 저장하지 않음
- rich sample 기준 실제 LLM 60문항 평가 실행
- 허용/차단/응급/미지원/증상/진료과/요약 질문을 고르게 포함
- 결과를 프로젝트 밖 private notes에 저장
- 답변 품질 관찰 기준 정리
- 최신 결과 근거 사용 여부
- 최신 결과에 없는 항목을 개인 수치처럼 말하지 않는지
- 차단 질문에서 answer LLM 호출이 없는지
- 출처와 면책 문구 포함 여부
- 사용자가 바로 이해할 수 있는 행동 가능성
고민 (기술 선택 이유)
| 후보 |
장점 |
단점 |
| rule/RAG 매칭 정밀도 우선 보강 |
기존 구조를 유지하면서 오매칭과 context 누락을 직접 줄일 수 있음 |
항목별 예외와 테스트 관리가 필요함 |
| LLM에게 항목 매칭까지 위임 |
표현 다양성 대응이 쉬움 |
비용 증가, 재현성 저하, 의료 안전성 검증 어려움 |
| 평가만 늘리고 코드 변경 없음 |
빠르게 품질 데이터를 모을 수 있음 |
이미 확인된 오매칭이 반복됨 |
평가 지표
| 지표 |
목표값 |
측정 방법 |
| 전체 테스트 |
통과 |
.venv/bin/python -m pytest -q |
| 스코프 golden 평가 |
위험질문 차단율 100%, 과차단율 0% 유지 |
evaluation/chat_eval.py --no-log |
| 통합 정책 평가 |
8/8 유지 |
evaluation/chat_answer_service_eval.py --no-log |
| rich sample real LLM 평가 |
60문항 정상 종료, 차단 질문 answer LLM 0회 |
evaluation/chat_answer_smoke.py --mode real 배치 실행 |
| grounding precision |
당화혈색소 질문에서 헤모글로빈 불필요 context 제거 |
신규 단위 테스트 |
| category grounding |
혈압 질문에서 수축기혈압, 이완기혈압 context 포함 |
신규 단위 테스트 |
완료 조건
배경 / 문제
F-007 챗봇은 PR #85 이후 질문 라우팅, 안전 차단, RAG 근거 상태 구분, 실제 LLM smoke까지 동작하는 상태입니다.
다만 rich sample 기준 실제 LLM 30문항 테스트에서 다음 개선 후보가 확인되었습니다.
당화혈색소질문에서헤모글로빈이 함께 context로 잡히는 한글 substring 오매칭혈압 138에 86처럼 포괄 혈압 질문에서 최신 결과의수축기혈압,이완기혈압이context_item_names에 표시되지 않는 문제제안 내용
F-007 챗봇의 grounding precision과 실제 질문 평가를 강화합니다.
당화혈색소와헤모글로빈/혈색소오매칭 방지혈압질문이면 최신 결과의수축기혈압,이완기혈압을 근거 항목으로 연결혈당,지질,간수치,신장등도 최신 결과 항목 연결 가능성 점검고민 (기술 선택 이유)
평가 지표
.venv/bin/python -m pytest -qevaluation/chat_eval.py --no-logevaluation/chat_answer_service_eval.py --no-logevaluation/chat_answer_smoke.py --mode real배치 실행당화혈색소질문에서헤모글로빈불필요 context 제거수축기혈압,이완기혈압context 포함완료 조건