# IR 문서 대표 이름 추출 스펙 **날짜**: 2025-11-22 **작성자**: Claude **관련 파일**: - `rb8001/app/services/ir_analyzer.py` --- ## 요구사항 IR 문서에서 대표이사/CEO 이름을 추출하여 coldmail processor에서 "대표" 컬럼에 저장. --- ## 현재 상태 ### 추출 필드 목록 (ir_analyzer.py:257-265) - company_name - business_area - investment_stage - revenue - growth_rate - team_size - tech_advantage **대표 이름 필드 없음** ### LLM 프롬프트 (ir_analyzer.py:296-304) - `exact keys` 목록에 `representative_name` 없음 --- ## 설계 ### 1. RAG 쿼리 추가 **위치**: `ir_analyzer.py:257-265` queries 딕셔너리 **추가 쿼리**: ```python "representative_name": "이 회사의 대표이사 또는 CEO 이름은 무엇인가? (예: 홍길동, 김철수)" ``` ### 2. LLM 프롬프트 키 추가 **위치**: `ir_analyzer.py:296-304` prompt의 `exact keys` 목록 **추가 키**: ```python - representative_name: 대표이사 또는 CEO 이름 (예: "홍길동", "김철수") ``` ### 3. 반환 형식 **타입**: `str` **형식**: 이름만 (예: "홍길동", "김철수") **없을 때**: "N/A" --- ## 우선순위 정책 **coldmail_processor.py에서 사용**: 1. IR 문서 `representative_name` (유효하면) 2. From 헤더 `contact_name` (fallback) 3. "없음" (둘 다 없을 때) --- ## 검증 기준 ### 성공 케이스 - IR 문서에 "대표이사: 홍길동" 명시 → `representative_name = "홍길동"` - IR 문서에 "CEO: 김철수" 명시 → `representative_name = "김철수"` ### 실패 케이스 - IR 문서에 대표 이름 정보 없음 → `representative_name = "N/A"` - IR 문서 파싱 실패 → `representative_name = "N/A"` --- ## 구현 완료 조건 - [ ] RAG 쿼리에 `representative_name` 추가 - [ ] LLM 프롬프트에 `representative_name` 키 추가 - [ ] 실제 IR 문서로 테스트 (대표 이름 있는 경우/없는 경우) - [ ] coldmail processor에서 IR `representative_name` 우선 사용