Fix:
1. _parse_chapter 异常类型降级(影响:高)
# 回退后(本 PR)
raise ValueError("LLM返回空内容")
raise ValueError("章节JSON缺少chapter字段")
# 回退前(当前 main)
raise ChapterJsonParseError("LLM返回空内容", raw_text=raw_text)
raise ChapterJsonParseError("章节JSON缺少chapter字段或结构不完整", raw_text=cleaned)
ChapterJsonParseError 是 ValueError 的子类。run() 方法中 except ChapterJsonParseError 捕获不到父类 ValueError。当 LLM 返回空内容或 JSON 缺少 chapter
字段时,异常会直接穿透上层所有 except 块,导致整章生成失败且不会进入重试或降级逻辑。
2. agent.py 移除宽泛异常重试(影响:中高)
移除了对 AttributeError, TypeError, KeyError, IndexError, ValueError, json.JSONDecodeError 的捕获重试。如果 LLM 返回畸形 JSON
导致运行时异常,现在会直接崩溃而非重试。
3. 移除非字典 block 防御性处理(影响:中)
chapter_generation_node.py 中 walk() / _merge_fragment_sequences() / _merge_nested_fragments() 里对 LLM 返回非字典类型 block(string、list
等)的容错处理全部移除。如果 LLM 输出异常结构,现在会直接报错而非自动修复。
4. 移除 _normalize_list_type 和表格行溢出修复(影响:低)
- _normalize_list_type():将非法 listType(如 "unordered")自动映射为 "bullet" 的逻辑被移除
- html_renderer.py 的 _fix_nested_table_rows():多行表格数据溢出到单行时的重组逻辑被简化
Showing
3 changed files
with
227 additions
and
25 deletions
-
Please register or login to post a comment