190 lines
3.7 KiB
Markdown
190 lines
3.7 KiB
Markdown
|
|
# 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`
|
||
|
|
- 政府采购网只依赖搜索接口稳定返回
|
||
|
|
- 公众号数据源未配置时仍会继续请求接口
|
||
|
|
|