研报分析助手

研报分析功能模块为 Starfish AI 专有功能,仅在 Starfish AI 授权生效后可用。

研报分析功能通过“创建任务—任务列表跟踪”的方式使用。

用户可在研报分析模块中创建任务,对行业研报进行处理,并从中提取或补充因子。

创建完成后,任务将显示在任务列表中。用户可在任务列表中查看任务执行状态、创建人、创建时间等。系统支持通过可视化方式展示任务结果,辅助用户分析因子合理性。对于执行失败的任务,可在任务列表中查看失败信息,必要时暂停任务并调整相关代码后重新执行,以提高因子生成效率。

使用前准备

在使用研报分析和因子衍生功能之前,需要配置 AI 模型和 AI 权限管理。本节重点介绍如何进行 AI 模型配置,关于 AI 权限管理的说明参见系统管理 → AI 权限配置页面。

研报分析与衍生因子功能在执行过程中所使用的 AI 模型,默认为当前用户在 AI 助手中配置的默认模型。

上述功能本身不提供单独的模型选择入口,任务执行时将直接调用 AI 助手中已设为默认的模型配置。因此,在使用研报分析或衍生因子功能之前,请先完成以下准备工作:

  1. 进入 AI 助手页面,点击设置 → 模型配置
  2. 确认当前账号下已配置可用的 AI 模型
  3. 将期望使用的模型设置为 默认模型

若未提前设置默认模型,研报分析与衍生因子任务可能会使用非预期的模型执行,或因缺少默认模型配置而无法正常运行。

建议在首次使用相关功能前,务必完成默认模型的确认与设置。

创建任务

点击研报分析助手的下拉列表的“创建任务”,进入研报分析任务创建页面。用户可在该页面完成研报上传、因子解析、数据源配置及任务参数设置等操作。

在研报分析创建任务页面的右下角展示了当前登录用户的 AI 权限使用情况及上限。

研报上传

在创建任务页面中,用户需首先上传研报文件。

  • 支持上传 PDF 格式研报文件
  • 支持自定义研报任务名称
  • 上传完成后,系统会在研报预览区域自动解析并展示 PDF 中的文字内容

用户可根据实际研究需求,对解析出的文本内容进行以下操作:

  • 对文本进行增删或修改

  • 编辑当前任务的任务名称,以便在任务列表中进行区分和管理

因子解析

点击 “因子解析” 按钮后,研报分析助手将基于研报内容自动解析潜在因子。
因子列表如上图所示,若自动解析得到的因子完整且符合研究需求,可直接使用;若存在遗漏或不符合研究目标的情况,可点击右上角的“添加因子”补充因子。

输入因子名称与对应的因子描述,即可补充因子。

在补充因子时,需要输入因子名称及对应的因子描述。通过自动解析与手动补充相结合的方式,可确保因子定义更加准确和完整。

数据源与字段配置

确认因子后,需为研报分析任务配置数据源。支持选择一个或多个数据源;也可选择添加全部库表。

系统将根据所选因子和数据源,自动解析因子评价所需的关键字段,包括:时间列、资产代码列、价格列。若系统自动识别的字段与实际情况不一致,用户可在界面中手动调整。

全部配置完成后,可创建任务。任务开始运行后,系统将根据因子公式和描述自动选择所需的数据表,无需用户额外干预。

启用知识库(RAG)增强分析能力(可选)

可选择知识库,引入 RAG(检索增强生成)机制,以提升因子生成和代码修复效果。选择知识库后,系统将在任务执行过程中自动应用以下增强策略:

因子解释增强

在生成因子解释后,系统将因子解释文本作为输入,在知识库中检索相似的因子实现说明。检索结果将作为上下文,参与首次代码生成的提示词构造。

代码错误修复增强

当代码生成过程中出现错误时,系统将使用错误信息在知识库中进行检索,获取可能的解决方案,作为上下文传入下一轮代码生成提示词。

因子结果入库(可选)

用户可选择是否将运行成功的因子结果写入数据库。若启用结果入库,需指定目标数据库表,并确保表结构满足以下字段要求:

字段名 字段类型
securityId SYMBOL / STRING
tradeTime TIMESTAMP
factorName STRING
value DOUBLE
updateTime TIMESTAMP
username SYMBOL / STRING

