# 온톨로지 기반 Coldmail 필터 구현 계획 **날짜**: 2025-10-16 **목표**: 임베딩 한계(파인티처 메일 누락)를 온톨로지 추론으로 해결 --- ## Phase 1: Coldmail 온톨로지 (미착수) ### 개념 계층 ``` 메일 └── 외부메일 └── 제안메일 └── coldmail (투자제안) ├── IR자료 ├── 피칭덱 └── 사업계획서 ``` ### 추론 규칙 (10개) **Coldmail 판정 (6개)**: 1. 제목 CONTAINS ["투자", "IR", "피칭"] + PDF 첨부 → 0.9 2. 첨부파일명 CONTAINS ["회사소개서", "IR_Deck"] → 0.85 3. 제목 "검토요청" + 첨부 → 0.8 4. 미등록 발신자 + PDF → 0.7 5. 본문 CONTAINS ["투자 유치", "펀딩", "밸류에이션"] → 0.75 6. 발신자 도메인 IN ["startup", "ventures", "capital"] → 0.6 **Normal 판정 (4개)**: 7. 제목 CONTAINS ["행사", "초대", "세미나"] → 0.9 8. 제목 CONTAINS ["영수증", "세금계산서"] → 0.95 9. 제목 CONTAINS ["회의", "공지", "보고"] → 0.85 10. 등록 발신자 + 규칙 1-6 미해당 → 0.8 ### 구현 필요 **파일**: `rb8001/app/services/coldmail_ontology_reasoner.py` - 규칙 엔진 구현 - 임베딩 분류(현재 75%) + 온톨로지 추론 → 90%+ 목표 - Threshold: 0.7 이상 확정, 0.4-0.7은 LLM fallback **검증**: - 파인티처 메일: coldmail 0.9+ (현재 0.28) - 기존 17건 재테스트: 정확도 90%+ --- ## Phase 2: Neo4j 기억 시스템 (미착수) ### 인프라 **Neo4j 설치 완료** (51123 서버): - 버전: 2025.06.2 Community - Bolt: neo4j://192.168.219.45:7687 - HTTP: http://192.168.219.45:7474 ### 스키마 설계 ``` (:User)-[:SENDS]->(:Email)-[:CONTAINS]->(:Attachment) (:Email)-[:CLASSIFIED_AS]->(:Category {name:"coldmail"}) (:Email)-[:HAS_EMOTION]->(:Emotion {type:"fear", confidence:0.8}) ``` ### 쿼리 예시 ```cypher // 투자 제안 이메일 중 긍정적 감정 메일 찾기 MATCH (u:User)-[:SENDS]->(e:Email)-[:CLASSIFIED_AS]->(:Category {name:"coldmail"}) WHERE e.emotion IN ["happiness", "neutral"] RETURN e.subject, e.sender, e.timestamp ``` --- ## Phase 3: 감정-기억-윤리 삼각형 (미착수) ### 통합 설계 - 감정 분석 → 기억 검색 → 윤리 제약 → 응답 생성 - Neo4j에 감정 이력 저장 - 패턴 분석 (우울증 조기 감지) **예상 기간**: 3-4개월 --- ## 참고 - `book/200_core_design/225_온톨로지_기반_지식_표현.md` - `troubleshooting/250815_emotion_model_training.md` - `troubleshooting/251016_emotion_ontology_basic.md`