大数跨境

LangGraph实战:手把手教你打造AI股票分析智能体

LangGraph实战:手把手教你打造AI股票分析智能体 慧测
2026-01-12
1

·  ·  ·

图片

但问智能出品

图片
  • 免费获取源码

    huice666/danwen668

  • 原创课程大纲

    https://huicewang.com/testing

  • B 站系列视频

    https://space.bilibili.com/1037858964

内容很长,收藏起来,未来可能用得上哦  

只需300行代码,让AI成为你的私人投资顾问!

最近,很多朋友都在问:有没有一种方法,能让AI帮我分析股票,给出专业的投资建议?

答案是肯定的!今天我们就用 LangGraph 框架,亲手搭建一个专业的股票分析智能体

这个智能体能做到什么?

·特斯拉和苹果股票,哪个更值得投资?

·帮我看一下小米最近的股价走势

一、核心原理:ReAct架构让AI“思考

我们的智能体基于 ReAct(推理+行动) 架构:

1. 推理:大模型分析用户问题,决定需要什么信息

2. 行动:调用相应的工具获取数据

3. 再推理:结合数据给出最终答案

比如当用户问特斯拉和苹果股票相比如何时:

text用户问题 → AI分析需要两家公司数据 → 调用工具获取股票代码 → 调用工具获取详细数据 → AI分析比较 → 给出建议

二、两大核心工具的实现

工具1:智能获取股票代码

很多人不知道,苹果公司的股票代码不是APPLE,而是AAPL。我们的第一个工具就是解决这个问题:

pythonimport requests@tooldef get_stock_symbol(company_name:str)->str:"""根据公司名称获取股票代码"""   api_key ="你的API密钥"   url =f"https://financialmodelingprep.com/api/v3/search?query={company_name}&apikey={api_key}"  response =requests.get(url) data = response.json()   
if data and len(data)>0   return data[0]['symbol']  # 返回第一个匹配的股票代码    return"未找到对应股票代码"工具

2:获取全面的股票数据

我们使用专业的 yfinance 库来获取丰富的数据:

pythonimport yfinance as yf@tool  defget_stock_data(symbol:str)->dict: """获取股票详细数据""" stock = yf.Ticker(symbol)  # 获取基本信息 info = stock.info  # 获取最近一个月的历史数据 history = stock.history(period="1mo")  return{ "基本信息":{ "公司名称": info.get('longName',''), "当前价格": info.get('currentPrice',''), "市值": info.get('marketCap',''), "市盈率": info.get('trailingPE',''), "股息率": info.get('dividendYield','') }, "近期表现":{ "开盘价": history['Open'].tolist(), "收盘价": history['Close'].tolist(), "成交量": history['Volume'].tolist() } }

三、LangGraph智能体构建全流程

步骤1:创建智能体节点

pythonfrom langgraph.graph import StateGraph# 定义工作流状态classAgentState(TypedDict): question:str      # 用户问题 context: List[str]# 上下文信息 response:str      # 最终回复# 创建助理节点assistant_node = StateGraph(AgentState)@assistant_node.nodedefassistant(state: AgentState)-> AgentState: """处理用户消息并决定是否调用工具"""  # 系统提示词 - 定义AI的角色和能力 system_prompt =""" 你是一位专业的金融助手,专注于股票市场的分析和投资策略。  你的任务: 1. 理解用户关于股票的问题 2. 根据需要调用工具获取数据 3. 基于数据给出专业、客观的分析  回复格式: - 先总结关键数据 - 然后给出分析 - 最后提供建议(注明风险提示)"""  # 调用大模型(这里以DeepSeek为例) response = chat_model.invoke([ SystemMessage(system_prompt),HumanMessage(state['question']) ])  return{"response": response.content}步骤

2:构建工具调用系统

python# 将所有工具打包tools =[get_stock_symbol, get_stock_data]tool_node = ToolNode(tools)# 添加到图中assistant_node.add_node("assistant", assistant)assistant_node.add_node("tools", tool_node)# 设置条件边:决定是否调用工具defroute_tools(state): ifhasattr(state,'tool_calls')and state.tool_calls: return"tools"  # 需要调用工具 return"__end__"    # 直接结束assistant_node.add_conditional_edges( "assistant", route_tools)# 从工具节点返回助理节点assistant_node.add_edge("tools","assistant")步骤

