Update: 검색 구현을 RAG 스킬로 변경

- SearchService → RAG 스킬로 재명명
- rb8001/app/skills/rag.py로 구현 위치 변경
- 웹 검색 + 파일 RAG 통합 처리 방향 명시
- services/와 skills/ 구분: 영구 내부 vs 잠재적 독립
This commit is contained in:
happybell80 2025-09-10 01:02:12 +09:00
parent a15415b623
commit e793b4b31f

View File

@ -2,8 +2,8 @@
**작성일**: 2025-09-09 **작성일**: 2025-09-09
**작성자**: happybell80 & Claude **작성자**: happybell80 & Claude
**관련 서비스**: rb8001 (SearchService 내부 구현) **관련 서비스**: rb8001 (RAG 스킬 내부 구현)
**핵심 기술**: Multi-provider Search API, Query Routing, Caching **핵심 기술**: Multi-provider Search API, Query Routing, Caching, RAG
## 1. 검색 프로바이더 계층 구조 ## 1. 검색 프로바이더 계층 구조
@ -25,7 +25,7 @@
검색 의도 추가: LLM 프롬프트에 "검색 요청은 /search로" 또는 직접 패턴 매칭. 검색 의도 추가: LLM 프롬프트에 "검색 요청은 /search로" 또는 직접 패턴 매칭.
```python ```python
# rb8001/app/services/search_service.py # rb8001/app/skills/rag.py
def route_by_pattern(query): def route_by_pattern(query):
if "뉴스" in query: return 'news_api' if "뉴스" in query: return 'news_api'
if "언제" in query: return 'duckduckgo' # 즉답 if "언제" in query: return 'duckduckgo' # 즉답
@ -35,7 +35,7 @@ def route_by_pattern(query):
## 3. 구현 아키텍처 ## 3. 구현 아키텍처
``` ```
사용자 → rb8001 내부 SearchService 사용자 → rb8001 내부 RAG 스킬
[Query Router] [Query Router]
@ -66,12 +66,13 @@ Tavily Brave Serper DuckDuckGo
### 예상 월 비용: $0.05 ### 예상 월 비용: $0.05
## 6. 구현 위치: rb8001/app/services/search_service.py ## 6. 구현 위치: rb8001/app/skills/rag.py
별도 스킬 서비스 대신 rb8001 내부 SearchService로 구현 별도 마이크로서비스 대신 rb8001 내부 RAG 스킬로 구현
- 의도 분류 후 직접 처리 (네트워크 홉 감소) - 웹 검색 + 파일 RAG 통합 처리
- Phase 1: Tavily + DuckDuckGo 통합 - Phase 1: Tavily + DuckDuckGo 웹 검색
- Phase 2: 복잡도 증가 시 skill-search 분리 검토 - Phase 2: ChromaDB 파일 검색 통합
- Phase 3: 복잡도 증가 시 skill-rag 분리
## 7. 핵심 차별점 ## 7. 핵심 차별점