v2431/FormulaShowcase
0
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3"""
4测试脚本:使用 llm_conclusion.py 生成报告的文字内容部分
5仅使用已有的 llm_result.json 文件,不重新计算其他数据
6本次测试仅基于 r4 场景
7"""
8
9import yaml
10from llm_conclusion import LLMConclusion
11
12def main():
13 # 加载配置
14 with open('config.yaml', 'r', encoding='utf-8') as f:
15 config = yaml.safe_load(f)
16
17 # 初始化 LLMConclusion
18 llm_conclusion = LLMConclusion(config['LLM'])
19
20 # 测试场景(可以根据需要修改为其他场景,如 r4、r5 等)
21 # 选项1:手动指定要处理的场景
22 # test_scenarios = ["r4"]
23
24 # 选项2:自动查找results文件夹中的所有结果文件夹
25 import os
26 results_dir = "results"
27 if os.path.exists(results_dir):
28 test_scenarios = [d for d in os.listdir(results_dir) if os.path.isdir(os.path.join(results_dir, d))]
29 print(f"自动检测到 {len(test_scenarios)} 个场景: {test_scenarios}")
30 else:
31 print(f"未找到results文件夹: {results_dir}")
32 return
33
34 for scenario in test_scenarios:
35 print(f"=== 处理场景: {scenario} ===")
36
37 # 查找所有以report开头的文件夹
38 scenario_path = f"results/{scenario}"
39 import glob
40 report_dirs = glob.glob(os.path.join(scenario_path, "report*"))
41
42 if not report_dirs:
43 print(f"跳过 {scenario}: 未找到以report开头的文件夹")
44 print()
45 continue
46
47 for report_dir in report_dirs:
48 print(f" 处理报告目录: {report_dir}")
49
50 # 检查llm_result.json文件是否存在
51 llm_result_files = glob.glob(os.path.join(report_dir, "formula_*/llm_result.json"))
52 if not llm_result_files:
53 print(f" 跳过 {report_dir}: 未找到llm_result.json文件")
54 print()
55 continue
56
57 print(f" 找到 {len(llm_result_files)} 个llm_result.json文件")
58
59 # 调用 LLMConclusion.run() 方法
60 # 注意:这里会检查报告是否已存在,并询问是否重新生成
61 llm_conclusion.run(report_dir=report_dir, force_regenerate=False)
62
63 print()
64
65 print("=== 测试完成 ===")
66
67if __name__ == "__main__":
68 main()