diff --git a/troubleshooting/250929_happybell80_naverworks_briefing_weekend_email.md b/troubleshooting/250929_happybell80_naverworks_briefing_weekend_email.md index 559682a..d5db52b 100644 --- a/troubleshooting/250929_happybell80_naverworks_briefing_weekend_email.md +++ b/troubleshooting/250929_happybell80_naverworks_briefing_weekend_email.md @@ -20,15 +20,19 @@ tags: [naverworks, briefing, timezone, langgraph] - `rb8001/app/skills/naverworks_briefing.py:209`: Slack 날짜 표시도 KST 없음 ## 수정 필요 사항 +**FastAPI 구조 원칙**: 비즈니스 로직(skills/)만 수정, 스케줄링(scheduler/jobs/)과 설정(settings.py)은 유지 -### 1. 시간대 및 조회 기간 +### 1. 시간대 및 조회 기간 (app/skills/naverworks_briefing.py) - 78번 라인: ZoneInfo("Asia/Seoul") 적용 - 79번 라인: 월요일(weekday()==0) 72시간, 화~금 24시간 - 85-86번 라인: startSearchDate, endSearchDate는 ISO 형식 유지 ### 2. 필드명 및 타입 처리 -- skill-email 응답: `date` 필드 사용 (`receivedTime` 아님) -- `from` 필드: 문자열 또는 객체 혼재 가능 (isinstance 체크 필요) +- skill-email 응답: `emails[].date` 필드 사용 (`receivedTime`은 응답에 없음, 내부 필터링용) +- `from` 필드 형태: + - NaverWorks: 딕셔너리 `{'name': 'Figma', 'email': 'support@figma.com'}` + - Gmail: 문자열 `'sender@gmail.com'` + - 타입 체크 필수 (isinstance 사용) ### 3. 현재 환경 정보 #### 51123 서버 (인증/DB) @@ -38,13 +42,14 @@ tags: [naverworks, briefing, timezone, langgraph] #### 51124 서버 (실행) - 실행: rb8001 컨테이너에서 매일 오전 9:10 (외부 크론) -- 내부 APScheduler: rb8001/app/main.py:49에서 이미 실행 중 +- 내부 APScheduler: rb8001/app/main.py:49에 있으나 env로 기본 비활성 - DB 연결: PostgreSQL (DATABASE_URL 환경변수) -- 중복 실행 방지: NAVERWORKS_BRIEFING_ENABLED=false 설정 가능 +- API 인증: skill-email은 X-API-Key 불필요, skill-slack은 X-API-Key 필수 ## LangGraph 적용 방안 +**현재 상태**: LangGraph 미도입 (requirements.txt, 코드에 없음) -### 구현 계획 +### 구현 계획 (향후 적용 시) 1. **StateGraph 구조** - 노드: get_uuid → fetch_emails → filter_important → generate_summary → format_message → send_slack - 상태 키: user_uuid, emails, important_emails, summary, slack_message