diff --git a/troubleshooting/250815_happybell80_개발작업.md b/troubleshooting/250815_happybell80_개발작업.md new file mode 100644 index 0000000..9c09f6c --- /dev/null +++ b/troubleshooting/250815_happybell80_개발작업.md @@ -0,0 +1,105 @@ +# 2025년 8월 15일 개발 작업 기록 + +## 오전 11시 31분 + +### 1. robing-gateway 헬스체크 경로 불일치 해결 + +#### 문제 상황 +- robing-gateway가 3일 이상 unhealthy 상태 +- FailingStreak: 10,028회 실패 +- 서비스는 정상 작동하지만 헬스체크만 실패 + +#### 원인 분석 +- Dockerfile: `/health` 경로로 헬스체크 +- 실제 코드: `/healthz` 엔드포인트만 구현 +- 이전 커밋에서 main.py와 Actions는 수정했지만 Dockerfile 누락 + +#### 해결 방법 +```bash +# Dockerfile 수정 +HEALTHCHECK ... CMD curl -f http://localhost:8000/healthz || exit 1 +``` + +#### 교훈 +- **헬스체크 엔드포인트 변경 시 체크리스트 필수** + - main.py (실제 엔드포인트) + - Dockerfile (컨테이너 헬스체크) + - docker-compose.yml (compose 헬스체크) + - .gitea/workflows/*.yml (CI/CD 헬스체크) +- CLAUDE.md에 규칙 추가 완료 + +--- + +### 2. rb10508_micro 하드코딩 제거 및 중앙 설정 관리 + +#### 문제 상황 +- ChromaDB 검색 개수 100개가 하드코딩 +- Gemini 모델명이 부분적으로 하드코딩 +- Mistral 모델명이 완전히 하드코딩 + +#### 현황 파악 +1. **ChromaDB 검색 100개** + - storage.py:112에 하드코딩 + - config.py에 설정 없음 + +2. **Gemini 모델** + - brain.py:72에 'gemini-2.5-flash-lite' 하드코딩 + - config.py:48에 GEMINI_FALLBACK_MODEL 있지만 미사용 + +3. **Mistral 모델** + - mistral.py:112에 'mistral-small-latest' 하드코딩 + - config.py에 설정 없음 + +#### 해결 방법 +```python +# config.py 추가 +MEMORY_SEARCH_LIMIT: int = 100 +MISTRAL_MODEL: str = "mistral-small-latest" + +# 각 파일에서 settings 활용 +settings.MEMORY_SEARCH_LIMIT +settings.GEMINI_FALLBACK_MODEL +settings.MISTRAL_MODEL +``` + +#### 추가 수정 +- 모든 헬스체크 경로를 `/healthz`로 통일 +- README.md 업데이트 + +#### 교훈 +- **하드코딩 금지 원칙 재확인** +- 설정값은 반드시 config.py에서 중앙 관리 +- 코드 리뷰 시 하드코딩 여부 우선 체크 + +--- + +### 3. 사랑 기반 윤리 시스템 설계 논의 + +#### 현재 상태 +- rb10508_micro/app/core/ethics.py는 거의 비어있음 +- 기본 구조만 있고 실제 구현 없음 + +#### 아키텍처 결정 사항 +1. **윤리 평가 위치**: rb10508_micro 내부 (로빙의 핵심 정체성) +2. **Love Index 저장**: ChromaDB 메타데이터 (기억과 연결) +3. **LLM 사용**: 하이브리드 (명확한 경우 규칙, 애매한 경우 LLM) +4. **구현 전략**: 점진적 추가 (기존 시스템 유지) +5. **표현 방식**: 내부는 사랑, 외부는 세속적 용어 + +#### 기억 시스템 분석 +- ChromaDB 벡터 저장소 사용 +- 적응형 메모리 선택 (LLM + MMR 알고리즘) +- 100개 초기 검색 → 10-20개 최종 선택 +- 황금비(1.618) 활용한 효율적 축소 + +#### 다음 단계 +- ethics.py에 Love Index 계산 함수 추가 +- brain.py에서 윤리 평가 통합 +- ChromaDB에 love_metrics 메타데이터 추가 + +--- + +## 배포 결과 +- robing-gateway: Dockerfile 헬스체크 수정 후 푸시 +- rb10508_micro: 하드코딩 제거 후 푸시 +- 두 서비스 모두 Gitea Actions 통해 자동 배포 진행 중 \ No newline at end of file