# 分红持续性研究数据产品开发规格 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 升级路由,不新增模型档位。 单次最多16000输出token,空回答至多重试一次,总额32000。 截断不重试。模型名、非敏感配置及每次使用量落账。 每日最多五次单公司模型尝试,可通过环境变量明确调整。 专项全局咨询锁串行处理。单家公司任务遇忙按分钟重试,最多三十次。 首版仍需显式指定公司提交;不会自动为164家公司付费研究。 | 入口 | 行为 | | --- | --- | | 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,不自动提交模型任务。 基座未部署或暂不可用时显示专项研究不可用,不改变高股息初筛。 已有研究到月度复核期时显示待复核,不伪装为刚更新。 材料恢复为历史输入时,允许复用该固定研究。 最新与历史查询按当时已完成的核对选择,不只按首次建档时间。 后来的复查时间不能倒灌旧截止时刻。 ```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 ``` 只有第一家真实研究完成,才能判收模型语义、用量和生产落库。 本地合成模型与读取真实原料都不能替代这个判收。