使用 LlamaIndex Yahoo Finance 工具构建股票与财报查询 Agent

发布时间:2026/9/10 22:04:31

使用 LlamaIndex Yahoo Finance 工具构建股票与财报查询 Agent 使用 LlamaIndex Yahoo Finance 工具构建股票与财报查询 Agent【免费下载链接】llama_indexLlamaIndex is the leading document agent and OCR platform项目地址: https://gitcode.com/GitHub_Trending/ll/llama_index导读本指南以 LlamaIndex 集成包llama-index-tools-yahoo-finance为核心讲解如何将 Yahoo Finance 的股票行情、财务三大报表、分析师评级与最新新闻封装为可被 LLM Agent 直接调用的工具集。你将掌握YahooFinanceToolSpec的安装方式、六大工具的用法与返回内容、基于FunctionAgent的端到端搭建流程以及BaseToolSpec到FunctionTool的底层转换原理可直接复制到自己的金融问答应用中。工具概览YahooFinanceToolSpec 是什么YahooFinanceToolSpec是 LlamaIndex 官方集成中面向金融数据场景的工具规范类它把yfinance库的常用查询能力统一封装为 6 个可被 Agent 调用的函数工具Function Tool。类定义位于 base.py通过spec_functions声明暴露的 6 个函数名balance_sheet获取公司资产负债表income_statement获取公司利润表cash_flow获取公司现金流量表stock_basic_info获取股票基础信息价格、描述、公司名等stock_analyst_recommendations获取分析师评级stock_news获取最近新闻标题该类的设计目标是作为 Agent 中的数据加载工具见 README.md 的说明即不直接面向终端用户展示数据而是把数据以字符串形式返回给 LLM由 LLM 进行解读、汇总和回答。从源码看其底层实现非常轻量每个方法都通过yf.Ticker(ticker)构造股票对象再调用对应的yfinance属性balance_sheet、income_stmt、cashflow、info、recommendations、news最终统一返回字符串。包依赖在 pyproject.toml 中声明为pandas、yfinance0.2.36,0.3与llama-index-core0.13.0,0.15Python 版本要求3.10,4.0。安装与环境准备通过 pip 安装集成包即可pip install llama-index-tools-yahoo-finance该包会自动拉取核心依赖llama-index-core与yfinance。若在 Notebook 环境中官方示例 yahoo_finance.ipynb 使用的安装命令为pip install llama-index llama-index-tools-yahoo-finance由于最终查询需要 LLM 参与决策示例中还需配置 LLM 的 API Key以 OpenAI 为例import os os.environ[OPENAI_API_KEY] sk-your-key需要说明的适用前提yfinance依赖 Yahoo Finance 公开接口实际可用性与数据字段以该库运行时的返回为准不同 ticker 的字段覆盖度可能不同个别行如早期的资产负债表条目可能为NaN。快速开始将财务能力接入 Agent集成包提供了两步式的极简用法。首先实例化工具规范并转换成工具列表from llama_index.tools.yahoo_finance import YahooFinanceToolSpec finance_tool YahooFinanceToolSpec() finance_tool_list finance_tool.to_tool_list()然后将其注入FunctionAgent与 LLM 一起构建可对话的金融助手完整示例见 README.mdfrom llama_index.core.agent.workflow import FunctionAgent from llama_index.llms.openai import OpenAI agent FunctionAgent( toolsfinance_tool_list, llmOpenAI(modelgpt-4.1), ) print(await agent.run(What is the price of Apple stock?)) print(await agent.run(What is the latest news about Apple?))Agent 会自主判断需要调用哪个工具、传入什么 ticker再基于返回的财务数据进行回答。你也可以在实例化后直接查看工具清单确认转换结果for tool in finance_tool_list: print(tool.metadata.name)输出应为 6 个工具名balance_sheet、income_statement、cash_flow、stock_basic_info、stock_analyst_recommendations、stock_news。六大工具详解以下每个工具方法的签名与返回内容均以 base.py 源码为准入参统一为股票代码字符串ticker如AAPL、MSFT。1. balance_sheet(ticker) —— 资产负债表返回yf.Ticker(ticker).balance_sheet数据以 pandas DataFrame 组织后转成字符串。列通常为最近几个财年如 2023-09-30、2022-09-30 等行包含总资产、总负债、股东权益、现金及等价物、应收账款、存货、长期债务等科目。示例中的 AAPL 输出展示了从Total Assets到Cash And Cash Equivalents的完整科目矩阵。2. income_statement(ticker) —— 利润表返回yf.Ticker(ticker).income_stmt数据包含营收、毛利、营业利润、净利润、每股收益EPS等利润表科目同样按财年列组织用于分析公司盈利能力与增长趋势。3. cash_flow(ticker) —— 现金流量表返回yf.Ticker(ticker).cashflow数据涵盖经营活动、投资活动、筹资活动产生的现金流以及自由现金流等关键科目用于评估公司的现金流健康度。4. stock_basic_info(ticker) —— 股票基础信息返回yf.Ticker(ticker).info字典的字符串形式。这是一个信息丰富的字段集合按 docstring 描述至少包含价格price、公司描述description、公司名name实际还会包含市值、市盈率、52 周高低、行业、官网等大量元数据。适合回答Apple 股价是多少这家公司是做什么的这类问题。5. stock_analyst_recommendations(ticker) —— 分析师评级返回yf.Ticker(ticker).recommendations数据包含分析师给出的 Strong Buy、Buy、Hold、Sell、Strong Sell 等评级分布及历史变化。在 yahoo_finance.ipynb 的示例中Agent 对 AAPL 的回答展示了当前周期与 1/2/3 个月前各评级人数的对比说明该数据带时间维度可支撑评级趋势类问答。6. stock_news(ticker) —— 最新新闻遍历yf.Ticker(ticker).news列表逐条提取title字段拼接输出每个标题占一行前缀为News:。该工具只返回新闻标题不返回正文链接与发布时间适合 Agent 快速获取公司近期热点再结合上下文生成摘要。源码原理从 ToolSpec 到 FunctionTool 的转换要理解上述工具如何被 Agent 调用需要追溯到核心层的BaseToolSpec基类定义于 tool_spec/base.py。YahooFinanceToolSpec直接继承BaseToolSpec仅需两件事即可成为一个可用的工具集一是声明spec_functions列表即上面 6 个方法名二是实现这些方法。to_tool_list()负责完成转换的核心逻辑遍历spec_functions中每个函数名通过getattr(self, func_spec)拿到实例方法并依据inspect.iscoroutinefunction区分同步/异步函数调用get_metadata_from_fn_name生成ToolMetadata——其描述由函数名、函数签名和 docstring 拼接而成f{name}{signature(func)}\n{docstring}这正是 LLM 判断何时调用哪个工具的依据将每个函数包装为FunctionTool并汇总成工具列表。由此可以推断工具的可调用性直接来自这些方法的函数签名参数名ticker会成为工具入参 schema而可理解性来自 docstring。因此保持方法 docstring 清晰Agent 的选工具准确率就越高。仓库中的测试 test_tools_yahoo_finance.py 也验证了这一契约它断言YahooFinanceToolSpec的 MRO方法解析顺序中包含BaseToolSpec确保该类确实以工具规范的形式接入 LlamaIndex 工具体系。端到端示例构建 AAPL 财报问答 Agent结合 yahoo_finance.ipynb 的完整流程一个可运行的端到端链路如下# 1. 安装 # !pip install llama-index llama-index-tools-yahoo-finance # 2. 配置 LLM Key import os os.environ[OPENAI_API_KEY] sk-your-key # 3. 创建工具 from llama_index.tools.yahoo_finance.base import YahooFinanceToolSpec finance_tool YahooFinanceToolSpec() finance_tool_list finance_tool.to_tool_list() # 4. 不经过 Agent直接验证单个工具可选 print(finance_tool.balance_sheet(AAPL)) # 5. 构建 Agent 并提问 from llama_index.core.agent.workflow import FunctionAgent from llama_index.llms.openai import OpenAI agent FunctionAgent( toolsfinance_tool_list, llmOpenAI(modelgpt-4.1), ) print(await agent.run(What are the analyst recommendations for AAPL?))在示例输出中Agent 对分析师评级问题的回答会以结构化文字汇总 Strong Buy / Buy / Hold / Sell / Strong Sell 的数量并对比一个月前、两个月前、三个月前的分布变化从而给出评级整体偏积极之类的判断。这说明 Agent 不仅能取数还能对财务数据做推理和比较。适用场景与使用注意典型场景金融问答助手回答个股股价、市值、公司简介类问题走stock_basic_info财报分析让 LLM 基于三大报表解读公司的资产负债结构、盈利与现金流状况投研信息聚合结合stock_news与stock_analyst_recommendations生成个股舆情与评级快照。注意事项数据源为 Yahoo Finance 公开数据字段与时效性由上游决定不适用于需要权威实时行情的交易场景工具返回的是字符串文本LLM 需要一次性处理完整报表超大表格可能占用较多上下文可引导 Agent 只关注目标科目yfinance版本被约束在0.2.36,0.3升级需关注兼容性如需在本地复现示例请按 README.md 与 Notebook 的步骤依次执行。掌握以上内容后你可以把YahooFinanceToolSpec无缝嵌入 LlamaIndex 的任意 Agent 工作流如FunctionAgent快速获得一个具备实时金融数据检索与解读能力的智能体。【免费下载链接】llama_indexLlamaIndex is the leading document agent and OCR platform项目地址: https://gitcode.com/GitHub_Trending/ll/llama_index创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/10 21:59:31

