docs: replace rb10508_test -> rb10508_micro across docs (partial sweep)
This commit is contained in:
parent
1ec58c2fb0
commit
5e6de41ed5
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
**날짜**: 2025-07-30
|
**날짜**: 2025-07-30
|
||||||
**작성자**: Claude (51124 서버)
|
**작성자**: Claude (51124 서버)
|
||||||
**관련 프로젝트**: rb10508_test, rb8001, rb10408_test
|
**관련 프로젝트**: rb10508_micro, rb8001, rb10408
|
||||||
|
|
||||||
## 배경
|
## 배경
|
||||||
|
|
||||||
### 현재 문제 상황
|
### 현재 문제 상황
|
||||||
- rb10508_test 컨테이너에서 ChromaDB 초기화 실패
|
- rb10508_micro 컨테이너에서 ChromaDB 초기화 실패
|
||||||
- 오류: `The sentence_transformers python package is not installed`
|
- 오류: `The sentence_transformers python package is not installed`
|
||||||
- 원인: 빌드 시간 단축을 위해 requirements.txt에서 sentence-transformers 제거 (1GB+ 절약)
|
- 원인: 빌드 시간 단축을 위해 requirements.txt에서 sentence-transformers 제거 (1GB+ 절약)
|
||||||
|
|
||||||
@ -171,4 +171,4 @@ sentence-transformers>=2.2.0
|
|||||||
3. 장기적 유지보수 관점에서의 선호도
|
3. 장기적 유지보수 관점에서의 선호도
|
||||||
|
|
||||||
현재 프론트엔드 연결은 정상 작동하며, Gemini API를 통한 응답 생성도 가능합니다.
|
현재 프론트엔드 연결은 정상 작동하며, Gemini API를 통한 응답 생성도 가능합니다.
|
||||||
단지 대화 기록이 벡터 DB에 저장되지 않는 상황이므로, 긴급도는 중간 수준입니다.
|
단지 대화 기록이 벡터 DB에 저장되지 않는 상황이므로, 긴급도는 중간 수준입니다.
|
||||||
|
|||||||
@ -51,7 +51,7 @@
|
|||||||
- "Processing message from U0925SXQFDK"
|
- "Processing message from U0925SXQFDK"
|
||||||
- "[메모리] 검색: 6개 → LLM 선택: 4개"
|
- "[메모리] 검색: 6개 → LLM 선택: 4개"
|
||||||
- "[대화] 2개 메모리 저장 완료"
|
- "[대화] 2개 메모리 저장 완료"
|
||||||
- **ChromaDB 저장**: rb10508_test_episodic에 5개 문서
|
- **ChromaDB 저장**: rb10508_micro_episodic에 5개 문서
|
||||||
|
|
||||||
## 2. 현재 문제점
|
## 2. 현재 문제점
|
||||||
|
|
||||||
@ -349,7 +349,7 @@ workspace_members에서 robeing_id 확인
|
|||||||
↓
|
↓
|
||||||
해당 로빙으로 라우팅
|
해당 로빙으로 라우팅
|
||||||
↓
|
↓
|
||||||
ChromaDB: rb10508_test_{user_id}_episodic
|
ChromaDB: rb10508_micro_{user_id}_episodic
|
||||||
```
|
```
|
||||||
|
|
||||||
### 11.3 초기 매핑 데이터
|
### 11.3 초기 매핑 데이터
|
||||||
|
|||||||
@ -85,7 +85,7 @@ x_user_id: Optional[str] = Header(None) # X-User-Id 헤더만 확인
|
|||||||
```python
|
```python
|
||||||
# rb10508_micro/app/core/memory/storage.py
|
# rb10508_micro/app/core/memory/storage.py
|
||||||
collection_name = f"{settings.ROBEING_ID}_{username if username else 'default'}_{memory_type}"
|
collection_name = f"{settings.ROBEING_ID}_{username if username else 'default'}_{memory_type}"
|
||||||
# 현재: rb10508_test_default_episodic (모든 사용자 공유!)
|
# 현재: rb10508_micro_default_episodic (모든 사용자 공유!)
|
||||||
|
|
||||||
# 문제: endpoints.py에서 username 전달하지 않음
|
# 문제: endpoints.py에서 username 전달하지 않음
|
||||||
# endpoints.py:22 - 기본값: "default_user"
|
# endpoints.py:22 - 기본값: "default_user"
|
||||||
@ -115,8 +115,8 @@ collection_name = f"{settings.ROBEING_ID}_{username if username else 'default'}_
|
|||||||
- endpoints.py에서 username 파라미터를 storage.py로 전달하지 않음
|
- endpoints.py에서 username 파라미터를 storage.py로 전달하지 않음
|
||||||
- user_id는 받지만 username으로 변환하지 않음
|
- user_id는 받지만 username으로 변환하지 않음
|
||||||
- **채널별 다른 컬렉션 사용 문제**:
|
- **채널별 다른 컬렉션 사용 문제**:
|
||||||
- Slack: `rb10508_test_happybell80_episodic` (Auth 서버 매핑 제공)
|
- Slack: `rb10508_micro_happybell80_episodic` (Auth 서버 매핑 제공)
|
||||||
- Frontend: `rb10508_test_default_episodic` (모든 사용자 공유)
|
- Frontend: `rb10508_micro_default_episodic` (모든 사용자 공유)
|
||||||
- **동일 사용자(happybell80)가 두 채널에서 다른 메모리 공간 사용**
|
- **동일 사용자(happybell80)가 두 채널에서 다른 메모리 공간 사용**
|
||||||
- 대화 내용 분리로 연속성 상실
|
- 대화 내용 분리로 연속성 상실
|
||||||
|
|
||||||
@ -275,7 +275,7 @@ X-Username: happybell80 // 명확한 이름
|
|||||||
#### 1. Auth 서버 JWT 활용 (권장) 🌟
|
#### 1. Auth 서버 JWT 활용 (권장) 🌟
|
||||||
```
|
```
|
||||||
Frontend 로그인 → JWT(username 포함) → Gateway 검증 → Robeing username 추출
|
Frontend 로그인 → JWT(username 포함) → Gateway 검증 → Robeing username 추출
|
||||||
→ Slack과 동일한 컬렉션 사용 (rb10508_test_happybell80_episodic)
|
→ Slack과 동일한 컬렉션 사용 (rb10508_micro_happybell80_episodic)
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2. Frontend user_id 전달 개선
|
#### 2. Frontend user_id 전달 개선
|
||||||
@ -394,4 +394,4 @@ collection_name = f"{settings.ROBEING_ID}_{username if username else 'default'}_
|
|||||||
## 문서 작성자
|
## 문서 작성자
|
||||||
- 작성일: 2025-08-16
|
- 작성일: 2025-08-16
|
||||||
- 작성자: 51123 서버 관리 Claude
|
- 작성자: 51123 서버 관리 Claude
|
||||||
- 목적: 인증 시스템 통합을 위한 현황 분석
|
- 목적: 인증 시스템 통합을 위한 현황 분석
|
||||||
|
|||||||
@ -169,7 +169,7 @@ GET /api/health # 헬스체크
|
|||||||
### Phase 1
|
### Phase 1
|
||||||
1. robeing-gateway 기본 구조 생성
|
1. robeing-gateway 기본 구조 생성
|
||||||
2. 인증 흐름 연결
|
2. 인증 흐름 연결
|
||||||
3. 단순 라우팅 (모든 사용자 → rb10508_test)
|
3. 단순 라우팅 (모든 사용자 → rb10508_micro)
|
||||||
|
|
||||||
### Phase 2
|
### Phase 2
|
||||||
1. robeing-monitor 구현
|
1. robeing-monitor 구현
|
||||||
|
|||||||
@ -290,9 +290,9 @@ for col in collections:
|
|||||||
print(f"{col.name}: {col.count()}개")
|
print(f"{col.name}: {col.count()}개")
|
||||||
|
|
||||||
# 예상 결과:
|
# 예상 결과:
|
||||||
# rb10508_test_aaaaaaaa_episodic: N개
|
# rb10508_micro_aaaaaaaa_episodic: N개
|
||||||
# rb10508_test_bbbbbbbb_episodic: M개
|
# rb10508_micro_bbbbbbbb_episodic: M개
|
||||||
# rb10508_test_default_user_episodic: K개
|
# rb10508_micro_default_user_episodic: K개
|
||||||
```
|
```
|
||||||
|
|
||||||
## 7. 배포 순서
|
## 7. 배포 순서
|
||||||
@ -349,4 +349,4 @@ for col in collections:
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*이 문서는 24서버팀의 분석을 기반으로 로컬 개발자가 작성한 구현 계획입니다.*
|
*이 문서는 24서버팀의 분석을 기반으로 로컬 개발자가 작성한 구현 계획입니다.*
|
||||||
|
|||||||
@ -41,7 +41,7 @@ docker network create appnet
|
|||||||
|
|
||||||
# 컨테이너들을 공유 네트워크에 연결
|
# 컨테이너들을 공유 네트워크에 연결
|
||||||
docker network connect appnet frontend-backend-1
|
docker network connect appnet frontend-backend-1
|
||||||
docker network connect appnet rb10508_test
|
docker network connect appnet rb10508_micro
|
||||||
```
|
```
|
||||||
|
|
||||||
**결과**: Container-to-container 직접 통신 가능
|
**결과**: Container-to-container 직접 통신 가능
|
||||||
@ -62,7 +62,7 @@ SERVICES = {
|
|||||||
SERVICES = {
|
SERVICES = {
|
||||||
"frontend": {"url": "http://frontend:5173"}, # 컨테이너 DNS
|
"frontend": {"url": "http://frontend:5173"}, # 컨테이너 DNS
|
||||||
"backend": {"url": "self"}, # Self-check 최적화
|
"backend": {"url": "self"}, # Self-check 최적화
|
||||||
"test-api": {"url": "http://rb10508_test:10508"} # 컨테이너 DNS
|
"test-api": {"url": "http://rb10508_micro:10508"} # 컨테이너 DNS
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -160,4 +160,4 @@ docker network inspect bridge | grep Gateway
|
|||||||
2. **외부 서비스 접근**: Docker bridge IP 사용
|
2. **외부 서비스 접근**: Docker bridge IP 사용
|
||||||
3. **Self-check**: 특별한 로직으로 처리
|
3. **Self-check**: 특별한 로직으로 처리
|
||||||
4. **네트워크 설계**: 통신이 필요한 컨테이너는 같은 네트워크에 배치
|
4. **네트워크 설계**: 통신이 필요한 컨테이너는 같은 네트워크에 배치
|
||||||
5. **테스트**: 네트워크 변경 시 항상 연결성 테스트 수행
|
5. **테스트**: 네트워크 변경 시 항상 연결성 테스트 수행
|
||||||
|
|||||||
@ -64,7 +64,7 @@ services:
|
|||||||
sudo -u postgres psql
|
sudo -u postgres psql
|
||||||
CREATE USER robeings WITH PASSWORD 'robeing2025!';
|
CREATE USER robeings WITH PASSWORD 'robeing2025!';
|
||||||
GRANT ALL PRIVILEGES ON DATABASE rb8001_db TO robeings;
|
GRANT ALL PRIVILEGES ON DATABASE rb8001_db TO robeings;
|
||||||
GRANT ALL PRIVILEGES ON DATABASE rb10508_test_db TO robeings;
|
GRANT ALL PRIVILEGES ON DATABASE rb10508_micro_db TO robeings;
|
||||||
\q
|
\q
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -171,6 +171,6 @@ curl -X POST http://localhost:8001/api/test/db
|
|||||||
|
|
||||||
## 다음 단계
|
## 다음 단계
|
||||||
|
|
||||||
1. rb10508_test도 동일한 방식으로 설정
|
1. rb10508_micro도 동일한 방식으로 설정
|
||||||
2. 운영 환경에서의 네트워크 보안 검토
|
2. 운영 환경에서의 네트워크 보안 검토
|
||||||
3. 로그 모니터링을 통한 연결 안정성 확인
|
3. 로그 모니터링을 통한 연결 안정성 확인
|
||||||
|
|||||||
@ -32,7 +32,7 @@
|
|||||||
```bash
|
```bash
|
||||||
# 실제 컨테이너 이름
|
# 실제 컨테이너 이름
|
||||||
frontend-base (backend가 아님)
|
frontend-base (backend가 아님)
|
||||||
rb10508_test
|
rb10508_micro
|
||||||
rb8001
|
rb8001
|
||||||
auth-server
|
auth-server
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ gitea
|
|||||||
1. systemd 체크 코드 완전 제거
|
1. systemd 체크 코드 완전 제거
|
||||||
2. Docker 컨테이너 이름을 실제 이름으로 수정
|
2. Docker 컨테이너 이름을 실제 이름으로 수정
|
||||||
3. Docker API로 체크할 서비스 목록 하드코딩:
|
3. Docker API로 체크할 서비스 목록 하드코딩:
|
||||||
- rb10508_test, backend(frontend-base), rb8001, auth-server
|
- rb10508_micro, backend(frontend-base), rb8001, auth-server
|
||||||
4. nginx, gitea는 HTTP 체크 유지 (172.17.0.1 통해 호스트 접근)
|
4. nginx, gitea는 HTTP 체크 유지 (172.17.0.1 통해 호스트 접근)
|
||||||
|
|
||||||
**코드 변경 내용**:
|
**코드 변경 내용**:
|
||||||
@ -57,7 +57,7 @@ gitea
|
|||||||
|
|
||||||
# Docker 서비스 목록 수정
|
# Docker 서비스 목록 수정
|
||||||
docker_services = {
|
docker_services = {
|
||||||
"rb10508_test": "rb10508_test",
|
"rb10508_micro": "rb10508_micro",
|
||||||
"backend": "frontend-base", # 실제 컨테이너 이름으로 수정
|
"backend": "frontend-base", # 실제 컨테이너 이름으로 수정
|
||||||
"rb8001_8001": "rb8001",
|
"rb8001_8001": "rb8001",
|
||||||
"auth-server_9000": "auth-server",
|
"auth-server_9000": "auth-server",
|
||||||
@ -118,4 +118,4 @@ BASE_SERVICES = {
|
|||||||
**결과**:
|
**결과**:
|
||||||
- PostgreSQL과 Neo4j가 기본 서비스로 표시
|
- PostgreSQL과 Neo4j가 기본 서비스로 표시
|
||||||
- 삭제 불가능한 핵심 서비스로 보호
|
- 삭제 불가능한 핵심 서비스로 보호
|
||||||
- HTTP health check로 상태 확인 (PostgreSQL은 TCP 연결만 체크)
|
- HTTP health check로 상태 확인 (PostgreSQL은 TCP 연결만 체크)
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
**날짜**: 2025-07-29
|
**날짜**: 2025-07-29
|
||||||
**작업자**: Claude (51124 서버)
|
**작업자**: Claude (51124 서버)
|
||||||
**관련 프로젝트**: rb10508_test
|
**관련 프로젝트**: rb10508_micro
|
||||||
|
|
||||||
## 오후 8시 30분
|
## 오후 8시 30분
|
||||||
|
|
||||||
@ -27,4 +27,4 @@
|
|||||||
- 51124 서버에서는 단순한 해결책을 우선 고려할 것
|
- 51124 서버에서는 단순한 해결책을 우선 고려할 것
|
||||||
|
|
||||||
---
|
---
|
||||||
**작성 완료**: 2025-07-29 20:51
|
**작성 완료**: 2025-07-29 20:51
|
||||||
|
|||||||
@ -229,7 +229,7 @@ Claude가 세션 시작 시 규칙을 제대로 따르지 않음. CLAUDE.md 재
|
|||||||
- 로그 API에서 빈 결과 반환
|
- 로그 API에서 빈 결과 반환
|
||||||
|
|
||||||
2. **코드 검토 및 수정**:
|
2. **코드 검토 및 수정**:
|
||||||
- `docker-compose.yml`: rb10508_test와 동일한 구조로 수정
|
- `docker-compose.yml`: rb10508_micro와 동일한 구조로 수정
|
||||||
- `network_mode: host` 적용
|
- `network_mode: host` 적용
|
||||||
- `SKILL_EMAIL_URL` 환경변수 추가
|
- `SKILL_EMAIL_URL` 환경변수 추가
|
||||||
- logs 볼륨 마운트 방식 통일
|
- logs 볼륨 마운트 방식 통일
|
||||||
@ -270,7 +270,7 @@ Claude가 세션 시작 시 규칙을 제대로 따르지 않음. CLAUDE.md 재
|
|||||||
- uvicorn LOG_LEVEL은 소문자만 허용
|
- uvicorn LOG_LEVEL은 소문자만 허용
|
||||||
- 방어적 프로그래밍으로 `.lower()` 적용 권장
|
- 방어적 프로그래밍으로 `.lower()` 적용 권장
|
||||||
|
|
||||||
3. **rb10508_test와 rb8001 구조 통일**:
|
3. **rb10508_micro와 rb8001 구조 통일**:
|
||||||
- 성공한 설정을 다른 서비스에 적용하는 것이 효과적
|
- 성공한 설정을 다른 서비스에 적용하는 것이 효과적
|
||||||
- docker-compose.yml, requirements.txt 일관성 중요
|
- docker-compose.yml, requirements.txt 일관성 중요
|
||||||
|
|
||||||
@ -278,4 +278,4 @@ Claude가 세션 시작 시 규칙을 제대로 따르지 않음. CLAUDE.md 재
|
|||||||
- 코드 수정 → git push → Actions → 배포 → 서비스 확인까지 전체 플로우 점검 필요
|
- 코드 수정 → git push → Actions → 배포 → 서비스 확인까지 전체 플로우 점검 필요
|
||||||
|
|
||||||
---
|
---
|
||||||
**작성 완료**: 2025-07-29 21:45
|
**작성 완료**: 2025-07-29 21:45
|
||||||
|
|||||||
@ -11,7 +11,7 @@ ChromaDB에서 각 로빙의 메모리를 저장할 때, 컬렉션 이름 생성
|
|||||||
self.collection_name = f"robeing_{robeing_id}_memories"
|
self.collection_name = f"robeing_{robeing_id}_memories"
|
||||||
```
|
```
|
||||||
|
|
||||||
각 로빙은 고유한 ID를 가지고 있어 (`rb10408_test`, `rb10508_test` 등), 컬렉션 이름이 중복될 가능성이 없었습니다.
|
각 로빙은 고유한 ID를 가지고 있어 (`rb10408`, `rb10508_micro` 등), 컬렉션 이름이 중복될 가능성이 없었습니다.
|
||||||
|
|
||||||
## 추가 확인 사항
|
## 추가 확인 사항
|
||||||
메모리 ID 생성 로직:
|
메모리 ID 생성 로직:
|
||||||
@ -28,4 +28,4 @@ def generate_id(self, content: str, timestamp: str) -> str:
|
|||||||
이미 적절한 UUID 충돌 방지 메커니즘이 구현되어 있어 추가 조치가 필요하지 않았습니다.
|
이미 적절한 UUID 충돌 방지 메커니즘이 구현되어 있어 추가 조치가 필요하지 않았습니다.
|
||||||
|
|
||||||
## 관련 파일
|
## 관련 파일
|
||||||
- `/home/heejae/rb10408_test/app/state/memory_manager.py`
|
- `/home/heejae/rb10408_test/app/state/memory_manager.py`
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
## 배경
|
## 배경
|
||||||
- rb10408_test는 경량화 버전으로 명령어 미구현 상태
|
- rb10408_test는 경량화 버전으로 명령어 미구현 상태
|
||||||
- rb10508_test는 일부 명령어 구현됨
|
- rb10508_micro는 일부 명령어 구현됨
|
||||||
- 공통 명령어를 경량화를 유지하면서 구현해야 함
|
- 공통 명령어를 경량화를 유지하면서 구현해야 함
|
||||||
|
|
||||||
## 구현된 명령어 (rb10508_test)
|
## 구현된 명령어 (rb10508_micro)
|
||||||
- `/memory` - 메모리 통계 조회
|
- `/memory` - 메모리 통계 조회
|
||||||
- `/digest` - 요약 생성
|
- `/digest` - 요약 생성
|
||||||
- `/news` - 뉴스 검색
|
- `/news` - 뉴스 검색
|
||||||
@ -89,5 +89,5 @@ except Exception as e:
|
|||||||
|
|
||||||
## 관련 파일
|
## 관련 파일
|
||||||
- `/home/heejae/rb10408_test/app/commands/handler.py` (생성 필요)
|
- `/home/heejae/rb10408_test/app/commands/handler.py` (생성 필요)
|
||||||
- `/home/heejae/rb10508_test/app/commands/` (참고용)
|
- `/home/heejae/rb10508_micro/app/commands/` (참고용)
|
||||||
- `/home/heejae/DOCS/skills-and-commands.md`
|
- `/home/heejae/DOCS/skills-and-commands.md`
|
||||||
|
|||||||
@ -179,10 +179,10 @@ docker exec rb10508_micro ls -la /code/chroma_db
|
|||||||
#### 3. storage.py 모듈 테스트 ✅
|
#### 3. storage.py 모듈 테스트 ✅
|
||||||
```python
|
```python
|
||||||
# 컬렉션 4개 확인:
|
# 컬렉션 4개 확인:
|
||||||
- rb10508_test_happybell80: 0개
|
- rb10508_micro_happybell80: 0개
|
||||||
- rb10508_test_episodic: 1개 # 테스트 데이터 저장됨
|
- rb10508_micro_episodic: 1개 # 테스트 데이터 저장됨
|
||||||
- rb10508_test_procedural: 0개
|
- rb10508_micro_procedural: 0개
|
||||||
- rb10508_test_semantic: 0개
|
- rb10508_micro_semantic: 0개
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 4. 메모리 저장 테스트 ✅
|
#### 4. 메모리 저장 테스트 ✅
|
||||||
@ -212,4 +212,4 @@ docker inspect rb10508_micro | grep -A 5 Mounts
|
|||||||
- ✅ ChromaDB 메모리 손실 문제 해결
|
- ✅ ChromaDB 메모리 손실 문제 해결
|
||||||
- ✅ 디렉토리명 불일치 수정
|
- ✅ 디렉토리명 불일치 수정
|
||||||
- ✅ Gitea Actions 동기화 완료
|
- ✅ Gitea Actions 동기화 완료
|
||||||
- ✅ 데이터 영속성 확보
|
- ✅ 데이터 영속성 확보
|
||||||
|
|||||||
@ -10,7 +10,7 @@ happybell80, Claude
|
|||||||
- Gmail 통합 작업 중 사용자 이름→이메일 변환 로직 구현 필요
|
- Gmail 통합 작업 중 사용자 이름→이메일 변환 로직 구현 필요
|
||||||
- 로빙이 개인 연락처를 저장할 공간 설계 논의 중
|
- 로빙이 개인 연락처를 저장할 공간 설계 논의 중
|
||||||
- 기존 auth_db가 인증 전용 DB처럼 보여 혼란 야기
|
- 기존 auth_db가 인증 전용 DB처럼 보여 혼란 야기
|
||||||
- 51123 서버에서 rb10508_test_db 삭제 및 auth_db → main_db 변경 완료
|
- 51123 서버에서 rb10508_micro_db 삭제 및 auth_db → main_db 변경 완료
|
||||||
|
|
||||||
## 문제점
|
## 문제점
|
||||||
1. auth_db라는 이름이 인증 전용 DB로 오해 소지
|
1. auth_db라는 이름이 인증 전용 DB로 오해 소지
|
||||||
@ -107,4 +107,4 @@ CREATE INDEX idx_conversations_robeing ON robeing.conversations(robeing_id);
|
|||||||
- 데이터베이스 이름은 용도를 명확히 반영해야 함
|
- 데이터베이스 이름은 용도를 명확히 반영해야 함
|
||||||
- 하드코딩된 DB 이름은 환경변수로 관리
|
- 하드코딩된 DB 이름은 환경변수로 관리
|
||||||
- 로빙의 개인 데이터는 격리된 스키마/테이블로 관리
|
- 로빙의 개인 데이터는 격리된 스키마/테이블로 관리
|
||||||
- JSONB 필드로 확장성 확보
|
- JSONB 필드로 확장성 확보
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user