#!/usr/bin/env python3 """ 基于模板分析示例 这个示例展示了如何使用分析模板作为参考框架。 AI 会理解模板的结构和要求,并根据数据特征灵活调整分析内容。 使用方法: python examples/template_based_analysis.py 或者使用命令行: python -m src.main --data test_data/ticket_sample.csv --template templates/ticket_analysis.md --output output/template """ import sys import os # 添加项目根目录到路径 sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from src.main import run_analysis from src.logging_config import setup_logging import logging def main(): """运行基于模板的分析""" # 设置日志 setup_logging() logger = logging.getLogger(__name__) logger.info("=" * 80) logger.info("基于模板分析示例") logger.info("=" * 80) # 配置参数 data_file = "test_data/ticket_sample.csv" template_file = "templates/ticket_analysis.md" output_dir = "output/template" logger.info(f"数据文件: {data_file}") logger.info(f"分析模板: {template_file}") logger.info(f"输出目录: {output_dir}") logger.info("") logger.info("分析模式: 基于模板") logger.info("AI 将:") logger.info(" 1. 解析模板结构和要求") logger.info(" 2. 检查数据是否满足模板要求") logger.info(" 3. 根据数据特征灵活调整分析内容") logger.info(" 4. 按模板结构组织报告") logger.info(" 5. 说明哪些分析被跳过及原因") logger.info("") logger.info("注意:如果数据缺少某些字段,AI 会智能跳过相关分析") logger.info("") try: # 运行分析(使用模板) report_path = run_analysis( data_file=data_file, user_requirement=None, template_file=template_file, output_dir=output_dir ) logger.info("") logger.info("=" * 80) logger.info("分析完成!") logger.info(f"报告已生成: {report_path}") logger.info("=" * 80) # 显示报告预览 if os.path.exists(report_path): with open(report_path, 'r', encoding='utf-8') as f: content = f.read() preview = content[:500] + "..." if len(content) > 500 else content logger.info("") logger.info("报告预览:") logger.info("-" * 80) logger.info(preview) logger.info("-" * 80) except Exception as e: logger.error(f"分析失败: {e}", exc_info=True) sys.exit(1) def example_problem_analysis(): """问题分析模板示例""" setup_logging() logger = logging.getLogger(__name__) logger.info("=" * 80) logger.info("问题分析模板示例") logger.info("=" * 80) data_file = "test_data/anomaly_sample.csv" template_file = "templates/problem_analysis.md" output_dir = "output/problem_analysis" logger.info(f"数据文件: {data_file}") logger.info(f"分析模板: {template_file}") logger.info(f"输出目录: {output_dir}") logger.info("") logger.info("这个示例使用包含异常的数据集,AI 将:") logger.info(" 1. 识别数据中的异常模式") logger.info(" 2. 分析异常的分布和影响") logger.info(" 3. 推断可能的根本原因") logger.info(" 4. 提供解决方案建议") logger.info("") try: report_path = run_analysis( data_file=data_file, user_requirement=None, template_file=template_file, output_dir=output_dir ) logger.info("") logger.info("=" * 80) logger.info("分析完成!") logger.info(f"报告已生成: {report_path}") logger.info("=" * 80) except Exception as e: logger.error(f"分析失败: {e}", exc_info=True) def example_data_analysis(): """通用数据分析模板示例""" setup_logging() logger = logging.getLogger(__name__) logger.info("=" * 80) logger.info("通用数据分析模板示例") logger.info("=" * 80) data_file = "test_data/sales_sample.csv" template_file = "templates/data_analysis.md" output_dir = "output/data_analysis" logger.info(f"数据文件: {data_file}") logger.info(f"分析模板: {template_file}") logger.info(f"输出目录: {output_dir}") logger.info("") logger.info("这个示例使用通用数据分析模板,适用于各种数据类型") logger.info("") try: report_path = run_analysis( data_file=data_file, user_requirement=None, template_file=template_file, output_dir=output_dir ) logger.info("") logger.info("=" * 80) logger.info("分析完成!") logger.info(f"报告已生成: {report_path}") logger.info("=" * 80) except Exception as e: logger.error(f"分析失败: {e}", exc_info=True) def example_combined_analysis(): """组合模式:模板 + 需求""" setup_logging() logger = logging.getLogger(__name__) logger.info("=" * 80) logger.info("组合模式示例:模板 + 需求") logger.info("=" * 80) data_file = "test_data/ticket_sample.csv" template_file = "templates/ticket_analysis.md" user_requirement = "重点关注车门模块的远程控制问题,进行深入的根因分析" output_dir = "output/combined_analysis" logger.info(f"数据文件: {data_file}") logger.info(f"分析模板: {template_file}") logger.info(f"用户需求: {user_requirement}") logger.info(f"输出目录: {output_dir}") logger.info("") logger.info("这个示例同时使用模板和需求:") logger.info(" - 模板提供报告结构框架") logger.info(" - 需求指定分析重点和深度") logger.info(" - AI 会在模板框架下进行针对性深入分析") logger.info("") try: report_path = run_analysis( data_file=data_file, user_requirement=user_requirement, template_file=template_file, output_dir=output_dir ) logger.info("") logger.info("=" * 80) logger.info("分析完成!") logger.info(f"报告已生成: {report_path}") logger.info("=" * 80) except Exception as e: logger.error(f"分析失败: {e}", exc_info=True) if __name__ == "__main__": # 运行主示例 main() # 取消注释以运行其他示例 # example_problem_analysis() # example_data_analysis() # example_combined_analysis()