개발 요구 사항
1. 개발 범위
| 구분 | 범위 |
|---|---|
| 프론트엔드 | 홈 · 카메라 · 상담 · 알약사전 · 약 상세 · 오늘의 약속 · 내 정보 · 내 기록 · 증상 등 13개 화면 |
| API | POST /api/pill/identify, GET /api/pill/dictionary, GET /api/pill/dictionary/{item_seq}, 상담 대화방·메시지 |
| 데이터 | 낱알식별 v03 · e약은요 적재 스크립트 |
| 제외 | 진단·처방, 결제·약 구매, 회원 로그인(스캐폴드만), DUR, 푸시 알림 |
2. 알약 인식
- Gemini Vision이 사진에서 모양·색·각인·분할선·제형을 추출한다.
- DB 후보를 속성별 가중치로 점수 매겨 정렬한다. 각인이 가장 무겁다(5.0).
- 최고 점수가 2.0 미만이면
needs_retry로 재촬영을 요청한다. - 제품명이 읽히면(약 상자) 속성 매칭 대신 이름 검색으로 분기한다.
- 촬영 이미지는 서버에 저장하지 않는다.
3. 복약 상담
- 시스템 프롬프트에 건강정보, 스캔 결과, 공식 효능·용법·주의(
pill_context), 현재 시각을 넣는다. - 호칭은 나이·성별로 정한다. 사용자를 특정 연령대로 단정하지 않는다.
- 대화는
conversations·messages에 남는다. 멀티턴 기억은 아직 없다.
4. 개인정보 · 안전
- 건강정보(
yaksok:health), 내 기록(yaksok:cabinet), 복약 목록은 localStorage에만 저장한다. - Gemini 키가 없으면 fake 어댑터로 자동 전환해 개발·테스트가 막히지 않게 한다.
- 증상 추천은 일반의약품(OTC)으로만 한정한다.