Files
vibe_data_ana/examples/template_based_analysis.py

213 lines
6.7 KiB
Python
Raw Permalink Normal View History

#!/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()