Files
agent_jrxml/agent/state.py
T
panda 6467fd4ae5 feat: v3 robustness upgrade — EasyOCR, failure recovery, minimum content check
- OCR: EasyOCR (primary, ch_sim+en) with PaddleOCR fallback for Windows compatibility
- Validation: _check_minimum_content() rejects empty-shell JRXML (no band/textField)
- Retry: MAX_RETRY 3→5, exhaustion records pending_failure_context for next-turn auto-injection
- Finalize: only saves jrxml_versions on pass, preserves last good final_jrxml on fail
- Extract JRXML: improved empty markdown block handling and XML fragment fallback
- UI: real-time node progress via placeholder updates, initial "analyzing" feedback
- UI: use agent_state (full) instead of node_state (partial) for summary card routing
- UI: unknown template_type now gives LLM meaningful image context instead of metadata
- Docs: updated CLAUDE.md and CODE_GUIDE.md to reflect all v3 changes

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 19:15:30 +08:00

43 lines
1.1 KiB
Python

"""LangGraph JRXML 生成代理工作流的状态定义。"""
from typing import TypedDict, List
class AgentState(TypedDict, total=False):
# 核心工作流字段
conversation_history: List[dict]
current_jrxml: str
user_input: str
status: str
error_msg: str
natural_explanation: str
retry_count: int
user_modification_request: str
final_jrxml: str
stage: str
retrieved_context: str
# 需求1:智能上下文压缩
full_conversation_history: List[dict]
compressed_history: str
current_token_count: int
# 需求2:多会话持久化
session_id: str
session_name: str
created_at: str
updated_at: str
# 需求3:意图识别
intent: str
history_states: List[dict]
# 需求4:JRXML 版本历史(用于下载历史版本)
jrxml_versions: List[dict]
# 需求5:错误自增长(记录修正前的状态,供 validate 节点判断是否入知识库)
last_error_case: dict
# 需求6:失败上下文传递 — 重试耗尽后暂存失败信息,下次用户输入时自动注入
pending_failure_context: dict