Files
simon 3b44f64f66 refactor: 清理历史 AI Agent 文档残留 + 重构 docs/ + Pipeline 健壮性修复
- docs: 删除 CLAUDE.md / continuation.md / english-news-plan.md 及旧版 intlnews_usage.*,
        统一迁移到 docs/{README,architecture,quickstart,usage,pipeline,configuration,deployment,development,faq}.md
- README: 精简为仓库入口,指向 docs/
- configs/sources.yaml: 更新注释指向新文档
- .env.example: 修正 DashScope Embedding 端点说明

Pipeline 修复:
- dedup/llm/embedding/vectorstore/reporter: 过滤 M2 no_content / 空正文,避免污染下游与 Qdrant
- dedup/pipeline: 改为先写唯一文件再写指纹,避免崩溃导致文章永久丢失
- crawler/orchestrator: sources_crawled 改为“尝试数”,成功数 = crawled - failed
- crawler/storage: write_index_jsonl 从文章路径推断日期,修复跨天/测试路径问题
- scheduler/pipeline: STEP_TIMEOUTS 实际生效(SIGALRM)
- scheduler/reporter: emb_count 排除 index.json;日报跳过无原文事件
- vectorstore/pipeline: payload 增加 source_ids;--recreate --all 时空日期也重建 collection
- app/cli: extract/dedup/translate/embed/index/pipeline 支持 --date;embed/index 支持 --all;crawl 全源失败返回非零
- scripts: domestic_full/crawl_8g/crawl_2g/pipeline 安全加载 .env;M1 全失败不标记且最终退出码=1
2026-08-22 20:47:53 +08:00

2.4 KiB
Raw Permalink Blame History

快速开始

1. 环境要求

  • Python 3.11(项目支持 >=3.11,<3.13)
  • uv 包管理器
  • Linux(推荐 Pi 4 / 8GB 内存或更高)
  • 可选但推荐:Playwright 浏览器依赖、Xvfb、Privoxy/Shadowsocks(用于海外访问)

2. 安装依赖

# 在项目根目录执行
uv sync

# 如需开发依赖(pytest、ruff)
uv sync --extra dev

3. 配置环境变量

cp .env.example .env

然后编辑 .env,至少配置以下密钥:

变量 用途
DEEPSEEK_API_KEY M4 翻译+事件抽取、M7 日报摘要(DeepSeek)
QWEN_API_KEY 或 DASHSCOPE_API_KEY Qwen LLM、M5 向量化(Embedding 复用兼容端点)
DASHSCOPE_API_KEY M5 text-embedding-v3 向量化
QDRANT_URL / QDRANT_API_KEY 远程 Qdrant(可选;默认本地文件模式可留空)
NEWS_DB_* M9 日报入库 MySQL(NEWS_DB_PASSWORD 必填)

完整变量说明见 配置说明。

4. 验证安装

uv run en-news --help

能看到 crawl / extract / dedup / translate / embed / index / search / report / pipeline / mcp-server 即安装成功。

5. 首次运行

5.1 抓取(M1)

# 抓取全部源(8G headful + HTTP 代理,适合国内 Pi)
bash scripts/domestic_crawl_8g.sh

# 只抓取某个源
bash scripts/domestic_crawl_8g.sh reuters

如果不需要真实抓取,可先用测试数据或已有 data/raw/ 数据跳过此步。

5.2 全链路管道(M2→M6 + 日报)

bash scripts/pipeline.sh

或使用命令行入口:

uv run en-news pipeline --skip-report   # 只跑 M2→M6,不生成日报
uv run en-news pipeline                 # M2→M6 + 日报

5.3 语义搜索

uv run en-news search "美联储 利率 决议"

6. 日常全流程

# 全流程:M1 抓取 + 管道 + 日报
bash scripts/domestic_full.sh

# 中断后继续(跳过当天已完成步骤)
bash scripts/domestic_full.sh --resume

7. 常见首个坑

  • 如果没有配置 NEWS_DB_PASSWORD,日报(report)步骤会失败。scripts/pipeline.sh 会包含日报;若暂时不配 MySQL,请使用 uv run en-news pipeline --skip-report 跳过日报。
  • 抓取海外站点需要代理和 Xvfb,详见 部署与运维。
  • 运行前请确保已在项目根目录(所有路径都相对项目根目录)。