From 3d3ddb5f5701519e17c0cd9bff652c9338ca3a5f Mon Sep 17 00:00:00 2001 From: claude_dev Date: Sun, 6 Sep 2026 20:01:39 +0800 Subject: [PATCH] =?UTF-8?q?docs(data):=20=E5=85=A8=E5=B1=80=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E6=96=B9=E6=A1=88=E4=B8=8E=E5=AD=98=E6=94=BE=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E6=80=BB=E8=A1=A8=C2=A718.8+CLAUDE.md=E8=AF=AD?= =?UTF-8?q?=E6=96=99=E8=B7=AF=E5=BE=84=E8=A1=8C=20[nas]=E2=80=94=E2=80=94?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=88=B7=E3=80=8C=E4=B8=8D=E6=83=B3=E6=90=9E?= =?UTF-8?q?=E5=A5=BD=E5=87=A0=E5=A5=97=E4=B8=8B=E8=BD=BD=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E5=92=8C=E5=AD=98=E6=94=BE=E4=BD=8D=E7=BD=AE=E3=80=8D:?= =?UTF-8?q?=E4=B8=8D=E6=98=AF=E5=87=A0=E5=A5=97,=E6=98=AF=E4=B8=80?= =?UTF-8?q?=E6=9D=A1=E8=A7=84=E5=88=99=E4=B8=A4=E5=8F=B0=E6=9C=BA=E5=99=A8?= =?UTF-8?q?=3D=E6=AF=8F=E7=B1=BB=E6=95=B0=E6=8D=AE=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E6=9D=83=E5=A8=81=E6=BA=90+=E5=94=AF=E4=B8=80=E6=9D=83?= =?UTF-8?q?=E5=A8=81=E4=BD=8D=E7=BD=AE(=C2=A714.2=E6=97=A2=E5=AE=9A?= =?UTF-8?q?=E5=8E=9F=E5=88=99)+=E9=87=87=E9=9B=86=E5=8F=91=E8=B5=B7?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E8=B7=9F=E9=9A=8F=E6=9D=83=E5=A8=81=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE;=E6=95=B0=E5=80=BC=E7=B1=BB(=E8=A1=8C=E6=83=85/?= =?UTF-8?q?=E4=BC=B0=E5=80=BC/=E6=8A=A5=E8=A1=A8/=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF)=E6=9D=83=E5=A8=81=3DVPS=E6=97=A2=E6=9C=898?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=AE=B6=E6=97=8F=E4=B8=8D=E5=8F=98,?= =?UTF-8?q?=E6=96=87=E6=9C=AC=E8=AF=AD=E6=96=99=E7=B1=BB(=E6=96=B0?= =?UTF-8?q?=E9=97=BB/=E5=85=AC=E5=91=8A)=E6=9D=83=E5=A8=81=3DNAS(=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=B8=89=E7=BA=A6=E6=9D=9F=E5=94=AF=E4=B8=80=E5=86=B3?= =?UTF-8?q?=E5=AE=9A:=E4=B8=8D=E4=B8=8AVPS+=E4=B8=9C=E8=B4=A2IP=E9=99=90?= =?UTF-8?q?=E6=B5=81+=E4=B8=8D=E7=BB=91docker);=C2=A718.8=E6=94=B6?= =?UTF-8?q?=E9=BD=90=E7=8E=B0=E5=8A=BF10=E8=A1=8C=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=80=BB=E8=A1=A8(bs-daily/xt-eod/idx-eod/ak=E5=9B=9B=E9=A2=91?= =?UTF-8?q?=E7=8E=87/vintage/NAS03:00=E9=93=BE/corpus)=E5=B9=B6=E6=B3=A8?= =?UTF-8?q?=E6=98=8E=C2=A714.5=E4=B8=BA=E5=8E=86=E5=8F=B2=E5=BF=AB?= =?UTF-8?q?=E7=85=A7,=E5=AD=98=E6=94=BE=3DVPS=20data/=E6=95=B0=E5=80=BC?= =?UTF-8?q?=E6=9D=83=E5=A8=81+NAS=20/volume1/stock=E5=89=AF=E6=9C=AC+?= =?UTF-8?q?=E5=A4=A7=E4=BD=93=E7=A7=AF=E5=8E=86=E5=8F=B2+=E8=AF=AD?= =?UTF-8?q?=E6=96=99=E5=94=AF=E4=B8=80=E6=9D=83=E5=A8=81+Mac=E6=97=A0?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E6=95=B0=E6=8D=AE,corpus=E4=B8=8D=E6=98=AF?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E7=A7=8D=E6=A0=B9=3D=E6=97=A2=E6=9C=89?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=A0=B9=E6=96=B0=E5=AD=90=E7=9B=AE=E5=BD=95?= =?UTF-8?q?;CLAUDE.md=E5=85=B3=E9=94=AE=E8=B7=AF=E5=BE=84=E5=8A=A0corpus?= =?UTF-8?q?=E8=A1=8C(=E5=85=A8session=E5=8F=AF=E8=A7=81)=20[nas]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/CLAUDE.md | 1 + .../2026-07-21-data-source-fusion-design.md | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 0ecc176..ce832bc 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -134,6 +134,7 @@ NAS 上用于本项目部署的目录有两个(容器挂载源): - vnpy 源码:`/app/vnpy_v4.4.0/`(通过 `sys.path.insert(0, _VNPY_SRC)` 引用,不 pip install) - quant_trading.db(NAS 副本):`/volume1/stock/sanguo_vnpy_v2/data_backup/quant_trading.db`(26G,dbbardata 唯一行情表);⚠️旧 `/volume1/stock/sanguo_vnpy/data/` 已空(v1→v2 迁移残留)勿用;VPS 原库 `C:\sanguo_vnpy_v2\data\quant_trading.db` - A 股数据:`/volume1/stock/A股数据/`、`/volume1/stock/minute_kline/` +- 基本面语料库(新闻+公告,**NAS 唯一权威、VPS 零参与**):`/volume1/stock/corpus/`(news_meta/news_fulltext/ann_meta/ann_pdf + state;设计=融合 spec `docs/superpowers/specs/2026-07-21-data-source-fusion-design.md` §18,采集=DSM 任务 sanguo-corpus-daily 06:00 admin 宿主机直跑零 docker) - 回测结果库(NAS test 跑 backtest 生成):`/volume1/stock/sanguo_vnpy_v2/data/backtest_results.db`(config/backtest.yaml,已改 v2);VPS 侧用 `SANGUO_DB_PATH` env 覆盖、不读此 config ### 部署流程(NAS 自动 / VPS 主动触发,所有开发 session 必读) diff --git a/docs/superpowers/specs/2026-07-21-data-source-fusion-design.md b/docs/superpowers/specs/2026-07-21-data-source-fusion-design.md index 9fd2dcb..67f10fc 100644 --- a/docs/superpowers/specs/2026-07-21-data-source-fusion-design.md +++ b/docs/superpowers/specs/2026-07-21-data-source-fusion-design.md @@ -561,6 +561,33 @@ T1 宿主机 venv 自举(`--copies`,锁 cp38 兼容版本 pandas/pyarrow/request T3 DSM 任务注册(admin 身份,零 docker)+首周人工盯跑 → T4 backfill lane ①② → T5 ③④+容量闸门 → T6 验收清单执行+活文档本节补「实施终态」小节。每步一个 commit,标签 **[nas]**(VPS 零触及)。 +### 18.8 全局下载方案与存放位置总表(回应「不想搞好几套」——本节=现势唯一完整说明) + +**一条规则,不是几套方案**:每类数据**唯一权威源+唯一权威位置**(§14.2 既定原则),**采集发起位置 +跟随权威位置**——数值类(行情/估值/报表/事件面板)权威=VPS,既有任务家族不变;文本语料类(新闻/ +公告)权威=NAS(本节新增,用户三约束唯一决定:不上VPS+东财IP限流冲突+不绑docker)。两域方法论 +同款:单脚本注册表红线/慢爬防封/断点 marker/schtask 语义/容量闸门。§14.5 为 07-22 历史快照, +采集任务现势以本表为准(08-20 起 bs-eod+bs-fund 已并 sanguo-bs-daily、akshare 已拆 +daily/weekly/monthly/events 三频率+ak-vintage 自检): + +| 任务 | 机器 | 时刻 | 内容 | 权威落点 | +|---|---|---|---|---| +| sanguo-bs-daily | VPS | 18:05 | baostock 日线/15m/估值/财务 fund | dbbardata + valuation_baostock/ | +| sanguo-xt-eod | VPS | 18:40 | xtdata ETF+个股当日实时 | dbbardata | +| sanguo-idx-eod | VPS | 每日 | 指数点位 | SSE 表 | +| sanguo-ak-daily | VPS | 07:35 | akshare 低频日更 | static/ | +| sanguo-ak-events | VPS | 19:30 | A 档 15 类事件面板(时间守卫) | static/ | +| sanguo-ak-weekly | VPS | 周六 03:00 | gdhs/share_capital/top_holders/northbound | static/ | +| sanguo-ak-monthly | VPS | 首周六 | 三表全量马拉松(55h 跑道) | static/ | +| ak-vintage 自检 | VPS | 09:00 | 缺日/错标防线 | vintage_status.json | +| NAS sync 链(DSM id=2,root) | NAS | 03:00 | VPS→NAS 副本拉取(7 域) | /volume1/stock/… | +| **sanguo-corpus-daily(DSM,admin)** | **NAS** | **06:00** | **巨潮公告+东财新闻(本设计)** | **/volume1/stock/corpus/** | + +**存放位置全景**:**VPS `data/`=数值权威**(dbbardata 26G+static/+valuation_baostock/); +**NAS `/volume1/stock/`=数值副本+大体积历史+语料唯一权威**(data_backup/quant_trading.db、 +A股数据/、minute_kline/、corpus/);Mac=开发 fixture 无生产数据。corpus 不是第三种根—— +就是既有 `/volume1/stock` 数据根下的新子目录,与 CLAUDE.md「NAS 部署目录」表一致。 + ## 参考(调查来源) - xtdata 官方:https://dict.thinktrader.net/nativeApi/xtdata.html