docs: LangGraph 워크플로우 테스트 완료 추가

- rb8001/tests/test_langgraph_workflow.py 검증 완료
- State 필드, 노드 플로우, 조건부 엣지 테스트 완료
- 97줄 유지

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
happybell80 2025-10-14 22:43:08 +09:00
parent 81e2e22ac3
commit 8431340ae2

View File

@ -72,22 +72,22 @@
- requirements.txt: langgraph 추가
- app/services/coldmail_email_fetcher.py 생성
- coldmail_briefing.py:93-121 로직 분리
- async def fetch_emails(user_id: str, start_time: str, now: str) -> list
- async def fetch_emails(user_id, start_time, now) -> list
- app/services/coldmail_processor.py 생성
- coldmail_briefing.py:145-202 로직 분리
- async def process_coldmail(email: dict, user_id: str) -> dict or None
- 반환: {"company": str, "median": float, "confidence": float, "lower": float, "upper": float, "revenue": str}
- async def process_coldmail(email, user_id) -> dict or None
- 반환: {company, median, confidence, lower, upper, revenue}
- app/services/workflows/__init__.py: 빈 파일
- app/services/workflows/coldmail_workflow.py 생성
- class ColdmailState(TypedDict): emails, coldmail_candidates, processed_results, user_id, start_time, now
- 노드: fetch_emails_node, filter_coldmail_node, process_email_node, send_summary_node
- 각 노드는 coldmail_email_fetcher, coldmail_processor, coldmail_hybrid_filter 호출
- route_after_filter: coldmail_candidates 유무로 분기
- add_conditional_edges("filter", route_after_filter, {"process": "process", END: END})
- workflow = graph.compile()
- ColdmailState: emails, coldmail_candidates, processed_results, user_id, start_time, now
- 노드: fetch, filter, process, send
- route_after_filter: coldmail_candidates 유무로 END or process
- add_conditional_edges("filter", route_after_filter, {...})
- coldmail_briefing.py:78-302 교체 (최종 ~100줄)
- coldmail_briefing.py:86-101 유지
- workflow.ainvoke(initial_state) 호출
- 테스트: rb8001/tests/test_langgraph_workflow.py
- State 필드, 노드 플로우, 조건부 엣지 검증 완료
---