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
This commit is contained in:
2026-08-22 20:47:53 +08:00
parent 951276a313
commit 3b44f64f66
30 changed files with 1496 additions and 2804 deletions
+15 -5
View File
@@ -33,7 +33,11 @@ LOG "HTTP 代理: 127.0.0.1:3128 (Privoxy → SOCKS5)"
# ── 加载 .env ──
export HTTP_PROXY=http://127.0.0.1:3128
export HTTPS_PROXY=http://127.0.0.1:3128
export $(grep -v '^#' .env | grep -v '^$' | xargs 2>/dev/null || true)
if [ -f .env ]; then
set -a
. ./.env
set +a
fi
# ── 启动 Xvfb(如果尚未运行)──
if ! pgrep -x "Xvfb" > /dev/null; then
@@ -59,12 +63,18 @@ else
LOG "目标源: 全部启用源"
fi
PYTHONPATH=. .venv/bin/python3 -c "
if PYTHONPATH=. .venv/bin/python3 -c "
from crawler.orchestrator import run_crawl_sync
import sys
source_filter = sys.argv[1] if len(sys.argv) > 1 else None
stats = run_crawl_sync(source_filter=source_filter)
print(f'抓取完成: {stats.sources_crawled} 源, {stats.total_articles} 篇')
" "${1:-}"
LOG "══════ 8G 抓取完成 ✅ ══════"
if stats.sources_crawled > 0 and stats.sources_failed >= stats.sources_crawled:
print(f'❌ 所有源抓取失败(sources_failed={stats.sources_failed})', file=sys.stderr)
sys.exit(1)
" "${1:-}"; then
LOG "══════ 8G 抓取完成 ✅ ══════"
else
LOG "❌ 8G 抓取失败:本次未标记完成"
exit 1
fi