fix(report_agent): handle None responses from LLM during content generation and enforce fallback behavior
This commit is contained in:
parent
0b71f89f96
commit
54f1291967
1 changed files with 19 additions and 4 deletions
|
|
@ -1191,6 +1191,17 @@ class ReportAgent:
|
||||||
max_tokens=4096
|
max_tokens=4096
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 检查 LLM 返回是否为 None(API 异常或内容为空)
|
||||||
|
if response is None:
|
||||||
|
logger.warning(f"章节 {section.title} 第 {iteration + 1} 次迭代: LLM 返回 None")
|
||||||
|
# 如果还有迭代次数,添加消息并重试
|
||||||
|
if iteration < max_iterations - 1:
|
||||||
|
messages.append({"role": "assistant", "content": "(响应为空)"})
|
||||||
|
messages.append({"role": "user", "content": "请继续生成内容。"})
|
||||||
|
continue
|
||||||
|
# 最后一次迭代也返回 None,跳出循环进入强制收尾
|
||||||
|
break
|
||||||
|
|
||||||
logger.debug(f"LLM响应: {response[:200]}...")
|
logger.debug(f"LLM响应: {response[:200]}...")
|
||||||
|
|
||||||
# 检查是否有工具调用和最终答案
|
# 检查是否有工具调用和最终答案
|
||||||
|
|
@ -1339,7 +1350,11 @@ class ReportAgent:
|
||||||
max_tokens=4096
|
max_tokens=4096
|
||||||
)
|
)
|
||||||
|
|
||||||
if "Final Answer:" in response:
|
# 检查强制收尾时 LLM 返回是否为 None
|
||||||
|
if response is None:
|
||||||
|
logger.error(f"章节 {section.title} 强制收尾时 LLM 返回 None,使用默认错误提示")
|
||||||
|
final_answer = f"(本章节生成失败:LLM 返回空响应,请稍后重试)"
|
||||||
|
elif "Final Answer:" in response:
|
||||||
final_answer = response.split("Final Answer:")[-1].strip()
|
final_answer = response.split("Final Answer:")[-1].strip()
|
||||||
else:
|
else:
|
||||||
final_answer = response
|
final_answer = response
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue