浙江大学提出的 Data-Copilot 框架,该框架利用 LLM Agent 技术实现金融领域的数据分析自动化。文章详细解析了框架的两个核心部分:基于大模型的 API 生成流程(包括用户请求生成、API 调用语句生成、相似 API 合并及代码生成)和基于生成 API 的任务规划执行流程(涵盖意图识别、行为规划及多种执行模式)。内容还探讨了 Python 实现示例及面临的幻觉、延迟等挑战,为构建数据分析智能体提供了技术参考。
心动瞬间1 浏览
LLM Agent 在数据分析领域的应用:Data-Copilot 框架解析
引言
随着大语言模型(LLM)技术的飞速发展,智能体(Agent)在垂直领域的应用逐渐成为研究热点。在数据分析领域,传统的 BI 工具往往依赖预设的查询逻辑,难以应对用户自然语言的复杂意图。浙江大学提出的 Data-Copilot 框架旨在通过自主工作流(Autonomous Workflow),连接海量数据与人类用户,实现从自然语言提问到数据分析结果生成的端到端自动化。
API 生成是 Data-Copilot 的基础设施层,目的是让大模型能够理解并调用特定的数据处理函数。虽然部分底层代码未完全开源,但根据论文描述,该过程可分为四个关键步骤。
1. 生成多样化的用户请求
API 的设计必须基于真实用户的提问习惯。由于用户提问依赖于现有数据能力,因此采用'数据描述 + 人工种子提问'作为上下文,利用 LLM 生成更多潜在的用户查询语句。这一步骤旨在扩充训练语料,确保后续生成的 API 能覆盖广泛的查询场景。
2. 生成 API 调用语句
将生成的用户提问输入模型,通过特定的 Prompt 指令引导 LLM 分解任务。模型需输出完成一个数据分析任务所需的多个步骤,以及每个步骤对应的 API 描述和伪代码。
API 结构定义通常遵循如下格式:
{"Interface Name":"query_stock_price","Function description":"获取指定股票在特定时间段内的价格数据","Input and Output":{"stock_code":"string","start_date":"date","end_date":"date"}}
3. 合并相似的 API 调用
随着 API 数量的增加,功能重叠不可避免。系统会将新生成的 API 与已存在的 API 配对,输入模型判断是否功能相似。例如,查询 GDP 的 API 和查询 CPI 的 API 可以合并为一个更通用的宏观经济指标查询 API。
优化建议:直接两两比对的时间开销较大。在生产环境中,建议先基于 API 描述进行离线聚类,对每个 Cluster 内部进行合并,以提高效率。
4. 为每个 API 生成对应代码
针对合并后的 API 定义,使用大模型生成具体的 Python 代码实现。Data-Copilot 主要使用 Pandas DataFrame 作为数据处理和绘图的数据交互格式。论文将工具调用分为五大类:
输入改写后的 Query,通过 Few-Shot Prompt 指导模型将其拆分成多个执行步骤。作者定义了五种任务类型:stock_task、fund_task、economic_task、visualization_task、financial_task。这种分类类似于思维链(Chain of Thought),旨在缩小 API 调用范围。
多步 API 调用
基于任务类型,系统会匹配相应的 Few-Shot Prompt,指导模型生成多步 API 调用序列,包括每一步的 API 名称、输入参数、输出预期和返回值。