From e793b4b31f6489e366237e7db164630e5a743d3c Mon Sep 17 00:00:00 2001 From: happybell80 Date: Wed, 10 Sep 2025 01:02:12 +0900 Subject: [PATCH] =?UTF-8?q?Update:=20=EA=B2=80=EC=83=89=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=EC=9D=84=20RAG=20=EC=8A=A4=ED=82=AC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SearchService → RAG 스킬로 재명명 - rb8001/app/skills/rag.py로 구현 위치 변경 - 웹 검색 + 파일 RAG 통합 처리 방향 명시 - services/와 skills/ 구분: 영구 내부 vs 잠재적 독립 --- .../250909_로빙_검색_API_통합_전략.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/ideas/250909_로빙_검색_API_통합_전략.md b/ideas/250909_로빙_검색_API_통합_전략.md index d284e2f..9af34e5 100644 --- a/ideas/250909_로빙_검색_API_통합_전략.md +++ b/ideas/250909_로빙_검색_API_통합_전략.md @@ -2,8 +2,8 @@ **작성일**: 2025-09-09 **작성자**: happybell80 & Claude -**관련 서비스**: rb8001 (SearchService 내부 구현) -**핵심 기술**: Multi-provider Search API, Query Routing, Caching +**관련 서비스**: rb8001 (RAG 스킬 내부 구현) +**핵심 기술**: Multi-provider Search API, Query Routing, Caching, RAG ## 1. 검색 프로바이더 계층 구조 @@ -25,7 +25,7 @@ 검색 의도 추가: LLM 프롬프트에 "검색 요청은 /search로" 또는 직접 패턴 매칭. ```python -# rb8001/app/services/search_service.py +# rb8001/app/skills/rag.py def route_by_pattern(query): if "뉴스" in query: return 'news_api' if "언제" in query: return 'duckduckgo' # 즉답 @@ -35,7 +35,7 @@ def route_by_pattern(query): ## 3. 구현 아키텍처 ``` -사용자 → rb8001 내부 SearchService +사용자 → rb8001 내부 RAG 스킬 ↓ [Query Router] ↓ @@ -66,12 +66,13 @@ Tavily Brave Serper DuckDuckGo ### 예상 월 비용: $0.05 -## 6. 구현 위치: rb8001/app/services/search_service.py +## 6. 구현 위치: rb8001/app/skills/rag.py -별도 스킬 서비스 대신 rb8001 내부 SearchService로 구현 -- 의도 분류 후 직접 처리 (네트워크 홉 감소) -- Phase 1: Tavily + DuckDuckGo 통합 -- Phase 2: 복잡도 증가 시 skill-search 분리 검토 +별도 마이크로서비스 대신 rb8001 내부 RAG 스킬로 구현 +- 웹 검색 + 파일 RAG 통합 처리 +- Phase 1: Tavily + DuckDuckGo 웹 검색 +- Phase 2: ChromaDB 파일 검색 통합 +- Phase 3: 복잡도 증가 시 skill-rag 분리 ## 7. 핵심 차별점