tradingSystem/docs/分红持续性研究数据产品开发规格_2026-10-21.md

13 KiB
Raw Blame History

分红持续性研究数据产品开发规格

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,不让模型将金融企业改判为工业企业。 类型与现金流字段口径依据:供应商现金流文档。

模型使用现有 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路由内,保留每日五次上限。

# 开发机 · astock-kg;预期测试全部OK,不连接数据库或模型
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=backend python3 -m unittest discover -s backend/tests -t backend
# 开发机 · akg-factor-bridge;预期研究及接口用例全部OK
PYTHONDONTWRITEBYTECODE=1 python3 -m unittest test_dividend_watch test_dividend_jobs test_dividend_research_feed
# 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
# 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与标准合并现金流报表的经营现金净额不一致。 两路都标同一报告期,不能由模型任选一路宣称支付能力得到支持。 按报告期核对两路记录,仅允许一分钱表示精度差;不修改任一路金额。 冲突列表与材料缺口一并冻结,支付能力强制标未知。 这不是投资阈值,也不改财务重构或质地算法。

新增固定研究的无模型重校验,复用原输入与完整模型草稿。 材料编号、正文或提示版本不同则拒绝,不拿新材料冒充模型已阅读。 新校验结果另存版本,保留父引用及原模型生成时刻,模型新增用量为零。 校验指纹纳入版本,随后同材料正常复查直接复用。 旧记录及原模型尝试不删改。不存在原稿的旧版不可还原。 回归覆盖冲突、精度、未来材料、旧版不变、幂等及禁止混入新证据。

# 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处报告期金额差异。 另有最新财务材料、完整公告节选和海尔分红记录冲突待核验。 没有修改源金额、重构算法、质地结论或交易规则。 季度完整复核仍以材料实际覆盖为准,不把到期请求称为已完成。 最终固定引用、可复现入口、证据位置及回退见同名交接最新节。