diff --git a/troubleshooting/250930_naverworks_slack_03_cold_mail_list.md b/troubleshooting/250930_naverworks_slack_03_cold_mail_list.md index e7835d7..6e6f342 100644 --- a/troubleshooting/250930_naverworks_slack_03_cold_mail_list.md +++ b/troubleshooting/250930_naverworks_slack_03_cold_mail_list.md @@ -15,24 +15,26 @@ NAVER WORKS 메일 중 투자 제안(콜드메일) 수신 시: ## 구현 완료 (2025-09-30) -### skill-email (커밋: a535732) +### skill-email (커밋: a535732, c498ea2) - GET /messages/{message_id}: routers/mail_detail_router.py 생성, main.py:311-312 등록 - GET /messages/{message_id}/attachments/{attachment_id}: routers/mail_detail_router.py - download_attachment 메서드: services/naverworks_provider.py:357-388 - attachments 필드 추가: services/naverworks_provider.py:326 +- mail_detail_router.py: main.get_email_provider() 사용 (initialize_providers 호출, c498ea2) -### rb8001 (커밋: 19304ea, 1980a4e, d88615e) -- app/services/coldmail_filter.py: Incremental Naive Bayes 필터, initialize_seed_data(), is_coldmail(), update_classifier() -- app/services/naverworks_file_processor.py: download_naverworks_attachment(), upload_to_rag_file(), process_naverworks_attachments() -- app/services/ir_analyzer.py: extract_ir_metrics(), query_rag(), call_llm() -- app/services/startup_valuation.py: valuate_startup(), get_prior_by_stage(), calculate_posterior(), save_valuation() -- app/services/slack_lists_client.py: create_list_item(), update_list_item(), create_coldmail_list_item(), update_ir_feedback() -- app/scheduler/jobs/coldmail_briefing.py: _run_coldmail_briefing(), register() (cron: 5 9 * * mon-fri) +### rb8001 (커밋: 19304ea, 1980a4e, d88615e, 276b258, d0b8605, a6998ed, b4ed61d, 3507ed0) +- app/services/coldmail_filter.py: Incremental Naive Bayes (단어 빈도 기반, Counter 사용, a6998ed), 확률값 로깅 (b4ed61d) +- app/services/coldmail_feedback.py: 피드백 처리 서비스 (b4ed61d) +- app/services/naverworks_file_processor.py: 첨부파일 다운로드→rag-file 업로드, import 경로 수정 (276b258) +- app/services/ir_analyzer.py: IR 지표 추출 (LLM + RAG) +- app/services/startup_valuation.py: Bayesian VC 가치 평가 +- app/services/slack_lists_client.py: Slack Lists API 클라이언트 +- app/scheduler/jobs/coldmail_briefing.py: 스케줄러 (email from dict 처리 d0b8605, 피드백 버튼 3507ed0) +- app/router/slack_handler.py: coldmail_feedback_yes/no 액션 핸들러 (b4ed61d) - main.py:197-198: coldmail_briefing.register(scheduler) -- app/skills/naverworks_briefing.py:17: NAVERWORKS_COMPANY_EMAIL 환경변수 사용, 하드코딩 제거 -- app/state/database.py:118-147: get_naverworks_user_uuid() 함수 (이미 존재) +- app/skills/naverworks_briefing.py: 초기화 로그 추가 (1980a4e) - tests/test_coldmail_briefing.py: 9개 테스트 함수 -- Dockerfile:30: COPY ./tests /code/tests 추가 +- Dockerfile:30: COPY ./tests /code/tests 추가 (d88615e) ### API 스펙 확인 완료 (2025-09-30) @@ -90,8 +92,14 @@ NAVER WORKS 메일 중 투자 제안(콜드메일) 수신 시: 10. skill-slack POST /api/v1/send → 처리 완료 요약 메시지 ### Naive Bayes 학습 루프 -- initialize_seed_data(): *.vc 도메인, 투자/IR 키워드 시드 -- update_classifier(): Slack 피드백 시 DB 카운터 업데이트 (현재 수동 호출) +- initialize_seed_data(): *.vc 도메인, 투자/IR 키워드 시드 (수동 DB INSERT) +- Slack 채널 피드백 버튼: "✅ 맞음" / "❌ 아님" (coldmail_briefing.py:196-208) +- slack_handler.py: coldmail_feedback_yes/no 액션 → coldmail_feedback.process_coldmail_feedback() +- update_classifier(): 단어별 coldmail_count/normal_count 증가 + +### 테스트 결과 (30개 이메일, 시드 데이터 101개 단어) +- ✅ 4건 탐지: 빅웨이브 투자유치 (0.8474, 0.7906), SEED 라운드 (0.9835) +- ❌ 미탐지: 내부메일/중립단어 많은 케이스 (0.1880, 0.0548, 0.4017) ---