1. 修复论坛通信问题,基于日志块增加容错
2. 使用ERROR层级来避免json解析错误导致的连环问题
This commit is contained in:
@@ -138,7 +138,7 @@ class ReportAgent:
|
||||
self.state = ReportState()
|
||||
|
||||
# 确保输出目录存在
|
||||
os.makedirs(settings.OUTPUT_DIR, exist_ok=True)
|
||||
os.makedirs(self.config.OUTPUT_DIR, exist_ok=True)
|
||||
|
||||
logger.info("Report Agent已初始化")
|
||||
logger.info(f"使用LLM: {self.llm_client.get_model_info()}")
|
||||
@@ -146,11 +146,11 @@ class ReportAgent:
|
||||
def _setup_logging(self):
|
||||
"""设置日志"""
|
||||
# 确保日志目录存在
|
||||
log_dir = os.path.dirname(settings.LOG_FILE)
|
||||
log_dir = os.path.dirname(self.config.LOG_FILE)
|
||||
os.makedirs(log_dir, exist_ok=True)
|
||||
|
||||
# 创建专用的logger,避免与其他模块冲突
|
||||
logger.add(settings.LOG_FILE, level="INFO")
|
||||
logger.add(self.config.LOG_FILE, level="INFO")
|
||||
|
||||
def _initialize_file_baseline(self):
|
||||
"""初始化文件数量基准"""
|
||||
@@ -164,9 +164,9 @@ class ReportAgent:
|
||||
def _initialize_llm(self) -> LLMClient:
|
||||
"""初始化LLM客户端"""
|
||||
return LLMClient(
|
||||
api_key=settings.REPORT_ENGINE_API_KEY,
|
||||
model_name=settings.REPORT_ENGINE_MODEL_NAME,
|
||||
base_url=settings.REPORT_ENGINE_BASE_URL,
|
||||
api_key=self.config.REPORT_ENGINE_API_KEY,
|
||||
model_name=self.config.REPORT_ENGINE_MODEL_NAME,
|
||||
base_url=self.config.REPORT_ENGINE_BASE_URL,
|
||||
)
|
||||
|
||||
def _initialize_nodes(self):
|
||||
@@ -351,7 +351,7 @@ class ReportAgent:
|
||||
query_safe = query_safe.replace(' ', '_')[:30]
|
||||
|
||||
filename = f"final_report_{query_safe}_{timestamp}.html"
|
||||
filepath = os.path.join(settings.OUTPUT_DIR, filename)
|
||||
filepath = os.path.join(self.config.OUTPUT_DIR, filename)
|
||||
|
||||
# 保存HTML报告
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
@@ -361,7 +361,7 @@ class ReportAgent:
|
||||
|
||||
# 保存状态
|
||||
state_filename = f"report_state_{query_safe}_{timestamp}.json"
|
||||
state_filepath = os.path.join(settings.OUTPUT_DIR, state_filename)
|
||||
state_filepath = os.path.join(self.config.OUTPUT_DIR, state_filename)
|
||||
self.state.save_to_file(state_filepath)
|
||||
logger.info(f"状态已保存到: {state_filepath}")
|
||||
|
||||
|
||||
@@ -145,7 +145,7 @@ class TemplateSelectionNode(BaseNode):
|
||||
return None
|
||||
|
||||
except json.JSONDecodeError as e:
|
||||
logger.exception(f"JSON解析失败: {str(e)}")
|
||||
logger.error(f"JSON解析失败: {str(e)}")
|
||||
# 尝试从文本响应中提取模板信息
|
||||
return self._extract_template_from_text(response, available_templates)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user