基于 Map-Reduce 架构的保险行业情报分析系统,使用阿里云千问 API 处理长文本数据。
- Map-Reduce 架构:将长文本切片并发处理,提升分析效率
- 记忆机制:保存历史分析状态,支持趋势对比和反转识别
- 结构化输出:生成 Markdown 格式的情报简报
- 多维度分析:涵盖行业趋势、竞对动态、舆情风控
- Python 3.10+
- pandas (数据处理)
- dashscope (阿里云千问 SDK)
- loguru (日志管理)
- python-dotenv (环境变量)
insurance_intel_system/
├── src/
│ ├── config.py # 配置和 Prompt 模板
│ ├── llm_client.py # LLM 客户端封装
│ ├── data_loader.py # 数据加载和切片
│ ├── map_processor.py # Map 阶段处理器
│ └── reduce_processor.py # Reduce 阶段处理器
├── data/
│ ├── input/ # 输入 Excel 文件
│ ├── output/ # 输出 Markdown 报告
│ └── history/ # 历史状态 JSON
├── main.py # 主程序入口
├── requirements.txt # 依赖清单
└── .env # 环境变量配置
pip install -r requirements.txt编辑 .env 文件,填入您的阿里云千问 API 密钥:
DASHSCOPE_API_KEY=your_actual_api_key
将待分析的 Excel 文件放入 data/input/ 目录。
python main.py- 分析报告:
data/output/情报简报_YYYYMMDD_HHMMSS.md - 历史状态:
data/history/state.json
- 数据加载:读取 Excel 文件,按每 50 行切片
- Map 阶段:并发调用 LLM 提取每个切片的关键信息
- 加载记忆:读取历史分析状态
- Reduce 阶段:汇总分析,对比历史趋势,生成报告
- 保存输出:保存 Markdown 报告和更新历史状态
- 将长文本按行切片(默认 50 行)
- 并发调用 LLM 提取结构化信息:
- 行业趋势关键词
- 竞对公司动作
- 舆情话题和情感
- 读取
data/history/state.json - 首次运行初始化为空
- 后续运行加载历史分析结论
- 聚合所有 Map 结果
- 结合历史记忆进行对比分析
- 识别趋势延续、反转或突变
- 生成分版块情报简报
- 更新历史状态供下次使用
- 确保 API 密钥有效且有足够额度
- 大文件处理可能需要较长时间
- 建议定期备份
data/history/state.json
MIT License