让 AI 帮你“看财报”很容易,让它给出的每个结论都能回到原文则难得多。可靠的研究助手不应该自由回答公司事实,而应先找到官方披露,再根据证据生成有限答案。
一、先限定助手能回答什么
适合的任务包括:列出收入分部、比较两个报告期、定位风险因素变化、提取资本开支与现金流、整理管理层对业务变化的解释。不适合直接交给模型的任务包括预测股价、判断买卖点、推断未披露事项和把会计指标自动变成个性化建议。
问题模板可以固定为:
{
"company": "公司唯一标识",
"question": "本期经营现金流下降的已披露原因是什么?",
"asOf": "研究截止时间",
"allowedDocumentTypes": ["annual-report", "quarterly-report", "announcement"]
}
asOf 是防止未来信息泄漏的第一道门。系统只能检索在该时点已经公开的文档版本。
二、建立可信数据入口
美国上市公司可从 SEC EDGAR 的 submissions 与 XBRL APIs 获取申报历史和结构化财务事实;SEC 说明这些公开数据接口无需 API Key,但自动访问仍要遵守其访问政策。A 股研究应从巨潮资讯、交易所或公司指定披露渠道取得原文,并保存公告时间、证券代码、公告编号和原始链接。
每份文档至少保存:
{
"documentId": "source-company-accession",
"companyId": "稳定公司标识",
"documentType": "annual-report",
"publishedAt": "带时区的首次公开时间",
"periodStart": "报告期开始",
"periodEnd": "报告期结束",
"sourceUrl": "官方原文",
"sha256": "原文件摘要",
"retrievedAt": "抓取时间"
}
同一公告可能出现 HTML、PDF、XBRL 和更正版。不要用文件名当唯一标识,也不要让更正版静默覆盖历史版本。
三、按财务语义切分,而不是机械截字
年报适合按标题、表格和页码切分。一个块应保留章节路径,例如“管理层讨论 > 流动性 > 经营现金流”,并附带页码、表格标题与单位。跨页表格需要先还原表头,否则“12.6”脱离“亿元、同比、报告期”后没有意义。
检索可采用关键词与向量的混合排序:证券简称、会计科目和公告编号更适合关键词匹配,解释性段落适合语义检索。最终重排时加入文档类型、发布日期和报告期过滤。
四、把回答拆成事实、解释和未知
推荐的结构化输出:
{
"answer": "基于已检索披露的简短回答",
"facts": [{
"claim": "事实陈述",
"value": null,
"unit": null,
"period": null,
"documentId": "...",
"page": 42,
"quote": "最短必要原文"
}],
"interpretations": ["研究者仍需验证的解释"],
"unknowns": ["披露中未找到的信息"],
"confidence": "high|medium|low"
}
数字提取必须校验单位、币种、期间、单季或累计、合并或母公司口径。对于同名指标,优先采用结构化财务事实,再用原文表格复核;若两个来源不一致,应展示冲突而不是自动挑一个。
五、增加引用核验器
生成答案后逐条检查:引用文档是否早于 asOf,引用片段是否包含关键主体与数字,答案中的数值是否逐字出现在证据或可由明确公式计算,原文是否被否定词改变含义。
还可以要求第二个模型只做“证据是否支持主张”的判定,但最终仍要保留确定性校验。例如金额和百分比用程序解析,页码和文档哈希由系统填入,模型不能自造。
六、用一组反例验收
测试集至少覆盖:同名公司、币种变化、单位从万元变为亿元、报告期重述、更正公告、扫描版 PDF、跨页表格、负数括号、同比基数为负、问题超出披露范围。优质助手应在证据不足时拒绝回答。
上线前记录检索召回率、引用正确率、数值一致率和拒答准确率。回答流畅度不能替代这些指标。完整学习顺序可先看AI 股票应用路线图,完成这一层后,再把文档事件接入新闻与公告事件流水线,形成持续监控。