DOCS/journey/troubleshooting/250916_claude_companyx_wrong_news.md
Claude-51124 22557e7132 docs: 오래된 트러블슈팅 아카이브 및 구조 정리
- 7-8월 초기 구축 문서 12개를 _archive/troubleshooting/2025_07-08_initial_setup/로 이동
- book/300_architecture/390_human_in_the_loop_intent_learning.md를 journey/research/intent_classification/로 이동 (개발 여정 문서)
- 빈 폴더 제거 (journey/assets/*)
2025-11-17 14:06:05 +09:00

59 lines
2.2 KiB
Markdown

# CompanyX 뉴스 잘못된 기사 송출 문제
## 배경
- **날짜**: 2025-09-16
- **문제**: 10시 스케줄러가 CompanyX와 무관한 뉴스를 슬랙에 송출
- **원인**: 검색어 부분 매칭 및 검증 로직 부재
## 문제 상황
### 증상
- 10:01 "오글 필요 없다" 규현, 엔티엑스(NTX) 등 무관한 기사 송출
- 채널: C09C98KK2TT, ts: 1757984471.889439
### 검증 과정 분석
```
현재 검색: COMPANY_X_SEARCH_KEYWORD='"컴퍼니 엑스"' (따옴표 포함)
수집 결과: 보링컴퍼니, DHX컴퍼니, 엑스붐 버즈 등
검증 로직: 없음 (companyx_news_collector.py에 검증 코드 없음)
```
### 추가 문제
- 01:00에만 수집, 10:00은 기존 데이터 재사용
- OpenAI quota 초과로 summarized 상태 0개
- rb8001이 빈 응답 시 이전 데이터 송출
## 해결 과정
### 1. 문제 확인
```bash
docker logs robeing-skill-news | grep "컴퍼니엑스"
# 결과: "머스크의 보링컴퍼니", "엔티엑스(NTX)" 등 수집
```
### 2. 슬랙 메시지 처리 방안
- chat_update API로 메시지 수정 가능
- 채널: C09C98KK2TT, ts: 1757984471.889439
## 근본 원인
- skill-news/app/services/companyx_news_scraper.py에 본문 검증 로직 없었음
- scrape_all() 92행에서 모든 기사를 scraped_articles에 추가
- 언급 없는 기사도 요약되어 rb8001에 전달됨
## 해결 내역 (2025-09-16)
### 수정 파일
- companyx_news_scraper.py: _find_company_mentions() 함수 추가 (32-65행)
- companyx_news_scraper.py: scrape_all()에서 언급 확인 후 필터링 (92-110행)
- companyx_news_collector.py: company_mentioned, mention_count 필드 추가 (367-368행)
### 검증 결과
- 테스트: 10개 수집 → 3개 새 기사 → 모두 검증 제외 (언급 없음)
- "엑스페릭스", "리플(XRP)", "엑스붐 버즈" 등 무관한 기사 필터링 성공
- rb8001에 0개 반환 (정상)
- 중복 제거: companyx_news_collector.py:115행 _remove_duplicates()로 기존 기사 제외
## 교훈
- 검색어 설정과 검증은 별개 프로세스로 관리 필요
- 엔드포인트별 처리 차이 확인 필수 (일반 search vs companyx-search)
- 서버 배포 후 실제 동작 검증 필요
## 상태
**해결 완료** (2025-09-16)