docs: 补充本地验收和部署说明
This commit is contained in:
@@ -720,6 +720,23 @@ chore: 整理 Docker 启动与部署配置
|
||||
docs: 补充本地验收和部署说明
|
||||
```
|
||||
|
||||
完成记录:
|
||||
|
||||
```text
|
||||
完成日期:2026-07-03
|
||||
相关 commit:docs: 补充本地验收和部署说明
|
||||
验证命令:
|
||||
- .venv/bin/python -m pytest tests/unit/test_docs.py -q
|
||||
- .venv/bin/python -m pytest tests/unit tests/integration -q
|
||||
- curl -f http://localhost:8000/health
|
||||
验收结论:
|
||||
- 新增 docs/UserGuide.md,覆盖启动、创建任务、小规模验收、默认规模验收、报告查看、导出、常见问题和数据库重置。
|
||||
- 用户指南明确固定入口 http://localhost:8000,说明不要临时改 8001。
|
||||
- 文档说明 API Key 缺失、任务长期 running、评论数量少于上限、报告摘要失败等排查方式。
|
||||
- 新增文档测试,防止关键章节被误删。
|
||||
遗留问题:无;进入 WO-10 发布候选验收。
|
||||
```
|
||||
|
||||
### WO-10 发布候选版本验收
|
||||
|
||||
优先级:P0
|
||||
|
||||
@@ -0,0 +1,208 @@
|
||||
# 用户操作与验收说明
|
||||
|
||||
## 1. 启动服务
|
||||
|
||||
首次使用先准备环境变量:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
打开 `.env`,填写:
|
||||
|
||||
```text
|
||||
TIKHUB_API_KEY=
|
||||
AI_BASE_URL=
|
||||
AI_API_KEY=
|
||||
AI_MODEL=
|
||||
```
|
||||
|
||||
启动:
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
curl -f http://localhost:8000/health
|
||||
```
|
||||
|
||||
浏览器打开:
|
||||
|
||||
```text
|
||||
http://localhost:8000
|
||||
```
|
||||
|
||||
## 2. 创建任务
|
||||
|
||||
首页选择平台:
|
||||
|
||||
- 小红书
|
||||
- 抖音
|
||||
|
||||
可调整抓取规模:
|
||||
|
||||
- 热点数:默认 5
|
||||
- 每热点内容:默认 5
|
||||
- 每内容评论:默认 50
|
||||
|
||||
轻量验收建议使用:
|
||||
|
||||
```text
|
||||
1 热点 × 1 内容 × 10 评论
|
||||
```
|
||||
|
||||
默认规模验收使用:
|
||||
|
||||
```text
|
||||
5 热点 × 5 内容 × 50 评论
|
||||
```
|
||||
|
||||
点击“开始抓取”后会进入任务详情页。
|
||||
|
||||
## 3. 查看任务状态
|
||||
|
||||
任务状态包括:
|
||||
|
||||
- 运行中
|
||||
- 已完成
|
||||
- 失败
|
||||
|
||||
运行中任务会自动刷新。页面会展示:
|
||||
|
||||
- 已处理 / 总内容数
|
||||
- 成功 / 失败内容数
|
||||
- AI 成功率
|
||||
- AI 样本不足提示
|
||||
- 失败阶段、错误类型和错误信息
|
||||
|
||||
如果任务刚开始且还没有热点,会看到“正在抓取热点数据,请稍候...”。
|
||||
|
||||
## 4. 查看报告
|
||||
|
||||
任务完成后,在任务详情页可以进入:
|
||||
|
||||
- 热点级汇总报告
|
||||
- 内容详情页
|
||||
|
||||
报告页面会展示:
|
||||
|
||||
- AI 总结
|
||||
- 评论样本数
|
||||
- 情绪分布
|
||||
- Top 标签
|
||||
- 典型评论
|
||||
- 评论明细
|
||||
|
||||
如果报告尚未生成,页面会显示“报告生成中,请稍候...”,不会返回 500。
|
||||
|
||||
## 5. 导出文件
|
||||
|
||||
支持导出:
|
||||
|
||||
- 热点报告 Markdown
|
||||
- 内容报告 Markdown
|
||||
- 热点评论 CSV
|
||||
- 内容评论 CSV
|
||||
|
||||
CSV 使用 UTF-8-BOM,适合 Windows Excel 打开。评论内容中的换行会被替换为空格,`= + - @` 开头的内容会自动加单引号,避免被 Excel 当作公式执行。
|
||||
|
||||
## 6. 小规模验收
|
||||
|
||||
分别创建两个任务:
|
||||
|
||||
```text
|
||||
小红书:1 × 1 × 10
|
||||
抖音:1 × 1 × 10
|
||||
```
|
||||
|
||||
通过标准:
|
||||
|
||||
- 任务最终为“已完成”。
|
||||
- 至少有热点、内容、评论、报告。
|
||||
- AI 成功率正常,或页面有明确“AI 样本不足”提示。
|
||||
- 能打开热点报告、内容详情页。
|
||||
- 能导出 Markdown 和 CSV。
|
||||
|
||||
## 7. 默认规模验收
|
||||
|
||||
分别创建两个任务:
|
||||
|
||||
```text
|
||||
小红书:5 × 5 × 50
|
||||
抖音:5 × 5 × 50
|
||||
```
|
||||
|
||||
注意:真实平台接口返回数量可能低于理论上限 1250 条评论。验收时重点判断:
|
||||
|
||||
- 任务是否完成。
|
||||
- 是否有明确失败原因。
|
||||
- 实际热点、内容、评论、报告数量。
|
||||
- 页面和导出是否可用。
|
||||
|
||||
## 8. 常见问题
|
||||
|
||||
### 8000 端口被占用
|
||||
|
||||
先确认是否是本项目容器:
|
||||
|
||||
```bash
|
||||
docker compose ps
|
||||
lsof -nP -iTCP:8000 -sTCP:LISTEN
|
||||
```
|
||||
|
||||
如果是旧容器:
|
||||
|
||||
```bash
|
||||
docker compose down
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
不要临时改成 8001。
|
||||
|
||||
### API Key 缺失
|
||||
|
||||
如果任务失败或没有真实数据,检查 `.env`:
|
||||
|
||||
```text
|
||||
TIKHUB_API_KEY=
|
||||
AI_BASE_URL=
|
||||
AI_API_KEY=
|
||||
AI_MODEL=
|
||||
```
|
||||
|
||||
### 任务长期 running
|
||||
|
||||
先打开任务详情页看进度。如果长时间没有变化:
|
||||
|
||||
```bash
|
||||
docker compose logs --tail=120 app
|
||||
```
|
||||
|
||||
重启服务后,遗留 running 任务会被标记为失败,并显示“系统重启,任务被中断”。
|
||||
|
||||
### 评论数量少于请求上限
|
||||
|
||||
这通常是平台真实返回不足,不一定是代码失败。以任务状态、成功内容数、报告生成情况和错误信息为准。
|
||||
|
||||
### 报告摘要失败
|
||||
|
||||
页面会显示默认文案,但统计、标签、典型评论和导出仍应可用。
|
||||
|
||||
### 重置本地数据库
|
||||
|
||||
仅在不需要保留历史任务时执行:
|
||||
|
||||
```bash
|
||||
docker compose down
|
||||
rm -f data/app.db data/app.db-wal data/app.db-shm
|
||||
docker compose up -d --build
|
||||
curl -f http://localhost:8000/health
|
||||
```
|
||||
|
||||
## 9. 推荐提交节奏
|
||||
|
||||
按 `docs/MVP-WorkOrders.md` 的工单推进:
|
||||
|
||||
```text
|
||||
完成一个工单 → 跑测试 → Docker 健康检查 → 网页验收 → commit
|
||||
```
|
||||
|
||||
运行数据目录 `data/` 不提交到 Git。
|
||||
@@ -0,0 +1,21 @@
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
|
||||
|
||||
def test_user_guide_covers_startup_acceptance_exports_and_troubleshooting():
|
||||
content = (ROOT / "docs" / "UserGuide.md").read_text(encoding="utf-8")
|
||||
|
||||
for required in [
|
||||
"docker compose up -d --build",
|
||||
"http://localhost:8000",
|
||||
"1 × 1 × 10",
|
||||
"5 × 5 × 50",
|
||||
"导出文件",
|
||||
"8000 端口被占用",
|
||||
"API Key 缺失",
|
||||
"任务长期 running",
|
||||
"重置本地数据库",
|
||||
]:
|
||||
assert required in content
|
||||
Reference in New Issue
Block a user