docs: 콜드메일 시스템 최종 구현 사항 반영
- skill-email: mail_detail_router.py initialize_providers 수정 (c498ea2) - rb8001: 8개 추가 커밋 반영 (Naive Bayes 개선, 피드백 학습, 버튼 구현) - Naive Bayes 학습 루프: Slack 피드백 버튼 → update_classifier 동작 설명 - 테스트 결과: 30개 이메일, 101개 시드 단어, 4건 탐지 성공 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
3d87ef8c28
commit
65a17a88ee
@ -15,24 +15,26 @@ NAVER WORKS 메일 중 투자 제안(콜드메일) 수신 시:
|
|||||||
|
|
||||||
## 구현 완료 (2025-09-30)
|
## 구현 완료 (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}: routers/mail_detail_router.py 생성, main.py:311-312 등록
|
||||||
- GET /messages/{message_id}/attachments/{attachment_id}: routers/mail_detail_router.py
|
- GET /messages/{message_id}/attachments/{attachment_id}: routers/mail_detail_router.py
|
||||||
- download_attachment 메서드: services/naverworks_provider.py:357-388
|
- download_attachment 메서드: services/naverworks_provider.py:357-388
|
||||||
- attachments 필드 추가: services/naverworks_provider.py:326
|
- attachments 필드 추가: services/naverworks_provider.py:326
|
||||||
|
- mail_detail_router.py: main.get_email_provider() 사용 (initialize_providers 호출, c498ea2)
|
||||||
|
|
||||||
### rb8001 (커밋: 19304ea, 1980a4e, d88615e)
|
### rb8001 (커밋: 19304ea, 1980a4e, d88615e, 276b258, d0b8605, a6998ed, b4ed61d, 3507ed0)
|
||||||
- app/services/coldmail_filter.py: Incremental Naive Bayes 필터, initialize_seed_data(), is_coldmail(), update_classifier()
|
- app/services/coldmail_filter.py: Incremental Naive Bayes (단어 빈도 기반, Counter 사용, a6998ed), 확률값 로깅 (b4ed61d)
|
||||||
- app/services/naverworks_file_processor.py: download_naverworks_attachment(), upload_to_rag_file(), process_naverworks_attachments()
|
- app/services/coldmail_feedback.py: 피드백 처리 서비스 (b4ed61d)
|
||||||
- app/services/ir_analyzer.py: extract_ir_metrics(), query_rag(), call_llm()
|
- app/services/naverworks_file_processor.py: 첨부파일 다운로드→rag-file 업로드, import 경로 수정 (276b258)
|
||||||
- app/services/startup_valuation.py: valuate_startup(), get_prior_by_stage(), calculate_posterior(), save_valuation()
|
- app/services/ir_analyzer.py: IR 지표 추출 (LLM + RAG)
|
||||||
- app/services/slack_lists_client.py: create_list_item(), update_list_item(), create_coldmail_list_item(), update_ir_feedback()
|
- app/services/startup_valuation.py: Bayesian VC 가치 평가
|
||||||
- app/scheduler/jobs/coldmail_briefing.py: _run_coldmail_briefing(), register() (cron: 5 9 * * mon-fri)
|
- 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)
|
- main.py:197-198: coldmail_briefing.register(scheduler)
|
||||||
- app/skills/naverworks_briefing.py:17: NAVERWORKS_COMPANY_EMAIL 환경변수 사용, 하드코딩 제거
|
- app/skills/naverworks_briefing.py: 초기화 로그 추가 (1980a4e)
|
||||||
- app/state/database.py:118-147: get_naverworks_user_uuid() 함수 (이미 존재)
|
|
||||||
- tests/test_coldmail_briefing.py: 9개 테스트 함수
|
- tests/test_coldmail_briefing.py: 9개 테스트 함수
|
||||||
- Dockerfile:30: COPY ./tests /code/tests 추가
|
- Dockerfile:30: COPY ./tests /code/tests 추가 (d88615e)
|
||||||
|
|
||||||
### API 스펙 확인 완료 (2025-09-30)
|
### API 스펙 확인 완료 (2025-09-30)
|
||||||
|
|
||||||
@ -90,8 +92,14 @@ NAVER WORKS 메일 중 투자 제안(콜드메일) 수신 시:
|
|||||||
10. skill-slack POST /api/v1/send → 처리 완료 요약 메시지
|
10. skill-slack POST /api/v1/send → 처리 완료 요약 메시지
|
||||||
|
|
||||||
### Naive Bayes 학습 루프
|
### Naive Bayes 학습 루프
|
||||||
- initialize_seed_data(): *.vc 도메인, 투자/IR 키워드 시드
|
- initialize_seed_data(): *.vc 도메인, 투자/IR 키워드 시드 (수동 DB INSERT)
|
||||||
- update_classifier(): Slack 피드백 시 DB 카운터 업데이트 (현재 수동 호출)
|
- 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)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user