DOCS/troubleshooting/250917_happybell80_rb8001_news_search_404_error.md
happybell80 4e1a133596 docs: Fluent Bit와 OpenSearch 3.x 연동 문제 해결 문서화
- 문제: _type 파라미터로 인한 호환성 문제
- 해결: Data Prepper 브릿지 구축
- 테스트 결과 및 설정 방법 상세 기록
- 대안 솔루션 포함
2025-09-18 00:08:17 +09:00

2.8 KiB

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
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번 라인

수정 전

elif "8505" in url or "news" in url:
    # News 서비스
    url = f"{url}/search"

수정 후

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 테스트 (성공)

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