Files
vibe_data_ana/examples/template_based_analysis.py

213 lines
6.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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()