# 项目优化计划

版本: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 # 从快照恢复
```
