当前位置: 首页 > news >正文

crewai与langchain分析某公司股票是否可购买

文件

在这里插入图片描述

代码

main.py

from crewai import Crew, Process
from langchain.chat_models import ChatOpenAI
from agents import AnalysisAgents
from tasks import AnalysisTasks
import os
from dotenv import load_dotenv,find_dotenv#从 .env 文件中读取键值对,并将其加载到环境变量中
load_dotenv(find_dotenv(),override=True)
#指定LLM配置,取环境变量中的api_key和base_url
llm = ChatOpenAI(api_key=os.environ.get('API_KEY'),  base_url=os.environ.get('API_ENDPOINT'),#一般不用这个model_name="选择的大模型的名称"  
)class FinancialCrew:def __init__(self, company: str):self.company = companydef run(self):agents = AnalysisAgents(llm)tasks = AnalysisTasks()#两个agentmr_analyst = agents.market_research_analyst()cfa = agents.cfa()#两个task将任务委托给代理(agent)research = tasks.research(mr_analyst, self.company)#将搜索到的公司的资讯给分析师进行分析,传了research给analysisanalysis = tasks.analysis(cfa, research)crew = Crew(agents=[mr_analyst, cfa],tasks=[research, analysis],#使用按顺序执行任务的流程。上一个任务的结果将作为附加内容传递给下一个任务process=Process.sequential,verbose=True)result = crew.kickoff()return resultif __name__ == "__main__":print("\n\n## 欢迎来到投资顾问团队")print("-------------------------")company = input("请输入你想分析的公司名称\n")financial_crew = FinancialCrew(company)result = financial_crew.run()print("\n\n####################")print("## 如下是分析结果")print("####################\n")print(result)

agents.py

from crewai import Agent
# from tools.search import SearchToolsclass AnalysisAgents:def __init__(self, llm):self.llm = llmdef market_research_analyst(self):return Agent(llm=self.llm,role="市场研究分析师",goal="搜索公司的市场和财务状况,并按照找到的信息整理总结出公司各方面的表现和财务状况",backstory="最富经验的市场研究分析师,善于捕捉和发掘公司内在的真相,请用中文思考和行动,并用中文回复客户问题或与其他同事交流。",#使用联网搜索# tools=[SearchTools.searchInfo],#llm搜索,查的是已经训练的数据tools=[],#是否允许此代理将其任务委派给其他代理或进程,比如有两个代理market_research_analyst和cfa,如果是True则其中一个代理执行异常会交给另一个代理执行allow_delegation=False,max_iter=3,#是否打印详细的日志、输出或解释,方便看到执行过程调试verbose=True)#特许财务分析师def cfa(self):return Agent(llm=self.llm,role="特许财务分析师",goal="根据市场研究分析师搜索到的资料,重新整理并总结出公司的状况,并且提供该公司的股份是否值得买入的建议",backstory="最富经验的投资者,善于透过公司细微的变化,捕捉公司股价走向。现在你面对一生中最重要的客户,请用中文思考和行动,并用中文回复客户问题或与其他同事交流。",tools=[],allow_delegation=False,verbose=True)

tasks.py

from crewai import Task
from textwrap import dedentclass AnalysisTasks:def research(self, agent, company):return Task(description=dedent(f"""正在搜索并总结最新的{company}公司动态和新闻。特别关注最近发生的重大事件。"""),async_execution = True,agent=agent,expected_output="用列表的形式总结头5项最重要的公司新闻。")def analysis(self, agent, context):return Task(description=dedent(f"""将搜索到的信息进行分析并总结。"""),agent=agent,#research的结果传给他context = [context],expected_output="用报告的形式总结该公司的市场和走向,最终得出是否应该买入该公司股票的建议。")

requirements.txt (安装依赖)

langchain
openai
python-dotenv
crewai[tools]

效果

在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/81001.html

相关文章:

  • prtobuf的原理
  • 2.Spring MVC与WebFlux响应式编程
  • UOS+N 卡 + CUDA 环境下 X86 架构 DeepSeek 基于 vLLM 部署与 Dify 平台搭建指南
  • Nature Communications 面向形状可编程磁性软材料的数据驱动设计方法—基于随机设计探索与神经网络的协同优化框架
  • 30分钟编写十大排序算法完成
  • 施磊老师基于muduo网络库的集群聊天服务器(四)
  • 含锡废水具有显著的回收价值
  • kvm下的ceph主机启动io请求统计
  • AOSP Android14 Launcher3——RecentsView最近任务数据加载
  • Hive学习
  • 【数字图像处理】立体视觉基础(1)
  • 禁止ubuntu自动更新
  • 基于nlohmann/json 实现 从C++对象转换成JSON数据格式
  • c++内存池
  • 调整IntelliJ IDEA中当前文件所在目录的显示位置
  • 可吸收聚合物:医疗科技与绿色未来的交汇点
  • 解决IntelliJ IDEA配置文件(application.properties)中文注释变成乱码的问题
  • linux驱动---视频播放采集架构介绍
  • 2025年数字媒体设计与文化交流国际会议 (DMACE 2025)
  • 【Python进阶】VSCode Python开发完全指南:从环境配置到高效调试
  • 【数据结构和算法】5. 堆栈和队列
  • Android Retrofit原理解析
  • map和set
  • 如何让 vscode jupyter 访问 terminal 的环境变量?
  • 【医学影像 AI】基于 AI 的远程筛查 ROP 效果评价
  • UML-网络媒体教学系统顺序图深度解析
  • Springboot+Vue实现邮箱验证功能(邮箱登录+忘记密码)
  • 嵌入式:ARM公司发展史与核心技术演进
  • AtCoder 第402场初级竞赛 A~E题解
  • 【工具变量】中国服务贸易OECD-进出口相关数据(2005-2023年)