From 90807cf90753310f81c017004576ee9a1ff3b4e6 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Sun, 31 Aug 2025 14:49:12 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20rb8001=20PostgreSQL=20=EB=8C=80?= =?UTF-8?q?=ED=99=94=20=EA=B8=B0=EB=A1=9D=20=ED=86=B5=ED=95=A9=20=EA=B3=84?= =?UTF-8?q?=ED=9A=8D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ChromaDB 벡터 검색 + PostgreSQL 최근 대화 통합 - LLM 프롬프트 컨텍스트 개선 계획 - 의사코드 제거, 확인 필요 사항 명시 --- ...1_rb8001_postgresql_context_integration.md | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 plans/250831_rb8001_postgresql_context_integration.md diff --git a/plans/250831_rb8001_postgresql_context_integration.md b/plans/250831_rb8001_postgresql_context_integration.md new file mode 100644 index 0000000..7103c73 --- /dev/null +++ b/plans/250831_rb8001_postgresql_context_integration.md @@ -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 변환 로직 위치 \ No newline at end of file