在金融领域,快速获取相关公司的最新新闻动态对于投资决策至关重要。本文将讲解如何使用LangChain和YahooFinanceNewsTool
结合OpenAI语言模型,构建一个能够自动查询公司财经新闻的智能Agent。
技术背景介绍
随着AI技术的飞速发展,基于自然语言处理的应用在金融分析领域逐渐成为趋势。YahooFinanceNewsTool
是一个可以帮助开发者快速抓取Yahoo Finance上的新闻内容的工具,结合LangChain的Agent模块,可以实现智能化财经新闻查询和分析。
核心原理解析
- LangChain Agents: LangChain提供Agent模块,用于管理和调用工具。Agent接收用户输入,根据描述自动选择适合的工具执行任务。
- YahooFinanceNewsTool: 该工具用于抓取公司股票相关的最新新闻。输入股票代码(如MSFT、AAPL),工具会返回相应的新闻。
代码实现演示
以下代码展示了如何设置环境并使用Yahoo Finance News工具完成股票新闻查询任务。
环境配置
确保安装了yfinance
以及LangChain相关库:
%pip install --upgrade --quiet yfinance langchain langchain-community-tools langchain-openai
基础代码实现
import os
from langchain.agents import AgentType, initialize_agent
from langchain_community.tools.yahoo_finance_news import YahooFinanceNewsTool
from langchain_openai import ChatOpenAI
# 配置API Key
os.environ["OPENAI_API_KEY"] = "your-api-key"
# 初始化语言模型
llm = ChatOpenAI(temperature=0.0)
# 初始化Yahoo Finance工具
tools = [YahooFinanceNewsTool()]
# 初始化Agent
agent_chain = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
)
# 查询微软股票新闻
response = agent_chain.invoke("What happened today with Microsoft stocks?")
print(response)
结果输出
执行以上代码后,Agent会自动调用YahooFinanceNewsTool
,查询MSFT(微软)的最新新闻动态,输出类似如下的结果:
Microsoft (MSFT) closed at $328.79, with a +0.12% move from the previous day.
比较多个公司的股票动态
# 查询微软与英伟达股票动态对比
response = agent_chain.invoke("How does Microsoft feels today comparing with Nvidia?")
print(response)
如果工具未找到英伟达相关新闻,会返回类似:
'I cannot compare the sentiment of Microsoft and Nvidia as I only have information about Microsoft.'
实战应用场景
- 投资分析:快速获取股票相关新闻以辅助投资决策。
- 市场监控:实时查询多个公司股票的最新动态。
- 舆情分析工具:结合其他分析工具,可以自动生成日报或周报。
实践建议
- API配置: 选择本地支持的API服务(如
https://yunwu.ai
),提高访问稳定性。 - 扩展工具集: 可结合其他高效工具如
yFinance
用于价格趋势分析。 - 日志输出: 尝试开启
verbose=True
,以便调试Agent执行步骤。
进一步代码优化
结合国内访问稳定的服务:
import openai
client = openai.OpenAI(
base_url='https://yunwu.ai/v1', # 国内稳定访问
api_key=os.getenv("OPENAI_API_KEY")
)
通过这种方式可以持续稳定地使用Yahoo Finance News工具,避免网络波动问题。
总结
本文介绍了使用LangChain Agent与Yahoo Finance News工具结合的实战场景。从工具初始化到真实案例代码演示,帮助开发者快速掌握财经新闻智能查询技术。
如果遇到问题欢迎在评论区交流。
—END—