以下展示了使用复合分区建表的示例。同时按两个维度进行数据分区:时间维度(按研报任务成功时间的月份)和业务维度(按因子名称)。

db1 =database(, partitionType = VALUE, partitionScheme =[2025.01M]);
db2 =database(, partitionType = VALUE, partitionScheme =["factor1"]);
database(directory = 'dfs://factorFromReports', partitionType = COMPO, partitionScheme = [db1,db2], engine= `OLAP)

createPartitionedTable(dbHandle = database('dfs://factorFromReports'),table = table(1:0, ["securityId","tradeTime","factorName","value","updateTime","username"],["SYMBOL","TIMESTAMP","STRING","DOUBLE","TIMESTAMP","STRING"]),tableName = 'result',partitionColumns =["updateTime","factorName"])

这种分区方式适用于按任务执行时间检查结果或按因子名称进行因子级别管理的场景。

若业务场景更偏向于按行情时间或按任务创建人查询数据,可根据实际需求选择其他分区方案。

启用衍生因子(可选)

对于当前创建的研报因子任务,用户可选择是否启用衍生因子功能。

启用后,当研报因子任务成功完成时,系统将自动触发衍生因子任务的创建。用户可根据自身的 AI 权限配置,设置衍生因子的生成轮数。

每一轮衍生因子均基于上一轮生成结果进行推导,从而逐步生成新的因子。

参考衍生因子章节了解更多信息。

任务列表

在任务列表中,用户可查看研报分析任务及其对应因子任务的运行状态。

任务状态用于反映当前因子任务所处的执行阶段。无论任务处于何种状态,用户均可点击因子名称进入任务详情页面,查看以下信息:

  • 从研报中解析得到的因子解释
  • 因子公式
  • 自动生成的运行代码
  • 代码生成与迭代过程记录

因子任务状态

每一个因子任务在执行过程中可能处于以下状态。不同状态下,系统支持的操作有所不同。
  • 运行中:因子任务正在运行中。支持查看因子公式、因子解释、因子代码运行记录等详情。
  • 中断:因子任务被用户手动暂停。支持查看因子公式、因子解释、因子代码运行记录等详情,也支持编辑当前代码并重新启动任务。
  • 失败:因子任务在生成阶段失败,通常为 AI 请求失败。可能原因包括达到最大重试次数限制等。支持查看已成功生成的部分记录。
  • 生成评价中:系统已完成因子生成,正在进入因子评价阶段。支持查看因子假设、因子公式、因子解释、因子代码的运行记录、最终结论等任务详情。
  • 因子函数生成失败:在因子评价任务中发现因子函数未能成功运行。支持查看因子假设、因子公式、因子解释、因子代码的运行记录、最终结论等任务详情。可以重启因子任务(状态将变更为“运行中”);也支持修改最后一次生成的代码并重新启动任务。
  • 评价任务失败:因子评价阶段运行失败。通常发生在执行 alphalens 评价过程中,常见原因包括: 因子值为空、因子表字段不符合要求、评价数据源与因子表时间不匹配、因子分组失败等。支持查看因子假设、因子公式、因子解释、因子代码的运行记录、最终结论等任务详情。支持修改最后一次生成的代码并重新启动任务。
  • 成功:因子生成与评价流程均执行成功。支持查看因子假设、因子公式、因子解释、因子代码的运行记录、因子评价结果、创建衍生因子等。

任务结果

当因子任务全部执行完成后,任务列表中的状态栏将展示最终执行结果。

  • 成功:表示因子代码生成与因子评价均已通过。系统将返回最终可用的因子代码,并给出评价结论,同时以可视化方式展示因子评价结果。
  • 评价任务失败 / 因子函数生成失败:造成失败的原因通常有以下几点:
    • 数据源缺失
    • 因子定义不清晰
    • 字段配置不匹配

    用户可进入任务详情页面,点击查看错误信息,获取具体报错内容并进行针对性调整。

代码调整

在因子任务运行过程中,如用户在任务详情页面中发现自动生成的代码仍存在优化空间,可进行人工干预,具体操作包括:

  1. 手动暂停当前因子任务
  2. 对自动生成的代码进行修改
  3. 提交修改并重新启动任务

该机制为研究人员提供了灵活的调整能力。在实际应用中,当研究人员基于专业经验判断生成的代码需要优化时,可及时进行干预,从而提升因子评价结果的可靠性和研报分析的整体质量。