3:编译并运行

python# 编译图graph = assistant_node.compile()# 运行智能体result = graph.invoke({ "question":"特斯拉和苹果股票相比如何?哪个更适合保守型投资者?"})print(result["response"])

四、实际运行效果

当我们询问特斯拉和苹果股票相比如何时,智能体会:

1. 第一步:识别出需要特斯拉和苹果两家公司的数据

2. 第二步:调用 get_stock_symbol 获取股票代码(TSLAAAPL

3. 第三步:调用 get_stock_data 获取详细财务数据

4. 第四步:综合分析后给出建议

典型的输出结果:

text📊股票对比分析报告一、关键数据对比:- 特斯拉(TSLA) • 当前价格:$245.30 • 市盈率:78.5倍 • 市值:$7800亿 • 月波动率:12.3%- 苹果(AAPL)   • 当前价格:$185.20 • 市盈率:28.9倍 • 市值:$2.9万亿 • 月波动率:8.7%二、分析要点:1. 成长性:特斯拉增长更快但波动大2. 稳定性:苹果现金流强劲,波动较小3. 估值:苹果估值相对合理,特斯拉溢价较高三、投资建议:✅保守型投资者:建议苹果,稳定性好,股息可靠✅成长型投资者:可考虑特斯拉,但需承受较高波动⚠️ 风险提示:股市有风险,投资需谨慎。以上分析仅供参考。

五、如何扩展这个系统?

这个基础框架可以轻松扩展:

1. 增加更多分析维度

python# 添加新闻情绪分析工具@tooldefget_news_sentiment(symbol:str): """获取近期新闻情绪""" # 添加技术指标分析  @tooldefget_technical_indicators(symbol:str): """计算RSI、MACD等技术指标"""2. 

加入可视化功能

pythonimport matplotlib.pyplot as pltdefplot_stock_comparison(data1, data2): """绘制股票对比图表""" fig, axes = plt.subplots(2,1, figsize=(10,8))  # 绘制价格走势对比 axes[0].plot(data1['history']['Close'], label='特斯拉') axes[0].plot(data2['history']['Close'], label='苹果') axes[0].set_title('价格走势对比')  # 绘制成交量对比 axes[1].bar(range(len(data1['history'])), data1['history']['Volume'], alpha=0.5) axes[1].bar(range(len(data2['history'])), data2['history']['Volume'], alpha=0.5)  return fig3. 

实现个性化记忆

python# 记录用户偏好user_preferences ={ "risk_tolerance":"conservative",  # 风险承受能力 "investment_style":"growth",      # 投资风格 "watchlist":["AAPL","TSLA"]      # 关注列表}

六、为什么选择LangGraph

相比其他方案,LangGraph有三大优势:

1. 灵活可控:每一行代码你都知道在做什么

2. 易于扩展:像搭积木一样添加新功能

3. 生产就绪:支持复杂的工作流和状态管理

七、获取完整源码

想要亲自动手试试吗?

📁完整项目源码包含:

·完整的Python实现代码(300行左右)

·API配置指南

·前端界面代码(Streamlit实现)

·扩展建议和优化方案

👉获取方式
添加微信:huice666  danwen668,备注股票分析源码

下期预告

下次我们将深入讲解 《带记忆的智能体:让AI越用越聪明》

·短期记忆 vs 长期记忆

·如何让AI记住你的投资偏好

·实现个性化投资建议系统

💡记住:技术只是工具,真正的价值在于你用它来解决什么问题。这个股票分析智能体不仅是一个项目,更是一个理解AI如何改变传统行业的窗口。

动手试试吧,也许你的第一个AI产品就从这里开始!

免责声明:本文所示案例仅供技术学习交流,不构成任何投资建议。股市有风险,投资需谨慎。

图片
huice666
danwen668

【声明】内容源于网络
0
0
慧测
专注人工智能前沿技术落地企业实战应用
内容 404
粉丝 0
慧测 专注人工智能前沿技术落地企业实战应用
总阅读104
粉丝0
内容404