newsreport_agent_for_traffic/MAIN_USAGE_GUIDE.md

190 lines
3.7 KiB
Markdown
Raw Permalink Normal View History

2026-05-09 10:46:52 +08:00
# main.py 使用指南
## 概述
`main.py` 是当前项目的主入口,负责把多个数据源的抓取、向量入库和报告生成串成统一流程。
支持数据源:
- `traffic`:赛文交通网
- `wechat`:微信公众号(高德地图)
- `baidu`:微信公众号(百度地图)
- `ccgp`:中国政府采购网
- `all`:全部数据源
支持模式:
- `crawl`
- `report`
- `topic`
- `full`
## 常用命令
### 完整流程
```bash
python main.py --mode full --sources all
```
### 仅抓取并写入向量库
```bash
python main.py --mode crawl --sources all
```
### 仅生成综合报告
```bash
python main.py --mode report
```
### 生成主题报告
```bash
python main.py --mode topic --topic "信控"
```
## 参数说明
### 通用参数
| 参数 | 含义 | 默认值 |
|------|------|--------|
| `--mode` | 运行模式 | `full` |
| `--sources` | 数据源选择 | `all` |
| `--topic` | 主题分析关键词,仅 `topic` 模式使用 | 空 |
### 赛文交通网参数
| 参数 | 含义 | 默认值 |
|------|------|--------|
| `--max-news` | 最大抓取条数 | `20` |
### 高德公众号参数
| 参数 | 含义 | 默认值 |
|------|------|--------|
| `--wechat-count` | 最大抓取篇数 | `30` |
| `--wechat-keyword` | 关键词过滤 | `交通` |
### 百度地图公众号参数
| 参数 | 含义 | 默认值 |
|------|------|--------|
| `--baidu-count` | 最大抓取篇数 | `30` |
| `--baidu-keyword` | 关键词过滤 | `交通` |
### 政府采购网参数
| 参数 | 含义 | 默认值 |
|------|------|--------|
| `--ccgp-keywords` | 关键词列表,逗号分隔 | `信控,绿波` |
| `--ccgp-count` | 每个关键词最大抓取条数 | `30` |
## 典型用法
### 只抓赛文交通网
```bash
python main.py --mode crawl --sources traffic --max-news 50
```
### 只抓高德和百度公众号
```bash
python main.py --mode crawl --sources wechat,baidu --wechat-count 20 --baidu-count 20
```
### 只抓政府采购网
```bash
python main.py --mode crawl --sources ccgp --ccgp-keywords "信控,绿波,交通管理" --ccgp-count 20
```
### 分步执行
```bash
python main.py --mode crawl --sources all
python main.py --mode report
python main.py --mode topic --topic "绿波"
```
## 实际执行逻辑
### `crawl`
1. 按所选数据源抓取原始数据
2. 原始数据保存到 `data/*.json`
3. 统一转换为 RAG 输入格式
4. 写入 `vector_db/`
### `report`
1.`vector_db/``std_timestamp` 读取最近 15 天新闻元数据
2. 综合报告会按来源均衡取样,尽量确保每个来源至少纳入 5 条新闻(若该来源在时间窗口内不足 5 条,则取其全部)
3. 调用千问模型生成综合报告
4. 保存为 `data/report_summary_*.txt`
### `topic`
1. 从向量库检索主题相关片段
2. 生成专题报告
3. 保存为 `data/report_topic_*.txt`
### `full`
1. 抓取所选数据源
2. 写入向量库
3. 基于新数据生成最近 15 天综合报告
## 配置要求
### 必需
```env
QWEN_API_KEY=你的API密钥
QWEN_MODEL=qwen-max
DATA_DIR=./data
VECTOR_DB_DIR=./vector_db
```
### 可选
```env
TARGET_URL=https://www.7its.com/
WECHAT_APPID=...
WECHAT_APPSECRET=...
BAIDU_MAP_APPID=...
BAIDU_MAP_APPSECRET=...
```
说明:
- 当前公众号后台模式依赖 `WECHAT_MP_COOKIE`
- 如果未配置 `WECHAT_MP_COOKIE`,高德和百度两个公众号源都会被跳过
## 输出文件
### 原始抓取数据
- `news_*.json`
- `wechat_articles_*.json`
- `baidu_map_articles_*.json`
- `ccgp_results_*.json`
- `ccgp_probe_*.json`
### 报告文件
- `report_summary_*.txt`
- `report_topic_*.txt`
## 已更新的行为说明
以下旧说法不再准确:
- 报表输出为 `.md`
- 政府采购网只依赖搜索接口稳定返回
- 公众号数据源未配置时仍会继续请求接口