- dedup/pipeline: 合并 source_ids 后自动同步已生成的 events JSON 和 Qdrant payload - 新增 sync_sources_from_deduped / uv run en-news sync-sources,用于历史数据回填 - sync-sources 会扫描 deduped 多来源唯一篇,更新 events、Qdrant、MySQL news_event.sources - docs: 补充 sync-sources 使用说明
4.6 KiB
4.6 KiB
使用手册
1. CLI 命令(uv run en-news)
| 命令 | 功能 | 常用参数 |
|---|---|---|
crawl |
M1 抓取新闻 | --source/-s <id> 只抓单源;--profile/-p 指定 Profile |
extract |
M2 正文提取 | --source/-s <id> 只处理单源;--date/-d 指定日期 |
dedup |
M3 三层去重 | --date/-d 指定日期 |
translate |
M4 翻译+事件抽取 | --date/-d 指定日期 |
embed |
M5 向量生成 | --date/-d 指定日期;--all 处理全部日期 |
index |
M6 写入 Qdrant | --recreate 重建;--date/-d 指定日期;--all 全量回灌 |
search |
M6 语义检索 | 必需 query;--top-k 返回条数 |
report |
M9 生成日报并入库 | 无 |
sync-sources |
把 deduped 已合并的多来源同步到 events/Qdrant/MySQL | 无 |
pipeline |
M2→M6(+日报) | --skip-report 跳过日报;--date/-d 指定日期 |
mcp-server |
M8 启动 MCP 服务 | 无 |
示例:
# 只抓取 CNBC
uv run en-news crawl --source cnbc
# 单步正文提取
uv run en-news extract
# 搜索
uv run en-news search "美联储" --top-k 5
# 重建 Qdrant collection(慎用!会清空现有向量)
uv run en-news index --recreate
# 指定历史日期处理
uv run en-news translate --date 20260801
uv run en-news embed --date 20260801
uv run en-news index --date 20260801
# 全量回灌历史向量(--recreate 搭配 --all 时只会在首个日期重建 collection)
uv run en-news index --all
uv run en-news embed --all
# 修复历史多来源:把 deduped 中已合并的 source_ids 同步到 events/Qdrant/MySQL
uv run en-news sync-sources
2. Shell 脚本
| 脚本 | 用途 |
|---|---|
scripts/domestic_full.sh |
国内服务器全流程:M1 抓取 + M2→M6 管道 + 日报 |
scripts/domestic_full.sh --resume |
同上,但跳过当天已完成步骤 |
scripts/pipeline.sh |
仅 M2→M6 管道 + 日报 |
scripts/pipeline.sh --resume |
同上,支持步骤级断点续跑 |
scripts/domestic_crawl_8g.sh [source] |
8G headful + HTTP 代理抓取 M1 |
scripts/domestic_crawl_2g.sh [source] |
2G headless stealth 轻量抓取 M1 |
scripts/cleanup_logs.sh |
清理 14 天前日志 |
scripts/domestic_sync.sh [date] |
从海外服务器同步 raw 数据(海外已停用,保留兼容) |
2.1 全流程示例
cd /home/pi/intlnews
# 每天定时任务可执行
bash scripts/domestic_full.sh
# 手动中断后继续
bash scripts/domestic_full.sh --resume
2.2 步骤级断点说明
步骤状态记录在 data/run_state/{YYYYMMDD}.state:
- 每成功一个步骤追加一行,如
M1_crawl、M2_extract、M3_dedup、M4_translate、M5_embed、M6_index、report。 --resume只跳过已标记步骤;失败步骤不会标记,所以会从失败处重试。- 跨天自动失效,状态文件按天隔离。
3. MCP 服务(M8)
MCP 是给 Cherry Studio / Claude Code 等 Agent 客户端接入的研究工具层。
启动:
uv run en-news mcp-server
提供工具:
| 工具 | 功能 |
|---|---|
search_news |
语义检索新闻 |
search_by_stock |
按美股代码检索相关事件 |
search_by_sentiment |
按情绪倾向(利好/利空/中性)过滤检索 |
get_today_events |
获取当日重要投资事件 |
get_stats |
获取系统统计概览 |
具体接入方式由客户端决定,通常是在 MCP 配置中指向 uv run --directory /path/to/intlnews en-news mcp-server。
4. 日报查看
日报已结构化写入 MySQL:
- 主表:
news_reportreport_type = 'intl'ai_summary为 AI 日报摘要stats为 JSON 统计快照
- 明细表:
news_eventsection = 'intl'- 包含标题、摘要、来源、情绪、重要度、URL
可通过 SQL 查看最新日报:
SELECT id, report_date, generated_at, ai_summary
FROM news_report
WHERE report_type = 'intl'
ORDER BY report_date DESC, generated_at DESC
LIMIT 5;
5. 日志
- 全流程日志:
logs/domestic_full_{YYYYMMDD_HHMMSS}.log - 管道日志:
logs/pipeline_{YYYYMMDD_HHMMSS}.log - 运行时也实时输出到终端。
快速查看最近日志:
tail -100 logs/pipeline_$(ls -t logs/pipeline_*.log | head -1 | sed 's#logs/##')
6. 常见操作组合
| 目标 | 命令 |
|---|---|
| 只抓取新闻 | bash scripts/domestic_crawl_8g.sh |
| 从已有 raw 跑全管道 | uv run en-news pipeline --skip-report |
| 增量补齐翻译 | uv run en-news translate(自动跳过已有) |
| 只生成日报 | uv run en-news report |
| 搜索知识库 | uv run en-news search "关键词" |
| 启动 MCP | uv run en-news mcp-server |