哈尔滨可信数据交易空间:隐私计算与区块链的创新实践

1. 项目背景与核心价值 哈尔滨可信数据交易空间项目以1.8亿元投资规模引发行业关注,这标志着东北地区首个大型数据要素市场化配置基础设施的落地。作为深耕数据交易领域多年的从业者,我观察到这个项目不同于传统的数据交易平台,其创新性体现在…

2026/9/10 22:54:37

基于 GB/T 3836 标准的油气站防爆对讲机选型与通信安全方案

文章定位:技术方案类,面向油气站安全管理人员、通信运维人员,梳理油气站防爆通信的标准要求、设备选型要点、组网方案、施工验收与运维保障。 核心内容:防爆标准要求 选型技术参数 组网方案 施工验收 运维培训 应用案例 4 个…

2026/9/10 22:54:37

CANN/ge图引擎节点构建API

Build 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友…

2026/9/10 22:54:37

如何10分钟跑通CVAT标注工具:从部署到标注的完整指南

如何10分钟跑通CVAT标注工具:从部署到标注的完整指南 【免费下载链接】cvat Computer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, a…

2026/9/10 16:39:38

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/10 11:16:38

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 0:00:55

目录对比去重实战:用哈希算法精准清理重复文件

我电脑里现在还有一块换了三次机的“数据墓地”硬盘,里面存着2016年以前所有旧笔记本的完整备份。平时不觉得有什么,直到前阵子想把它整理归档,发现同一个安装包、同一批照片、同一份论文草稿,在几个不同的备份目录里反复出现。更…

2026/9/10 0:00:55

Leaflet离线地图完整Demo合集:内网部署与坐标纠偏实战

简介:这是一份面向Web GIS开发者的LeafLet离线地图示例合集,帮助开发者快速掌握离线地图从搭建到交互的完整流程。压缩包共723个文件,大小14.06MB,以319个js脚本、175个html页面和29个css样式文件为主体,配合png/svg图…

2026/9/10 0:00:55

MATLAB读取Rinex 3.02观测文件:多系统GNSS数据解析实战

简介:基于MATLAB开发的Rinex3.02版观测文件(o文件)读取代码包,面向卫星定位导航方向的学习者与研究人员,用于解决新版观测文件的数据解析、历元提取与时间转换问题。压缩包共4个文件,包含两个m脚本、一个19…

2026/9/10 12:32:02

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/10 15:49:53

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码