Files
news/docs/optimization_plan.md
T
2026-07-18 15:51:01 +08:00

145 lines
3.8 KiB
Markdown

# 项目优化计划
版本:v1.0 | 创建:2026-06-17
---
## 优化总览
| 序号 | 优化项 | 工作量 | 收益 | 状态 |
| --- | --- | --- | --- | --- |
| 1 | 统一 CLI `a-share` | 1.5h | 🔴 每天用 | ✅ 已完成 |
| 2 | CLI 直接检索 `a-share search` | 0.5h | 🔴 高频 | ✅ 已完成 |
| 3 | 站点发现 `a-share discover` | 1h | 🟡 加源时用 | ✅ 已完成 |
| 4 | Prompt 调优工具 | 1h | 🟡 调参时用 | 📋 计划中 |
| 5 | 每日摘要报告 | 0.5h | 🟢 锦上添花 | ✅ 已完成 |
| 6 | 健康检查 `a-share health` | 0.5h | 🟢 运维用 | 📋 计划中 |
| 7 | 数据清理策略 | 0.5h | 🟢 长期必要 | 📋 计划中 |
| 8 | 备份恢复 | 1h | 🟢 生产必须 | 📋 计划中 |
---
## 1+2. 统一 CLI `a-share` + 直接检索 ✅
### 目标
用一个命令替代 8 个脚本入口,降低日常使用记忆成本;支持直接在终端检索知识库。
### 设计
```bash
# 模块操作(替代 scripts/run_*.py)
uv run a-share crawl # M1 抓取全部源
uv run a-share crawl --source cls # 单源
uv run a-share extract --date 20260616 # M2 提取
uv run a-share dedup --date 20260616 # M3 去重
uv run a-share events --date 20260616 # M4 LLM 抽取
uv run a-share embed --date 20260616 # M5 向量化
uv run a-share ingest --date 20260616 # M6 入库
# 全链路
uv run a-share pipeline --once # 立即执行一次
uv run a-share pipeline # 启动定时守护
# 检索(新增,不走 MCP)
uv run a-share search "宁德时代" # 纯语义
uv run a-share search "宁德时代" --source cls --top 5 # 过滤
uv run a-share search "芯片" --sentiment positive --min-importance 3
# 运维
uv run a-share status # 查看各层数据量 + 今天摘要
```
### 实现文件
- `a_share_cli/__init__.py` — 空
- `a_share_cli/main.py` — argparse 子命令路由
- `pyproject.toml``[project.scripts] a-share = "a_share_cli.main:main"`
### 子命令详情
#### `a-share crawl`
| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `--source` | str | None | 单源 id |
| `--no-save` | flag | False | 试跑不写文件 |
#### `a-share extract`
| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `--date` | str | today | YYYYMMDD |
| `--source` | str | None | 单源 |
#### `a-share search`
| 参数 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `query` | positional | — | 自然语言查询 |
| `--top` | int | 10 | 返回条数 |
| `--source` | str | None | 按源过滤 |
| `--sentiment` | str | None | positive/negative/neutral |
| `--min-importance` | int | None | 最低影响程度 |
| `--stock` | str | None | 股票代码 |
| `--industry` | str | None | 行业 |
#### `a-share status`
无参数,输出各数据层统计 + 今天事件摘要。
---
## 3. 站点发现 `a-share discover` 📋
```
uv run a-share discover https://wallstreetcn.com/news/global
```
内部:抓首页 → 提取 `<a href>` → 按 URL 模式聚类 → 输出 yaml 配置建议。
---
## 4. Prompt 调优工具 📋
```
uv run a-share tune-prompt --sample 5 # 样本抽取,展示结果
uv run a-share tune-prompt --diff # 对比新旧 prompt
```
---
## 5. 每日摘要报告 📋
M7 pipeline 末尾追加一步:生成 `data/reports/{YYYYMMDD}.md`,含各层统计 + 高重要性事件列表。
---
## 6. 健康检查 📋
```
uv run a-share health
```
检查:Qdrant 连通性 / LLM API 可达 / 各层数据完整性 / 磁盘空间。
---
## 7. 数据清理策略 📋
`.env` 新增:
```
DATA_RETENTION_DAYS=90
```
M7 pipeline 中加 cleanup 步骤:删除超过保留期的 raw/processed 目录。
---
## 8. 备份恢复 📋
```
uv run a-share backup # → data/backups/20260617/
uv run a-share restore 20260617 # 从快照恢复
```