From 0adf06aa416ec2159d7400f4be8df7c271f9b6c5 Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Wed, 15 Oct 2025 12:32:24 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20IR=20=EB=B6=84=EC=84=9D=20=EC=8B=A4?= =?UTF-8?q?=ED=8C=A8=20=EC=9B=90=EC=9D=B8=20=EB=B6=84=EC=84=9D=20=EB=AC=B8?= =?UTF-8?q?=EC=84=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 251015_claude_coldmail_ir_analysis_failure.md: IR 분석 실패 근본 원인 및 해결 방안 (99줄) - 251015_claude_coldmail_workflow_langgraph_test.md: 문제 4 섹션 분리, 참조 링크 추가 PDF 업로드 실패 → RAG 검색 0건 → IR 분석 "N/A" → Lists API 에러 연쇄 효과 분석. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- ...015_claude_coldmail_ir_analysis_failure.md | 99 +++++++++++++++++++ ...claude_coldmail_workflow_langgraph_test.md | 17 +--- 2 files changed, 100 insertions(+), 16 deletions(-) create mode 100644 troubleshooting/251015_claude_coldmail_ir_analysis_failure.md diff --git a/troubleshooting/251015_claude_coldmail_ir_analysis_failure.md b/troubleshooting/251015_claude_coldmail_ir_analysis_failure.md new file mode 100644 index 0000000..8f43d90 --- /dev/null +++ b/troubleshooting/251015_claude_coldmail_ir_analysis_failure.md @@ -0,0 +1,99 @@ +# Coldmail IR 분석 실패 원인 분석 + +**날짜**: 2025-10-15 +**작성자**: Claude +**관련 파일**: +- `rb8001/app/services/ir_analyzer.py` +- `skill-rag-file/app/api/upload.py` +- `rb8001/app/services/workflows/coldmail_workflow.py` + +--- + +## 문제 상황 + +Coldmail 브리핑 (09:05) 실행 시 IR 분석 결과 모든 필드 "N/A" 반환, Slack Lists API에서 `400 - invalid_arguments` 에러 발생. + +**참조**: `251015_claude_coldmail_workflow_langgraph_test.md` + +--- + +## 원인 분석 + +### 1단계: PDF 업로드 실패 + +**rb8001 로그 (09:05:13)**: `Failed to upload: 400 - File already exists for this team`, 0/2 처리 성공 + +**코드 위치**: skill-rag-file/app/api/upload.py:62-71 + +중복 파일 발견 시 HTTPException 발생, document_id 반환하지 않음. + +### 2단계: RAG 검색 실패 + +skill-rag-file /api/search 테스트 결과: `{"results":[],"total_results":0}` + +team_id `3550cef6-63e1-4ceb-8802-a25c9d1c6917`에 업로드된 문서 없음 (DB 조회 0건). + +중복 파일이 테스트 중 수동 삭제됨 (251015_claude_coldmail_workflow_langgraph_test.md 문제 2 참고). + +### 3단계: IR 분석 "N/A" 반환 + +**코드 위치**: ir_analyzer.py:86-178 + +1. query_rag() 6회 호출 (사업분야, 투자단계, 매출, 성장률, 팀규모, 기술우위) +2. 검색 결과 없음 → raw_results 빈 딕셔너리 +3. LLM에 빈 데이터 전달 → system_prompt:134 "If information is not available, use 'N/A'" +4. 모든 필드 "N/A" 반환 + +### 연쇄 효과 + +PDF 업로드 실패 → document_id = None → RAG 검색 0건 → IR 분석 "N/A" → Lists API 에러 + +--- + +## 해결 방안 + +### 1. 중복 파일 처리 개선 (필수) + +**위치**: skill-rag-file/app/api/upload.py:68-71 + +**현재**: 중복 시 HTTPException 발생 + +**개선**: 중복 시 기존 document_id 반환 (멱등성 보장) + +### 2. IR 분석 실패 감지 + +**위치**: rb8001/app/services/coldmail_processor.py + +**추가**: 모든 필드 "N/A" 시 처리 실패로 간주, 로그 기록 + +### 3. LangGraph 체크포인트 활성화 + +**위치**: workflows/coldmail_workflow.py:145 + +**현재**: `workflow.compile()` (stateless) + +**개선**: PostgresSaver 추가로 IR 분석 실패 시 해당 노드만 재시도 가능 + +--- + +## 교훈 + +### 중복 체크는 경고, 에러 아님 +중복 파일 시 기존 리소스 반환으로 워크플로우 계속 진행 (멱등성 보장) + +### Cascading Failure 방지 +PDF 업로드 실패 → 전체 IR 분석 실패. 체크포인트로 부분 실패 격리 필요. + +### 프레임워크 도입 vs 실효성 +LangGraph 도입했으나 체크포인트 없이 stateless 실행 = 코드 정리만 달성. 핵심 기능까지 구현해야 실효성. + +### 로그 수집 검증 +skill-rag-file 로그가 OpenSearch 미수집. 모든 서비스 로그 수집 검증 필요. + +--- + +## 참고 문서 + +- 251015_claude_coldmail_workflow_langgraph_test.md: 테스트 결과 +- 251014_coldmail_ir_analysis_scenario.md: IR 분석 시나리오 +- 250925_langgraph_vs_n8n_comparison.md: 체크포인트 개념 diff --git a/troubleshooting/251015_claude_coldmail_workflow_langgraph_test.md b/troubleshooting/251015_claude_coldmail_workflow_langgraph_test.md index f7b2c49..6913e73 100644 --- a/troubleshooting/251015_claude_coldmail_workflow_langgraph_test.md +++ b/troubleshooting/251015_claude_coldmail_workflow_langgraph_test.md @@ -54,25 +54,12 @@ ssh -i ~/.ssh/id_rsa_deploy -p 51123 admin@192.168.219.45 \ --- -## 문제 4: Lists API invalid_arguments - -**증상**: `400 - invalid_arguments` - -**원인**: IR 분석 결과 모든 필드 "N/A" - -**상태**: 미해결 - ---- - ## 검증 결과 **성공**: - LangGraph 워크플로우 정상 동작 - Lists API 통합 (테스트 아이템 Rec09LJQYLAH2) -**실패**: -- IR 분석 실패 (모든 필드 "N/A") - --- ## 교훈 @@ -89,6 +76,4 @@ ssh -i ~/.ssh/id_rsa_deploy -p 51123 admin@192.168.219.45 \ ## 남은 작업 -1. IR 분석 개선 -2. coldmail_processor.py:73 필드 검증 -3. 부분 실패 에러 핸들링 +IR 분석 실패 원인 및 해결 방안: `251015_claude_coldmail_ir_analysis_failure.md` 참고