DOCS/journey/troubleshooting/251206_ir_deck_system_current_status.md

4.3 KiB

IR Deck 처리 시스템 현재 상태 분석

날짜: 2025-12-06 작성자: Auto 관련 파일:

  • rb8001/app/router/ir_deck.py (377줄)
  • rb8001/app/services/ir_deck_analyzer.py (693줄)
  • rb8001/app/services/coldmail_processor.py (484줄)
  • rb8001/app/router/slack_handler.py
  • skill-rag-file/app/api/upload.py
  • skill-rag-file/app/services/text_extractor.py

입력 루트별 구현 상태

1. 콜드메일 (이메일)

파일: rb8001/app/services/coldmail_processor.py

  • 워크플로우: coldmail_workflow.py (LangGraph)
  • 스케줄러: coldmail_briefing.py (평일 9시 5분)
  • 분석 엔진: ir_analyzer.py (베이지안 밸류에이션)
  • IR deck 평가 연동: 없음 (ir_deck_analyzer.py 미사용)
  • Slack Lists 등록: 구현됨 (회사명, 이메일, IR 파일 첨부)
  • Slack 채널 메시지: 구현됨 (요약 메시지 + 피드백 버튼)

2. Slack 파일 업로드

파일: rb8001/app/router/slack_handler.py:58-121

  • 처리: 파일을 skill-rag-file로 업로드
  • IR deck 평가 연동: 없음 (업로드만 하고 평가 안 함)
  • Slack Lists 등록: 없음
  • 쓰레드 처리: 확인 필요

3. 웹 프론트엔드

파일: rb8001/app/router/ir_deck.py

  • 엔드포인트:
    • POST /api/ir-deck/upload - PDF 업로드
    • POST /api/ir-deck/evaluate - 평가 실행
    • GET /api/ir-deck/evaluation/{id} - 결과 조회
    • POST /api/ir-deck/chat - 후속 질문 답변 구현됨
    • POST /api/ir-deck/feedback - 피드백 저장
  • 분석 엔진: ir_deck_analyzer.py (Sequoia Capital 기준)
  • 후속 질문 답변: 구현됨 (RAG 검색 + LLM 답변 생성)

공통 기능 상태

OCR 기능

파일: skill-rag-file/app/services/text_extractor.py:136-214

  • 구현: pdftotext → PyPDF2 → OCR(pytesseract) 순서
  • 품질 휴리스틱: 저품질 감지 시 강제 OCR
  • 동작 여부: 코드는 있으나 실제 동작 확인 필요

중복 검사

파일: skill-rag-file/app/api/upload.py:101-139

  • 방식: 파일 해시(SHA256) 기반
  • 동작: 중복 파일 발견 시 기존 document_id 반환 (멱등성 보장)
  • IR 평가 레벨: force_reevaluate 파라미터로 처리 (기본값: false)

문제점 정리

1. 기능 파편화

  • 콜드메일: ir_analyzer.py 사용 (베이지안 밸류에이션)
  • 웹 프론트: ir_deck_analyzer.py 사용 (Sequoia Capital 기준)
  • 두 분석 엔진이 분리되어 통합 필요

2. 콜드메일 → IR deck 평가 미연동

  • 콜드메일은 ir_analyzer.py만 사용
  • ir_deck_analyzer.py의 Sequoia Capital 기준 평가 미사용
  • Slack Lists에 평가 점수/등급 미포함

3. Slack 파일 업로드 → IR deck 평가 미연동

  • 파일 업로드만 하고 평가 안 함
  • Slack Lists 등록 안 됨

4. 출력 형식 정리 필요

  • 콜드메일 채널 메시지 형식 개선 필요
  • Slack Lists 컬럼 매핑 정리 필요 (문서: 251122_coldmail_slack_lists_column_mapping_spec.md)

5. 수정 기능 없음

  • 자연어로 리스트 항목 수정하는 기능 없음

6. 잘못된 등록 방지

  • 이상하게 올라가는 케이스 방지 로직 필요

7. OCR 동작 확인 필요

  • 코드는 있으나 실제 동작 여부 불명확

확인된 구현 상태

구현 완료

  • 웹 프론트엔드 후속 질문 답변 (/chat 엔드포인트)
  • skill-rag-file 중복 검사 (파일 해시 기반)
  • 콜드메일 Slack Lists 등록
  • 콜드메일 Slack 채널 메시지

미구현/미연동

  • 콜드메일 → IR deck 평가 연동
  • Slack 파일 업로드 → IR deck 평가 연동
  • Slack 파일 업로드 → Slack Lists 등록
  • 자연어 수정 기능
  • 잘못된 등록 방지 로직

⚠️ 확인 필요

  • OCR 실제 동작 여부
  • Slack 리스트 쓰레드 처리
  • 웹 프론트 중복 검사 (IR 평가 레벨)

교훈

통합 설계 필요

  • 입력 루트별로 다른 분석 엔진 사용 → 통합 필요
  • 공통 IR deck 평가 엔진으로 통합 후, 루트별 어댑터 패턴 적용

기능 파편화 해결

  • 콜드메일과 웹 프론트가 같은 기능을 다른 방식으로 구현
  • 공통 서비스 계층으로 추출 필요