- 7-8월 초기 구축 문서 12개를 _archive/troubleshooting/2025_07-08_initial_setup/로 이동 - book/300_architecture/390_human_in_the_loop_intent_learning.md를 journey/research/intent_classification/로 이동 (개발 여정 문서) - 빈 폴더 제거 (journey/assets/*)
104 lines
3.0 KiB
Markdown
104 lines
3.0 KiB
Markdown
# 2025년 8월 15일 개발 작업 기록
|
|
|
|
## 오전 11시 31분
|
|
|
|
### 1. robeing-gateway 헬스체크 경로 불일치 해결
|
|
|
|
#### 문제 상황
|
|
- robeing-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
|
|
```
|
|
|
|
#### 추가 수정
|
|
- 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 메타데이터 추가
|
|
|
|
---
|
|
|
|
## 배포 결과
|
|
- robeing-gateway: Dockerfile 헬스체크 수정 후 푸시
|
|
- rb10508_micro: 하드코딩 제거 후 푸시
|
|
- 두 서비스 모두 Gitea Actions 통해 자동 배포 진행 중 |