2.7 KiB
2.7 KiB
온톨로지 기반 Coldmail 필터 구현 계획
날짜: 2025-10-16 목표: 임베딩 한계(파인티처 메일 누락)를 온톨로지 추론으로 해결
Phase 1: Coldmail 온톨로지 (✅ 완료)
→ 상세: troubleshooting/251014_claude_coldmail_filter_tokenization_issue.md
Phase 2: Neo4j 기억 시스템 (⏳ 미착수)
개념 계층
메일
└── 외부메일
└── 제안메일
└── coldmail (투자제안)
├── IR자료
├── 피칭덱
└── 사업계획서
추론 규칙 (10개)
Coldmail 판정 (6개):
- 제목 CONTAINS ["투자", "IR", "피칭"] + PDF 첨부 → 0.9
- 첨부파일명 CONTAINS ["회사소개서", "IR_Deck"] → 0.85
- 제목 "검토요청" + 첨부 → 0.8
- 미등록 발신자 + PDF → 0.7
- 본문 CONTAINS ["투자 유치", "펀딩", "밸류에이션"] → 0.75
- 발신자 도메인 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})
쿼리 예시
// 투자 제안 이메일 중 긍정적 감정 메일 찾기
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: 감정-기억-윤리 삼각형 (미착수)
파일: rb8001/app/services/memory/neo4j_client.py
- 감정 분석 → 기억 검색 → 윤리 제약 → 응답 생성
- Neo4j에 감정 이력 저장
- 패턴 분석 (우울증 조기 감지)
참고
book/200_core_design/225_온톨로지_기반_지식_표현.mdtroubleshooting/250815_emotion_model_training.mdtroubleshooting/251016_emotion_ontology_basic.md