diff --git a/docs/troubleshooting/250721_happybell80_로빙기억력문제및nginx포트추가.md b/docs/troubleshooting/250721_happybell80_로빙기억력문제및nginx포트추가.md new file mode 100644 index 0000000..606d00e --- /dev/null +++ b/docs/troubleshooting/250721_happybell80_로빙기억력문제및nginx포트추가.md @@ -0,0 +1,124 @@ +# 로빙 기억력 문제 해결 및 Nginx 포트 추가 + +**날짜**: 2025-07-21 +**작업자**: happybell80 & Claude + +## 오후 10시 30분 + +### 10408 포트 Nginx SSL 설정 추가 + +**요청**: 희재님 테스트용 10408 포트에 SSL 설정 필요 + +**해결**: +1. nginx-deploy/server-nginx-default에 설정 추가 +```nginx +# RB10408 API endpoints (희재님 테스트용) +location /rb10408/ { + proxy_pass http://localhost:10408/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; +} +``` + +2. Git push로 자동 배포 트리거 +- Gitea Actions가 자동으로 nginx 설정 적용 +- https://ro-being.com/rb10408/ 접속 가능 + +## 오후 11시 00분 + +### 이메일 실제 전송 기능 구현 + +**문제**: +- "이메일 써줘"라고 하면 내용만 생성하고 실제 전송 안 함 +- 사용자가 "어디로 보냈어?"라고 물어도 대답 못함 + +**원인 분석**: +- robing_brain.py에서 이메일 내용만 생성하고 send_email 호출 안 함 +- 의도 분석이 "써줘"를 email intent로 인식 못함 + +**해결**: +1. intent_patterns에 "이메일.*써" 패턴 추가 +2. _handle_email_request 함수 개선 + - "이메일 써줘. 내용은..." 패턴 인식 + - Gemini로 실제 이메일 내용 생성 + - 생성된 내용으로 실제 전송 + - 이메일 주소 자동 추출 (없으면 기본값) + +**결과**: +```python +# 이전: 내용만 보여주고 끝 +# 이후: 실제로 이메일 전송 후 결과 표시 +"✅ 이메일을 happybell80@naver.com로 전송했습니다!" +``` + +## 오후 11시 30분 + +### 로빙 기억력 0초 문제 분석 + +**현상**: +- 로빙이 바로 직전 대화도 기억 못함 +- 매번 새로운 대화처럼 응답 +- 자기가 가진 스킬도 인식 못함 + +**DB 사용 현황 분석**: +1. **PostgreSQL**: 사용자 정보, 세션 관리 +2. **Neo4j**: 지식 그래프 (거의 미사용) +3. **ChromaDB**: + - 모든 대화 저장 중 + - 하지만 검색 기능 미구현 + - 사용자 메시지만 저장, 응답은 저장 안 함 + +**근본 원인**: +- 단기 대화 컨텍스트 저장소 없음 +- 각 메시지를 독립적으로 처리 +- 설계는 거창하지만 구현이 미완성 + +**개선 방향 결정**: +1. 가장 심플한 해결책: 메모리 딕셔너리 사용 +2. robing_brain.py에만 코드 추가 +3. Redis 같은 외부 의존성 추가 안 함 + +**장단점 분석**: +- 장점: 즉시 작동, 코드 간단, 외부 의존성 없음 +- 단점: 서버 재시작 시 초기화, 멀티프로세스 미지원 +- 결론: MVP 프로토타입에 적합 + +## 오후 11시 50분 + +### 대화 컨텍스트 기능 구현 (진행 중) + +**구현 내용**: +1. RobeingBrain 클래스에 conversation_history 딕셔너리 추가 +2. 각 대화 후 히스토리 저장 (최근 5개만) +3. _handle_general_conversation에서 이전 대화 포함하여 Gemini 호출 +4. ChromaDB 저장 시 응답도 함께 저장하도록 수정 예정 + +**코드 변경사항**: +```python +# 1. 대화 히스토리 저장소 추가 +self.conversation_history: Dict[str, List[Dict[str, str]]] = {} + +# 2. 대화 저장 (process_request 끝부분) +self.conversation_history[user_id].append({ + "user": text, + "assistant": response +}) + +# 3. 컨텍스트 포함 프롬프트 +if history: + context_text = "이전 대화:\n" + ... + full_prompt = f"당신은 대화의 흐름을 기억하는 로빙입니다..." +``` + +**다음 작업**: +- ChromaDB에 응답도 저장하도록 수정 +- 테스트 후 배포 + +--- + +**교훈**: +1. "큰 그림"보다 "작동하는 코드"가 우선 +2. 복잡한 아키텍처보다 심플한 해결책이 때로는 최선 +3. 프로토타입 단계에서는 과도한 설계 지양 \ No newline at end of file