4.4 KiB
4.4 KiB
260305 아침브리핑 형식혼선·동남아영어노출 원인확정 리서치
1) 목적
- 대상 문제 2개만 원인 확정:
- 아침 브리핑/뉴스 표시 형식 혼선
- 동남아 소식 영어 노출
- 목표: 원인 정확도 100% 기준으로, 수정 포인트를 단일 경로로 좁힌다.
2) 범위 / 비범위
- 범위:
rb8001,skill-news,robeing-gateway - 비범위: 다른 프로젝트(StarsAndI, GooseFarm 등), 다른 기능 이슈
3) 사실(Facts)
3-1. 실행 버전/경로
rb8001현재 커밋:e9dcd1dskill-news현재 커밋:d8a7c5b- 컨테이너:
rb8001생성시각:2026-03-04T15:02:26Zrobeing-skill-news생성시각:2026-03-03T18:10:57Z
3-2. 아침 뉴스 브리핑 실행 사실 (2026-03-05)
09:10:00daily_headlines 시작09:10:07naver items 2209:10:25sea headlines 309:10:31formatted text length 3213, Slack 전송 성공- 근거 로그:
rb8001컨테이너 로그 (daily_headlines,naver items,sea headlines,formatted text length)
3-3. 동남아 영어 노출 직전 사실
skill-news로그에 아래 2개 경고가 같은 실행 구간에서 확인됨:
LLM 적합도 실패 ... 404 models/gemini-2.0-flash-exp is not found ...제목 번역 실패, 원문 유지 ... 404 models/gemini-2.0-flash-exp is not found ...
- 근거 로그:
robeing-skill-news2026-03-05 09:10 실행 구간
3-4. 관련 코드 사실 (정확 위치)
- 번역 모델 기본값:
skill-news/app/services/sea_news_filter.py:53os.getenv("GEMINI_MODEL", "gemini-2.0-flash-exp")
- 번역 실패 시 원문 유지:
skill-news/app/services/sea_news_filter.py:159return list(articles)
- 동남아 제목 번역 호출 경로:
skill-news/app/api/news_endpoints.py:66(translate_titles_to_korean)
- rb8001이 해당 endpoint를 호출:
rb8001/app/commands/skill_commands.py:252-278POST /api/news/sea/headlines
3-5. 형식 관련 코드 사실 (정확 위치)
- 네이버 뉴스 본문 형식 생성:
skill-news/app/services/naver_startup_news_service.py:314-367
- 오프닝/클로징/명언 일자 로테이션:
skill-news/app/services/naver_startup_news_service.py:95-123
- rb8001에서 동남아 섹션/키워드 섹션 추가 삽입:
rb8001/app/services/workflows/headlines_workflow.py:40-83rb8001/app/services/workflows/headlines_workflow.py:163-173
- 아침 브리핑(네이버웍스) 구조 변경 이력:
- 커밋
3afb9c9(중요메일 섹션 제거, 1줄 인사이트 구조 전환) - 현재 코드:
rb8001/app/services/skills/naverworks_briefing.py:59-73, 261-319
- 커밋
3-6. 게이트웨이 영향 사실
- daily_headlines는 rb8001 내부 스케줄러가 직접 Slack 전송:
rb8001/app/services/workflows/headlines_workflow.py:180-189
- 본 경로는 gateway 프록시 경유가 아님.
4) 해석(Interpretation)
4-1. 동남아 영어 노출 원인 (확정)
GEMINI_MODEL미지정 상태에서 기본값gemini-2.0-flash-exp사용- 해당 모델 호출이 404로 실패
- 번역 실패 폴백이 "원문 유지"로 설계되어 영어가 그대로 노출
4-2. 형식 혼선 원인 (확정)
- 형식 생성 책임이 2개 서비스로 분산됨:
skill-news가 기본 포맷 생성rb8001이 동남아/키워드 섹션을 후삽입
- 네이버웍스 아침 브리핑은 별도 경로에서 이미 구조가 변경된 상태(커밋
3afb9c9) - 사용자 입장에서는 "아침 브리핑" 범주 안에서 서로 다른 형식 경로가 동시에 존재
5) 결론(Conclusion)
결론 A: 동남아 영어 노출
- 확정 원인:
skill-news번역 모델 설정 불일치 + 원문 유지 폴백 - 단일 수정 포인트:
skill-news실행 환경GEMINI_MODELskill-news/app/services/sea_news_filter.py번역 실패 처리 정책
결론 B: 형식 혼선
- 확정 원인: 아침 메시지 형식 책임 분산 + 브리핑 경로별 구조 차이
- 단일 수정 포인트:
- 뉴스 형식 최종 조립 책임을 한 경로로 고정 (
skill-news또는rb8001중 1곳) - 네이버웍스/뉴스를 "아침 브리핑 패밀리" 공통 템플릿 기준으로 정렬
6) 비영향 범위 (영향 0 기준 분리)
- 본 문제와 무관:
StarsAndI프로젝트GooseFarm프로젝트- gateway의 일반 API 프록시 경로
- 근거: 해당 문제 실행 경로가
rb8001 scheduler -> skill-news -> slack로 닫혀 있음.