DOCS/plans/250831_rb8001_postgresql_context_integration.md
happybell80 90807cf907 docs: rb8001 PostgreSQL 대화 기록 통합 계획 추가
- ChromaDB 벡터 검색 + PostgreSQL 최근 대화 통합
- LLM 프롬프트 컨텍스트 개선 계획
- 의사코드 제거, 확인 필요 사항 명시
2025-08-31 14:49:12 +09:00

2.0 KiB

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 조회 함수 추가 (확인 필요)

# db_service에 추가 또는 기존 함수 확인
async def get_recent_conversations(user_id: str, limit: int = 10):
    # UUID 형식 검증 필요
    # conversation_logs 테이블에서 최근 대화 조회
    pass

3.2 route_message 수정

# 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 변환 로직 위치