219 lines
13 KiB
Markdown
219 lines
13 KiB
Markdown
# 分红持续性研究数据产品开发规格
|
||
|
||
2026-10-21,北京时间。用户批准专项研究,并要求沉淀为基座数据。
|
||
|
||
## 目标与职责
|
||
|
||
基座为任意指定公司产出可复用的分红持续性研究。
|
||
不以股息率、ST 或交易候选资格限制基座的研究范围。
|
||
高股息初筛仍由桥执行。研究结果不修改个股质地,不进入融合断言。
|
||
PMS 与其他流程经桥消费,当前批次不接交易。
|
||
|
||
## 数据契约
|
||
|
||
每份记录保留股票代码、契约版本、研究版本、固定引用、输入指纹。
|
||
保留研究截止时刻、底层材料期、公开日期、模型名、用量和核验结果。
|
||
输入包括五年财务指标、重构现金流、分红记录、已解析年报及分红公告。
|
||
已有多视角评析作为观点来源。它不能替代公告与财务事实。
|
||
公开日未知或晚于截止日的材料隔离。原料保留,不补造历史版本。
|
||
只有日级公开日期时,明确不能证明当日盘前可得。
|
||
|
||
六项研究问题分别回答普通与特别分红、盈利持续性、支付能力、
|
||
债务或资本约束、分红政策、压力情形。每项输出支持、压力或未知。
|
||
每条判断带证据引用与原文摘录。支持与反方并存,不按模型票数表决。
|
||
模型不能新增无来源金额、概率、股息预测或买卖建议。
|
||
未核验的数字、无效引用或缺失关键材料使结论退回证据不足。
|
||
金融企业必须讨论资本约束,不能直接用工业企业自由现金流判定。
|
||
研究结论仅有“有支持”“存在压力”“证据不足”,均不是投资批准。
|
||
|
||
## 执行方式
|
||
|
||
沿用现有 brain 路由,经配置取实际模型,不写死厂商名称。
|
||
确定性取材、模型语义研究、确定性检查与发布分开。
|
||
没有足够财务与公告材料时不调用模型,保存缺口。
|
||
输入、提示词、模型配置不变时复用研究,不重复付费。
|
||
专项咨询锁防止并发重复调用。失败记录独立保存,旧完整结果可查。
|
||
新增独立研究表保存冻结输入和结构化结果,仅核对时间可更新。
|
||
查询不调用模型、不建表、不重装配。固定引用与按截止时刻查询均支持。
|
||
|
||
首版提供指定公司手工入队与批次入口,显式使用 review 队列。
|
||
接口不降级为同步模型调用。批量上限和每日调用上限均受控。
|
||
月度复查仅覆盖已登记研究的公司。每天20:35检查是否到期,
|
||
只有跨月者读材料;错开06:10、07:10及21:30行业催化。
|
||
自动复查默认关闭,部署验收后再启用。重大事件可显式提前复核。
|
||
月度材料未变时不重做研究。桥每日只接收已发布结果。
|
||
|
||
## 首批验收预判
|
||
|
||
现有材料可能不足。不得为了产出肯定结论降低证据要求。
|
||
离线用例覆盖日期边界、累计流量、重复记录、缺公告、模型编造数字、
|
||
无效引用、金融企业、模型截断、空回答重试、幂等与并发互斥。
|
||
覆盖失败保留旧版、固定引用、查询零模型、月度复用与桥缺键兼容。
|
||
用本地冻结真实材料检查输入形状,不把合成模型结果当真实研究。
|
||
基座使用离线 unittest。按 akg-verify 核对契约与五处登记。
|
||
|
||
## 撤销与交付边界
|
||
|
||
关闭专项复查开关即可停止新调用。保留已发布结果及失败审计。
|
||
本轮先完成本地代码与离线验证。部署、实际模型调用和生产判收分开记录。
|
||
四仓同步规格与交接,决定台账记入桥。服务重建遵守既有授权边界。
|
||
|
||
## 开发者参考
|
||
|
||
新增 analysis/dividend_research 包与 dividend_research_store。
|
||
表定义同步 db/postgres/init.sql,显式 init 入口建表。
|
||
源读取使用基座既有代理连接,逐表查询,不在开发机连库。
|
||
解析只读缓存,不临时解析 PDF,不绕过模型端点池。
|
||
输出引用同时包含表名或文档身份、内容指纹与材料日期。
|
||
桥以可选接口消费研究,错误与缺失分开显示,不改变研究池准入。
|
||
|
||
## 第一版实现与运行入口
|
||
|
||
新表为 dividend_research_runs。完整原料与研究结果保存为 JSON。
|
||
job_runs 单列每次检查和模型尝试。只有 checked_at 允许原位更新。
|
||
财务输入选年度和最近两期;未送入模型的季度原料仍完整保留。
|
||
文档按分红与资本约束关键词取六处节选,每处保留原文偏移。
|
||
有遗漏的相关段落明确列缺口,不声称已经通读全文。
|
||
未来与日期不明原料只留审计,不进入模型上下文。
|
||
同一分红的预案与实施分开,同阶段同日期冲突继续列待核验。
|
||
公司类型取 gp_cashflow.comp_type,不让模型将金融企业改判为工业企业。
|
||
类型与现金流字段口径依据:[供应商现金流文档](https://tushare.pro/document/2?doc_id=44)。
|
||
|
||
模型使用现有 brain 升级路由,不新增模型档位。
|
||
单次最多30720输出token,空回答至多重试一次,总额61440。
|
||
截断不重试。模型名、非敏感配置及每次使用量落账。
|
||
每日最多五次单公司模型尝试,可通过环境变量明确调整。
|
||
专项全局咨询锁串行处理。单家公司任务遇忙按分钟重试,最多三十次。
|
||
首版仍需显式指定公司提交,不会自动为全研究池付费研究。
|
||
|
||
| 入口 | 行为 |
|
||
| --- | --- |
|
||
| GET /research/dividends?codes=代码列表 | 最多200家公司,只读摘要,支持带时区asof。 |
|
||
| GET /research/dividends/{ts_code} | 读最新研究,或用ref读取固定版本。 |
|
||
| GET /research/dividends/health | 只读存储、检查与模型尝试状态。 |
|
||
| POST /admin/dividend_research?ts_code=代码 | 显式投review队列,接口不跑模型。 |
|
||
| akg.dividend_research_batch | 20:35检查月度到期,默认关闭。 |
|
||
|
||
月度开关 AKG_DIVIDEND_RESEARCH_MONTHLY_ENABLED 默认0。
|
||
调用上限 AKG_DIVIDEND_RESEARCH_DAILY_MAX 默认5。
|
||
桥的dividend_research_feed只调用GET,不自动提交模型任务。
|
||
基座未部署或暂不可用时显示专项研究不可用,不改变高股息初筛。
|
||
已有研究到月度复核期时显示待复核,不伪装为刚更新。
|
||
材料恢复为历史输入时,允许复用该固定研究。
|
||
最新与历史查询按当时已完成的核对选择,不只按首次建档时间。
|
||
后来的复查时间不能倒灌旧截止时刻。
|
||
|
||
## 2026-10-22 部署前补查
|
||
|
||
批次有失败时必须向调度报告未完成,不能只在逐票记录写失败。
|
||
到期对象按最近尝试时间轮转,失败的旧对象不能每天占满五个位置。
|
||
其余公司仍继续检查,失败对象留待下一轮,不删除既有结果。
|
||
先以离线数据库查询与混合成功失败用例核验,再部署。
|
||
上线依次核对新表、只读接口、少量真实模型、重复提交和固定查询。
|
||
通过后启用月度复查与桥08:05交易日检查。
|
||
所有模型调用仍在既有云端brain路由内,保留每日五次上限。
|
||
|
||
```bash
|
||
# 开发机 · astock-kg;预期测试全部OK,不连接数据库或模型
|
||
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=backend python3 -m unittest discover -s backend/tests -t backend
|
||
```
|
||
|
||
```bash
|
||
# 开发机 · akg-factor-bridge;预期研究及接口用例全部OK
|
||
PYTHONDONTWRITEBYTECODE=1 python3 -m unittest test_dividend_watch test_dividend_jobs test_dividend_research_feed
|
||
```
|
||
|
||
```bash
|
||
# 178基座机 · ~/project/astock-kg;代码部署后初始化,随后仅读健康
|
||
docker compose exec -T -e PYTHONPATH=/app backend python /app/scripts/dividend_research_run.py --init
|
||
docker compose exec -T -e PYTHONPATH=/app backend python /app/scripts/dividend_research_run.py --health
|
||
```
|
||
|
||
```bash
|
||
# 178基座机 · ~/project/astock-kg;上线后显式提交研究,会使用模型并写研究结果
|
||
docker compose exec -T -e PYTHONPATH=/app backend python /app/scripts/dividend_research_run.py --code 000513.SZ --enqueue
|
||
```
|
||
|
||
只有第一家真实研究完成,才能判收模型语义、用量和生产落库。
|
||
本地合成模型与读取真实原料都不能替代这个判收。
|
||
|
||
## 2026-10-22 首轮模型额度修正
|
||
|
||
09:06真实任务在16000输出token处截断,正文为空。
|
||
推理占用输出额度,不能按报告字数估计预算。
|
||
系统记失败且不发布,不自动重试,原归档保持。
|
||
参照既有个股深度评议,将单次额度改为30720,总额61440。
|
||
提示词同时约束说明、引用和反方长度,版本升为2026.10-2。
|
||
截断不重试、非截断空答最多一次重试、每日五次尝试均保持。
|
||
修正后仍需真实模型、引用校验和幂等判收。
|
||
用户已授权后续进入本序列的公司使用现有云端模型。
|
||
该授权覆盖财报、公告节选和已有评析摘要的专项研究与月度复查。
|
||
|
||
## 2026-10-22 引用失败的审计补齐
|
||
|
||
首份完整返回的研究有多处引用不匹配,程序降为未知。
|
||
原实现未保留校验前回答,无法追查被拒绝的原句。
|
||
现将model_draft作为未校验草稿留在固定版本,批量摘要不输出。
|
||
只有校验后的六项判断、风险和未知清单进入下游。
|
||
提示词明确引用必须是连续子串,不改空白标点、不加省略号。
|
||
非金融企业不强套金融监管资本要求。引用标准没有放宽。
|
||
新增无效引用留档回归,基座232项禁网测试通过。
|
||
|
||
## 2026-10-22 真实引用格式判收修正
|
||
|
||
海尔模型草稿证明,表格JSON的转义符被再次带入引用。
|
||
财务证据改为逐字段文本,数值、负号、小数精度与单位不变。
|
||
原始字段类型与全量表行仍保存在冻结输入。
|
||
公司类型从已校验原始现金流记录确定,不解析展示文本。
|
||
模型须明确满足各项所需的材料种类,反方统一放在顶层。
|
||
年份区间2027-2028不再被当作负2028;财务负数仍保留符号。
|
||
引用必须连续匹配原文的规则保持,未对模型错误做宽松替换。
|
||
新增真实反例回归后,234项离线禁网用例通过。
|
||
提示版本为2026.10-4。旧版不会被覆盖,新增研究继续占每日额度。
|
||
|
||
## 2026-10-22 现金流来源冲突与无模型重校验
|
||
|
||
真实材料中,同年重构CFO与标准合并现金流报表的经营现金净额不一致。
|
||
两路都标同一报告期,不能由模型任选一路宣称支付能力得到支持。
|
||
按报告期核对两路记录,仅允许一分钱表示精度差;不修改任一路金额。
|
||
冲突列表与材料缺口一并冻结,支付能力强制标未知。
|
||
这不是投资阈值,也不改财务重构或质地算法。
|
||
|
||
新增固定研究的无模型重校验,复用原输入与完整模型草稿。
|
||
材料编号、正文或提示版本不同则拒绝,不拿新材料冒充模型已阅读。
|
||
新校验结果另存版本,保留父引用及原模型生成时刻,模型新增用量为零。
|
||
校验指纹纳入版本,随后同材料正常复查直接复用。
|
||
旧记录及原模型尝试不删改。不存在原稿的旧版不可还原。
|
||
回归覆盖冲突、精度、未来材料、旧版不变、幂等及禁止混入新证据。
|
||
|
||
```bash
|
||
# 178基座机 · ~/project/astock-kg;固定材料重新校验并追加版本,不调用模型
|
||
docker compose exec -T -e PYTHONPATH=/app backend python /app/scripts/dividend_research_run.py --code 000513.SZ --revalidate-ref <固定引用>
|
||
```
|
||
|
||
|
||
## 2026-10-22 部署后验收结论
|
||
|
||
用户授权本研究序列后续公司调用现有云端模型,不再逐家公司询问。
|
||
授权范围为财报、公告节选与已有评析摘要,目标为api.deepseek.com。
|
||
当前实际模型deepseek-v4-pro。若以后改变发送范围或目的地,另核授权。
|
||
授权不等于自动把169家全部入队。基座仍只复查已登记公司。
|
||
|
||
基座功能ca69b4a已部署,238项本地禁网回归通过,联网尝试为零。
|
||
六份真实研究版本与五次模型尝试均已留档。
|
||
其中一次截断失败不发布,四份为模型输出,两份为无模型重新校验。
|
||
固定查询、历史截止、旧版哈希、重复重校验与正常队列复用均通过。
|
||
引用能匹配原文,不代表结论已经由人工完成投资判断。
|
||
|
||
09:43月度开关设为1,四类worker与beat同步重建。
|
||
09:50经正常review队列运行空到期批次,返回finished,结果为空。
|
||
模型尝试数保持5,验证开关由实际工作进程加载。
|
||
20:35首次自然定时尚未发生;两家公司当月已查,到期前不重复调用。
|
||
日调用上限仍为5,模型路由配置文件哈希不变。
|
||
|
||
丽珠与海尔均为证据不足。两路现金流分别有15、18处报告期金额差异。
|
||
另有最新财务材料、完整公告节选和海尔分红记录冲突待核验。
|
||
没有修改源金额、重构算法、质地结论或交易规则。
|
||
季度完整复核仍以材料实际覆盖为准,不把到期请求称为已完成。
|
||
最终固定引用、可复现入口、证据位置及回退见同名交接最新节。
|