졸업프로젝트

4/3 데모 직전 수정하기

ayoonistory 2026. 4. 3. 11:13

1. 버그 수정

1-1. 진료 기록 저장 오류 (Critical)

  • 파일: app/routes/records.py
  • 문제: 용어 저장 시 description 키 대신 easy 키를 참조해서 용어 설명이 항상 빈 문자열로 저장됨
  • 수정: item.get("easy", "")  item.get("description", "") or item.get("easy", "")
  • 영향: 저장 후 진료 기록 상세 조회 시 용어 설명이 정상적으로 표시됨

1-2. records.json 데이터 정리

  • 중복 레코드 5개 제거
  • description 없이 easy: ""만 있는 오염 레코드 정리

2. STT 인식 품질 개선

  • 파일: app/stt_google_streaming.py
  • 문제: language_code="ko-KR" 단일 언어 설정으로 인해 영어 의료 용어가 한국어 음성으로 인식됨 (예: CRP → 씨알피)
  • 수정 1: alternative_language_codes=["en-US"] 추가 → 영어 단어는 영어로 인식
  • 수정 2: phrase hints에서 한국어 음성 표기 제거 (씨알피, 씨비씨 등) → 해당 힌트가 오히려 한국어 음성 인식을 유도하고 있었음

3. 의료 용어 추출 개선

  • 파일: app/services/term_extractor.py
  • 문제: 4개 단어(CRP, 내시경, 염증, 검사)만 하드코딩되어 있어 대부분의 진료 텍스트에서 용어 추출 불가
  • 수정: Gemini 기반 동적 추출로 전환
    • 텍스트에 등장한 의료 용어를 자동 감지 및 설명 생성 (최대 6개)
    • Gemini 실패 시 18개 단어 fallback 사전으로 대체

4. 신규 기능: 사전 질문 정리

스펙 기준 B안(MVP) 구현

추가 파일

파일내용
app/services/question_analyzer.py Gemini 기반 질문 분류 서비스
app/routes/questions.py 질문 관련 API 라우터
app/data/questions.json 질문 데이터 저장소

추가 API

MethodEndpoint설명
POST /questions/analyze 질문 텍스트 분류 (저장 없음)
POST /questions 분류 결과 저장
GET /questions 목록 조회
GET /questions/{id} 상세 조회

분류 기준

  • general_info: 의학 기본 지식으로 설명 가능한 것 → 한두 줄 설명 제공
  • ask_doctor: 담당 의사에게 직접 물어봐야 하는 것 → 질문 리스트로 정리
  • caution: 응급/즉각 주의가 필요한 것

저장 시 record_id 연결 가능 (진료 기록과 연결, B안)


5. 환경 설정 개선

  • 파일: app/main.py, server/.env
  • Gemini API 키를 .env 파일에 저장하도록 변경
  • 서버 시작 시 자동 로드 → 매번 환경변수 수동 설정 불필요

6. 주소 수정

  • 파일: lib/main.dart, lib/api/app_config.dart
  • WebSocket URL: ws://10.240.66.72:8000  ws://127.0.0.1:8000
  • API URL: http://10.240.66.72:8000  http://127.0.0.1:8000

현재 미완성 항목

항목상태
사전 질문 정리 — Flutter UI 미구현 (백엔드만 완료)
진료 기록 상세화면에 질문 연결 표시 미구현