# rb8001 뉴스 검색 404 오류 해결 ## 문제 상황 - **발생일**: 2025-09-17 12:47, 12:49, 13:38 - **증상**: rb8001에서 뉴스 검색 요청시 404 Not Found 에러 - **에러**: `http://localhost:8505/search` 엔드포인트 없음 ## 오류 로그 ``` ERROR - Service call failed: http://localhost:8505/search - Client error '404 Not Found' ``` ## 사용자 발화 내역 1. **12:47** - user_id: 53529291-5050-4daa-89fb-008b546feb63 - 발화: "오버더 핸드 최신 뉴스 검색해줘" - 의도: news_fetch 2. **12:49** - user_id: 3319cf5b-4a2d-486e-b64c-f63de3f370a3 - 발화: "주요 뉴스 검색 요약 정리해줘" - 의도: news_summary 3. **13:38** - user_id: 3319cf5b-4a2d-486e-b64c-f63de3f370a3 - 발화: "좋아 그럼 앞으로 스타트업, 창업, 크립토 분야 주요 뉴스를 요약해서 매일 오전 9시, 오후 6시 이렇게 두번 알려줘 할 수 있겠어?" - 의도: news_fetch ## 원인 분석 ### 1. 잘못된 엔드포인트 경로 - **문제 코드**: `rb8001/app/router/router.py:353` ```python elif "8505" in url or "news" in url: # News 서비스 url = f"{url}/search" # ← 잘못된 경로 ``` - **실제 API**: `http://localhost:8505/api/news/search` - **잘못된 요청**: `http://localhost:8505/search` ### 2. 요청 데이터 형식 문제 - skill-news API는 keywords를 **배열**로 받음 - rb8001이 **문자열**로 전송 가능성 ## 해결 방법 ### 수정 필요 파일 **`rb8001/app/router/router.py`** 353번 라인 ### 수정 전 ```python elif "8505" in url or "news" in url: # News 서비스 url = f"{url}/search" ``` ### 수정 후 ```python elif "8505" in url or "news" in url: # News 서비스 url = f"{url}/api/news/search" # keywords를 배열로 변환 (필요시) if 'keywords' in payload and isinstance(payload['keywords'], str): payload['keywords'] = [payload['keywords']] ``` ## 테스트 확인 ### API 테스트 (성공) ```bash curl -X POST http://localhost:8505/api/news/search \ -H "Content-Type: application/json" \ -d '{"keywords": ["AI"], "user_id": "test-user", "channel": "test"}' ``` ### 응답 - HTTP 200 OK - 19개 뉴스 기사 반환 ## 관련 파일 - 의도 분석: `rb8001/app/llm/intent_analyzer.py` - 라우팅 로직: `rb8001/app/router/router.py` - 스킬 명령: `rb8001/app/commands/skill_commands.py` ## 교훈 1. **API 엔드포인트 경로 정확히 확인**: 서비스별 API 문서화 필요 2. **데이터 형식 검증**: 요청 데이터 타입 일치 확인 3. **통합 테스트 필요**: 새 스킬 추가시 rb8001과 연동 테스트 ## 추가 발견 사항 - Gmail 인증 토큰 만료 오류 (skill-email HTTP 500) - 파일 업로드 중복 체크 개선 필요 - skill-rag-file 검색 엔드포인트 미구현 --- *작성자: happybell80* *작성일: 2025-09-17*