# rb8001 PostgreSQL 대화 기록 LLM 컨텍스트 통합 계획 **작성일**: 2025-08-31 **작성자**: 51123 서버 관리자 **상태**: 🟡 계획 수립 **목표**: ChromaDB 벡터 검색과 PostgreSQL 최근 대화를 모두 LLM 프롬프트에 포함 --- ## 1. 현재 문제 - **현상**: rb8001이 ChromaDB 벡터 검색만 참조하여 엉뚱한 답변 - **원인**: PostgreSQL conversation_logs의 최근 대화 미참조 - **영향**: 직전 대화 컨텍스트 손실, 일관성 없는 응답 ## 2. 기술 분석 ### 현재 구조 (확인 완료) - `router.py` 라인 115-119: context에 user_id, channel, robeing_id만 포함 - `_save_conversation()`: PostgreSQL, ChromaDB 둘 다 저장 (구현됨) - PostgreSQL 조회 함수: 없음 (ConversationLog 모델만 정의) ### 수정 필요 부분 - **파일**: `/home/heejae/rb8001/app/router/router.py` - **함수**: `route_message()` 내 LLM 컨텍스트 구성 부분 ## 3. 구현 계획 ### 3.1 PostgreSQL 조회 함수 추가 (신규 구현) - 파일: `rb8001/app/state/database.py` - 함수명: `get_recent_conversations(user_id, limit=10)` - 쿼리: `SELECT user_message, assistant_response FROM conversation_logs` ### 3.2 route_message 수정 (라인 115-119) - 기존: `context = {"user_id", "channel", "robeing_id"}` - 추가: `"recent_conversations": await db.get_recent_conversations(user_id)` - LLM handler: Dict[str, Any] 타입 받음 (라인 270-276) ## 4. 주의사항 - **UUID 처리**: Frontend(UUID) vs Slack(변환 필요) 구분 - **성능**: PostgreSQL 조회 추가로 인한 지연 고려 - **순서**: 최근 대화를 먼저, 벡터 검색을 보조로 ## 5. 추가 이슈 - ChromaDB telemetry 오류 발생 중 → `ANONYMIZED_TELEMETRY=false` 설정 필요 - user_id UUID 타입 처리 필요 (Frontend=UUID, Slack=변환) - 현재 LLM은 "internal" 사용 (외부 서비스 아님)