docs: rb8001 대화 히스토리 구현 계획 - 확인된 정보 반영

- 실제 DB 스키마 추가 (conversation_logs)
- rb8001 현재 구조 상세 명시
- 구현 순서 구체화
This commit is contained in:
happybell80 2025-09-01 22:01:54 +09:00
parent 7e4065d4a1
commit fef2a91b75
2 changed files with 51 additions and 13 deletions

View File

@ -30,13 +30,18 @@ robeing_settings: 0 records (0 KB)
### 2.1 테이블 구조 (현재)
```sql
CREATE TABLE conversation_logs (
id UUID PRIMARY KEY,
robeing_id VARCHAR(100),
user_id UUID,
message TEXT,
response TEXT,
created_at TIMESTAMP,
metadata JSON
id INTEGER PRIMARY KEY (auto-increment),
robeing_id VARCHAR,
channel_id VARCHAR,
message VARCHAR,
response VARCHAR,
intent VARCHAR,
confidence DOUBLE PRECISION,
timestamp TIMESTAMP,
user_id UUID (FK → users),
slack_user_id VARCHAR(100),
thread_ts VARCHAR(128),
channel_type VARCHAR(32)
);
```

View File

@ -8,15 +8,19 @@
## 현재 상태 분석
- **rb10508_micro**: /api/config 엔드포인트 구현됨 (endpoints.py:407)
- **rb8001**: API 엔드포인트 없음 (추가 필요)
- **rb8001**:
- database.py: ConversationLog 모델 있음 (line 52)
- get_recent_conversations() 함수 있음 (line 81)
- get_paginated_conversations() 함수 없음 (추가 필요)
- main.py: @app.get() 직접 사용, router 분리 없음
## 수정 필요 파일
### 백엔드 (rb8001)
1. `app/core/config.py` - 환경변수 추가 (MESSAGE_BATCH_SIZE=30, USER_MAPPING)
2. `app/state/database.py` - get_paginated_conversations() 함수 추가
3. `main.py` - /api/config, /api/messages 엔드포인트 추가
4. `docker-compose.yml` - 환경변수 설정
1. `app/core/config.py` - 환경변수 추가 (MESSAGE_BATCH_SIZE=30, MAX_MESSAGES_IN_DOM=200)
2. `app/state/database.py` - get_paginated_conversations() 함수 추가 (기존 get_recent_conversations 참고)
3. `main.py` - @app.get() 직접 추가 (/api/config, /api/messages)
4. `.env` 파일 - 환경변수 설정 (docker-compose.yml 아님)
### 프론트엔드 (frontend-customer)
1. `src/services/robeing-api.ts` - getConfig(), getMessages() 함수 추가
@ -39,6 +43,28 @@
---
## 데이터베이스 스키마
```sql
-- conversation_logs 테이블 (실제)
CREATE TABLE conversation_logs (
id INTEGER PRIMARY KEY (auto-increment),
robeing_id VARCHAR,
channel_id VARCHAR,
message VARCHAR,
response VARCHAR,
intent VARCHAR,
confidence DOUBLE PRECISION,
timestamp TIMESTAMP,
user_id UUID (FK → users),
slack_user_id VARCHAR(100),
thread_ts VARCHAR(128),
channel_type VARCHAR(32)
);
```
---
## 주의사항
### API 경로
@ -58,5 +84,12 @@ MAX_MESSAGES_IN_DOM: int = int(os.getenv("MAX_MESSAGES_IN_DOM", 200))
### 구현 순서
1. 백엔드 API 추가 (1시간)
- config.py 환경변수 추가
- database.py에 get_paginated_conversations() 구현
- main.py에 엔드포인트 직접 추가
2. 프론트엔드 통합 (1시간)
3. 테스트 및 배포 (30분)
- robeing-api.ts 함수 추가
- chat-interface.tsx 무한 스크롤 구현
3. 테스트 및 배포 (30분)
- curl localhost:8001/api/config 테스트
- 51124 서버 docker compose down && up -d --build