**task-2231 완료 보고** (dev1-team) **task-2231 완료 보고서: InsuRo PDF 스마트 분석 — 텍스트/Vision 하이브리드 분기** (4분 17초) **핵심 결과** 2단계 스마트 판정 로직(텍스트 양 필터 + 품질 검증)을 구현하여 페이지별 분기 처리 완료. pytest 89건 전체 통과, 신규 테스트 35건 추가, 서버 기동 정상 확인. ## 수정 파일 | 파일 | 변경 내용 | grep 검증 | 상태 | |------|-----------|-----------|------| | server/main.py:3440 | `_has_meaningful_data` 헬퍼 함수 추가 | grep "has_meaningful_data" OK (3440, 3536) | verified | | server/main.py:3451 | `_has_table` 헬퍼 함수 추가 | grep "has_table" OK (3451, 3536) | verified | | server/main.py:3457 | `_smart_parse_file` 하이브리드 분기 로직 교체 | grep "vision_pages" OK (12건) | verified | | server/tests/test_smart_parse_hybrid.py | 신규 단위 테스트 35건 | pytest 35 passed | verified | | server/tests/test_main.py | 기존 TestSmartParseFile 테스트 PPTX 분기로 수정 | pytest 54 passed | verified | ## 구현 상세 ### 2단계 스마트 판정 로직 1. **1차 필터**: pdfplumber로 페이지별 텍스트 추출 - < 50자 → Vision 필요 - >= 500자 → 텍스트 충분, 그대로 사용 **발견/해결 이슈 2건** 1. **기존 TestSmartParseFile 테스트 2건 실패** — 새 로직이 PDF에 pdfplumber를 먼저 시도하여 `b"fake pdf bytes"` mock이 실패. 테스트를 PPTX 확장자로 변경하여 기존 subprocess 로직 검증 유지. 2. **`₩` 전치형 미감지** — 정규식이 `[\d,]+\s*₩` 패턴이라 `₩50,000`(전치형) 미감지. 후치형(`50,000₩`)만 동작. 보험 문서 특성상 "원/만원/천원" 패턴이 주로 사용되므로 범위 외로 판단. 테스트에 동작 문서화.