- 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
2.4 KiB
2.4 KiB
快速开始
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,详见 部署与运维。
- 运行前请确保已在项目根目录(所有路径都相对项目根目录)。