docs: rb8001 PostgreSQL 대화 기록 통합 계획 추가
- ChromaDB 벡터 검색 + PostgreSQL 최근 대화 통합 - LLM 프롬프트 컨텍스트 개선 계획 - 의사코드 제거, 확인 필요 사항 명시
This commit is contained in:
parent
4220e6ac25
commit
90807cf907
64
plans/250831_rb8001_postgresql_context_integration.md
Normal file
64
plans/250831_rb8001_postgresql_context_integration.md
Normal file
@ -0,0 +1,64 @@
|
||||
# rb8001 PostgreSQL 대화 기록 LLM 컨텍스트 통합 계획
|
||||
|
||||
**작성일**: 2025-08-31
|
||||
**작성자**: 51123 서버 관리자
|
||||
**상태**: 🟡 계획 수립
|
||||
**목표**: ChromaDB 벡터 검색과 PostgreSQL 최근 대화를 모두 LLM 프롬프트에 포함
|
||||
|
||||
---
|
||||
|
||||
## 1. 현재 문제
|
||||
|
||||
- **현상**: rb8001이 ChromaDB 벡터 검색만 참조하여 엉뚱한 답변
|
||||
- **원인**: PostgreSQL conversation_logs의 최근 대화 미참조
|
||||
- **영향**: 직전 대화 컨텍스트 손실, 일관성 없는 응답
|
||||
|
||||
## 2. 기술 분석
|
||||
|
||||
### 현재 구조 (확인 필요)
|
||||
- `router.py`: ChromaDB `search_memories()` 호출만 존재
|
||||
- `_save_conversation()`: PostgreSQL, ChromaDB 둘 다 저장 (구현됨)
|
||||
- LLM 컨텍스트: ChromaDB 검색 결과만 포함
|
||||
|
||||
### 수정 필요 부분
|
||||
- **파일**: `/home/heejae/rb8001/app/router/router.py`
|
||||
- **함수**: `route_message()` 내 LLM 컨텍스트 구성 부분
|
||||
|
||||
## 3. 구현 계획
|
||||
|
||||
### 3.1 PostgreSQL 조회 함수 추가 (확인 필요)
|
||||
```python
|
||||
# db_service에 추가 또는 기존 함수 확인
|
||||
async def get_recent_conversations(user_id: str, limit: int = 10):
|
||||
# UUID 형식 검증 필요
|
||||
# conversation_logs 테이블에서 최근 대화 조회
|
||||
pass
|
||||
```
|
||||
|
||||
### 3.2 route_message 수정
|
||||
```python
|
||||
# 1. 기존 ChromaDB 검색 (유지)
|
||||
relevant_memories = await self.search_memories(user_id, message)
|
||||
|
||||
# 2. PostgreSQL 최근 대화 추가 (신규)
|
||||
recent_conversations = await self.db_service.get_recent_conversations(
|
||||
user_id=user_id,
|
||||
limit=10
|
||||
)
|
||||
|
||||
# 3. 통합 컨텍스트 구성
|
||||
# 형식은 LLM handler 요구사항 확인 필요
|
||||
```
|
||||
|
||||
## 4. 주의사항
|
||||
|
||||
- **UUID 처리**: Frontend(UUID) vs Slack(변환 필요) 구분
|
||||
- **성능**: PostgreSQL 조회 추가로 인한 지연 고려
|
||||
- **순서**: 최근 대화를 먼저, 벡터 검색을 보조로
|
||||
|
||||
## 5. 검증 필요 사항
|
||||
|
||||
- [ ] db_service에 get_recent_conversations 함수 존재 여부
|
||||
- [ ] LLM handler의 context 형식 요구사항
|
||||
- [ ] conversation_logs 테이블의 정확한 스키마
|
||||
- [ ] user_id UUID 변환 로직 위치
|
||||
Loading…
x
Reference in New Issue
Block a user