Files
vibe_data_ana/examples/requirement_based_analysis.py

163 lines
5.0 KiB
Python

#!/usr/bin/env python3
"""
指定需求分析示例
这个示例展示了如何指定分析需求,让 AI 根据需求进行针对性分析。
AI 会理解抽象的需求概念(如"健康度"),并将其转化为具体的分析指标。
使用方法:
python examples/requirement_based_analysis.py
或者使用命令行:
python -m src.main --data test_data/ticket_sample.csv --requirement "分析工单健康度" --output output/requirement
"""
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"
user_requirement = "我想了解工单的健康度,包括关闭率、处理效率、积压情况和响应及时性"
output_dir = "output/requirement"
logger.info(f"数据文件: {data_file}")
logger.info(f"用户需求: {user_requirement}")
logger.info(f"输出目录: {output_dir}")
logger.info("")
logger.info("分析模式: 指定需求")
logger.info("AI 将:")
logger.info(" 1. 理解用户的抽象需求(健康度)")
logger.info(" 2. 将需求转化为具体指标")
logger.info(" - 关闭率")
logger.info(" - 处理效率(平均处理时长)")
logger.info(" - 积压情况(待处理工单占比)")
logger.info(" - 响应及时性")
logger.info(" 3. 生成针对性的分析计划")
logger.info(" 4. 执行分析并生成报告")
logger.info("")
try:
# 运行分析(指定需求)
report_path = run_analysis(
data_file=data_file,
user_requirement=user_requirement,
template_file=None,
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_sales_analysis():
"""销售数据分析示例"""
setup_logging()
logger = logging.getLogger(__name__)
logger.info("=" * 80)
logger.info("销售数据分析示例")
logger.info("=" * 80)
data_file = "test_data/sales_sample.csv"
user_requirement = "分析销售趋势和区域表现,识别高价值客户和畅销产品"
output_dir = "output/sales_analysis"
logger.info(f"数据文件: {data_file}")
logger.info(f"用户需求: {user_requirement}")
logger.info(f"输出目录: {output_dir}")
logger.info("")
try:
report_path = run_analysis(
data_file=data_file,
user_requirement=user_requirement,
template_file=None,
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_user_analysis():
"""用户数据分析示例"""
setup_logging()
logger = logging.getLogger(__name__)
logger.info("=" * 80)
logger.info("用户数据分析示例")
logger.info("=" * 80)
data_file = "test_data/user_sample.csv"
user_requirement = "分析用户活跃度和订阅情况,识别流失风险用户"
output_dir = "output/user_analysis"
logger.info(f"数据文件: {data_file}")
logger.info(f"用户需求: {user_requirement}")
logger.info(f"输出目录: {output_dir}")
logger.info("")
try:
report_path = run_analysis(
data_file=data_file,
user_requirement=user_requirement,
template_file=None,
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_sales_analysis()
# example_user_analysis()