搜索
首页科技周边人工智能Langchain与Crewai vs Autogen建立数据分析代理

在当今的数据驱动世界中,组织依靠数据分析师来解释复杂的数据集,发现可行的见解和推动决策。但是,如果我们可以使用AI提高此过程的效率和可扩展性怎么办?输入数据分析代理,以自动化分析任务,执行代码并自适应响应数据查询。 Langgraph,Crewai和Autogen是用于建造AI代理的三个流行框架。我们将在本文中使用并比较这三个,以构建简单的数据分析代理。

目录

  • 数据分析代理的工作
  • 用Langgraph构建数据分析代理
    • 先决条件
  • 用langgraph构建数据分析代理的步骤
    • 1。导入必要的库。
    • 2。让我们定义状态。
    • 3。定义LLM和代码执行函数,并将功能绑定到LLM。
    • 4。定义代理回复的函数,并将其添加为图表的节点。
    • 5。定义工具节并将其添加到图表中。
    • 6.让我们还添加内存,以便我们可以与代理商聊天。
    • 7。编译并显示图。
    • 8。现在我们可以开始聊天。由于我们添加了内存,因此我们将为每个对话一个唯一的线程_id,并在该线程上启动对话。
  • 用Crewai建立数据分析代理
    • 1。导入必要的库。
    • 2。我们将构建一个代理,用于生成代码,另一个用于执行该代码。
    • 3。要执行代码,我们将使用PythonRepl()。将其定义为CREWAI工具。
    • 4。定义执行代理和任务,并访问repl and fileReadTool()
    • 5。用代理和相应的任务构建工作人员。
    • 6。使用以下输入运行船员。
  • 用自动源建立数据分析代理
    • 1。导入必要的库。
    • 2。定义代码执行程序和使用代码执行程序的代理。
    • 3。定义一个用自定义系统消息编写代码的代理。
    • 4。定义解决和启动聊天的问题。
    • 5。我们还可以使用此代码打印我们及其答案(如果需要)的问题。
  • Langgraph vs Crewai vs Autogen
  • 常见问题

数据分析代理的工作

数据分析代理将首先从用户中获取查询并生成代码以读取文件并分析文件中的数据。然后,生成的代码将使用Python Repl工具执行。代码的结果发送回代理。然后,代理分析从代码执行工具中收到的结果,并回复了用户查询。 LLM可以生成任意代码,因此我们必须在本地环境中仔细地执行LLM生成的代码。

用Langgraph构建数据分析代理

如果您是这个主题的新手或希望掌握您对Langgraph的了解,我建议这篇文章:Langgraph是什么?

先决条件

在构建代理之前,请确保您拥有必要的API键。

加载.ENV文件,并带有所需的API键。

来自dotenv import load_dotenv

load_dotenv(./ env)

需要关键库

Langchain - 0.3.7

兰链实验 - 0.3.3

Langgraph - 0.2.52

CREWAI - 0.80.0

Crewai-Tools - 0.14.0

Autogen-Agentchat - 0.2.38

现在我们都设定了,让我们开始建立代理商。

用langgraph构建数据分析代理的步骤

1。导入必要的库。

导入大熊猫作为pd
从ipython.display导入图像,显示
从输入导入列表,文字,可选,打字,注释
来自langchain_core.tools导入工具
来自langchain_core.messages导入工具
来自langchain_exeperiment.utilities导入pythonrepl
来自langchain_openai进口chatopenai
摘自langgraph.graph Import stategraph,开始,结束
来自langgraph.graph.message导入add_messages
来自langgraph.prebuilt导入工具节,tools_condition
来自langgraph.checkpoint.memory Import MemorySaver

2。让我们定义状态。

班级状态(键入):
	消息:注释[list,add_messages]
graph_builder = stategraph(状态)

3。定义LLM和代码执行函数,并将功能绑定到LLM。

 llm = chatopenai(型号=“ gpt-4o-mini”,温度= 0.1)

@工具
def python_repl(代码:注释[str,“ fileName” fileName旨在读取“来自”]):
    “”“使用它执行从文件中读取Python代码。如果要查看值的输出,
    确保您正确阅读了代码
    您应该用``打印(...)'打印出来。用户可以看到这一点。”“”

    尝试:
        结果= pythonrepl()。运行(代码)
        打印(“结果代码执行:”,结果)
    除了baseexception作为e:
        返回f“无法执行。错误:{repr(e)}”
    返回f“执行:\ n``python \ n {code} \ n`````

llm_with_tools = llm.bind_tools([python_repl])

4。定义代理回复的函数,并将其添加为图表的节点。

 DEF聊天机器人(状态:状态):
    返回{“消息”:[llm_with_tools.invoke(state [“ message”])]}}
    
graph_builder.add_node(“代理”,聊天机器人)

5。定义工具节并将其添加到图表中。

 code_execution = toolnode(工具= [python_repl])

graph_builder.add_node(“工具”,code_execution)

如果LLM返回工具调用,我们需要将其路由到工具节点。否则,我们可以结束它。让我们定义一个路由函数。然后,我们可以添加其他边缘。

 DEF ROUTE_TOOLS(状态:状态):
    ”“”
    如果最后一条消息,则在条件_EDDED中路由到工具节
    有工具调用。否则,路线到达末端。
    ”“”
    如果IsInstance(状态,列表):
        ai_message = state [-1]
    elif消息:= state.get(“消息”,[]):
        ai_message =消息[-1]
    别的:
        提高ValueError(f“在输入状态中未找到to tool_edge:{state}”)
    如果hasattr(ai_message,“ tool_calls”)和len(ai_message.tool_calls)> 0:
        返回“工具”
    返回结束
    
graph_builder.add_conditional_edges(
    “代理人”,
    Route_tools,
    {“工具”:“工具”,end:end},
)

graph_builder.add_edge(“工具”,“代理”)

6.让我们还添加内存,以便我们可以与代理商聊天。

内存= MemorySaver()

graph = graph_builder.compile(checkpointer =内存)

7。编译并显示图。

 graph = graph_builder.compile(checkpointer =内存)

display(图像(graph.get_graph()。draw_mermaid_png()))

8。现在我们可以开始聊天。由于我们添加了内存,因此我们将为每个对话一个唯一的线程_id,并在该线程上启动对话。

 config = {“ configurable”:{“ thread_id”:“ 1”}}

def stream_graph_updates(user_input:str):
    事件= graph.stream(
        {“消息”:[(“用户”,user_input)]},config,stream_mode =“ values”
    )
    对于活动中的事件:
        事件[“消息”] [ -  1] .pretty_print()
        
而真:
    user_input =输入(“用户:”)
    如果在[“退出”,“退出”,“ q”]中使用USER_INPUT.LOWER():
        打印(“再见!”)
        休息
    stream_graph_updates(user_input)

循环运行时,我们首先提供文件的路径,然后根据数据提出任何问题。

输出将如下:

Langchain与Crewai vs Autogen建立数据分析代理

由于我们包含了内存,因此我们可以在聊天中的数据集上提出任何问题。代理将生成所需的代码,并将执行代码。代码执行结果将发送回LLM。一个示例如下所示:

Langchain与Crewai vs Autogen建立数据分析代理

另请阅读:如何使用langgraph创建个性化的新闻摘要代理

用Crewai建立数据分析代理

现在,我们将使用CREWAI进行数据分析任务。

1。导入必要的库。

来自Crewai进口代理,任务,机组人员
来自Crewai.Tools导入工具
来自crewai_tools import dimentoreReadTool,fileReadTool
来自langchain_exeperiment.utilities导入pythonrepl

2。我们将构建一个代理,用于生成代码,另一个用于执行该代码。

 coding_agent =代理(
	角色=“ Python开发人员”,
	目标=“工艺精心设计和经过思考的代码来回答给定的问题”,
	BackStory =“”“您是一位高级Python开发人员,在软件及其最佳实践方面拥有丰富的经验。
            	您有编写干净,高效和可扩展代码的专业知识。 ”“”,
	llm ='gpt-4o',
	human_input = true,
)
coding_task =任务(
	描述=“”“写代码以回答给定的问题
                	将代码输出分配给“结果”变量
                    	问题:{问题},
                    	”“”,
	Excection_output =“代码要获得问题的结果。代码的输出应分配给'结果'变量',
	代理= coding_agent
)

3。要执行代码,我们将使用PythonRepl()。将其定义为CREWAI工具。

 @Tool(“ repl”)
DEF REPL(代码:Str) - > str:
	”“”“对执行python代码有用”
	返回pythonrepl()。运行(命令=代码)

4。定义执行代理和任务,并访问repl and fileReadTool()

 executing_agent = agent(
	角色=“ python executor”,
	目标=“运行接收的代码以回答给定的问题”,
	BackStory =“”“您是一名Python开发人员,在软件及其最佳实践方面拥有丰富的经验。
            	“您可以有效地执行代码,调试和优化Python解决方案。”“,”,
	llm ='gpt-4o-mini',
	human_input = true,
	工具= [repl,filereadtool()]
)
executing_task =任务(
	description =“”“执行代码以回答给定的问题
                	将代码输出分配给“结果”变量
                    	问题:{问题},
                    	”“”,
	Expectig_output ='问题的结果',
	代理= executing_agent
)

5。用代理和相应的任务构建工作人员。

分析_CREW = CREW(
	代理= [coding_agent,recuting_agent],
	tasks = [coding_task,recuting_task],
	冗长= true
)

6。使用以下输入运行船员。

 inputs = {'问题':“”“读取此文件并返回列名并找到平均年龄
   “/home/santhosh/projects/code/langgraph/gym_members_exercise_tracking.csv”“,}

结果= Analysis_crew.kickoff(输入=输入)

打印(result.raw)

这是输出的外观:

Langchain与Crewai vs Autogen建立数据分析代理

另请阅读:在没有CREWAI的无代码的情况下,即时建立LLM代理商

用自动源建立数据分析代理

1。导入必要的库。

来自自动进口的对话
从Autogen。编码导入LocalCommandlineCodeexeexecutor,DockerCommandlineCodeeXecutor

2。定义代码执行程序和使用代码执行程序的代理。

 opecutor = localcommandlinecodeexecutor(
	超时= 10,每个代码执行的#及时在几秒钟内执行。
	work_dir ='。/data',#使用目录存储代码文件。
)
code_executor_agent = conversableAgent(
	“ code_executor_agent”,
	llm_config = false,
	code_execution_config = {“ executor”:executor},
	human_input_mode =“始终”,
)

3。定义一个用自定义系统消息编写代码的代理。

从https://microsoft.github.io/autogen/0.2/docs/tutorial/code-executors/获取Code_writer系统消息。


code_writer_agent = conversableAgent(
    “ code_writer_agent”,
    system_message = code_writer_system_message,
    llm_config = {“ config_list”:[{“ model”:“ gpt-4o-mini”}]},},
    code_execution_config = false,
)

4。定义解决和启动聊天的问题。

问题=“”“”在路径'/home/santhosh/projects/code/langgraph/gym_members_exercise_tracking.csv'上读取文件
        	并打印人民的平均年龄。”“”

chat_result = code_executor_agent.initiate_chat(
	code_writer_agent,
	消息=问题,
)

聊天开始后,我们还可以在上述数据集上提出任何后续问题。如果代码遇到任何错误,我们可以要求修改代码。如果代码很好,我们只需按“ Enter”继续执行代码。

5。我们还可以使用此代码打印我们及其答案(如果需要)的问题。

有关chat_result.chat_history中的消息:
    如果消息['角色'] =='助手':
        如果“ exitCode”未在消息['content']中:
            打印(消息['content'])
            打印('\ n')
            
    别的:
        如果在消息['content']中的“终止”:        
            打印(消息['content'])
            打印(” -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - ”)

这是结果:

Langchain与Crewai vs Autogen建立数据分析代理

另请阅读:使用Autogen建立多代理聊天机器人的动手指南

Langgraph vs Crewai vs Autogen

现在,您已经学会了使用所有3个框架来构建数据分析代理,让我们探索它们之间的差异,在代码执行方面:

框架 关键功能 优势 最适合
Langgraph - 基于图的结构(节点代表代理/工具,边缘定义相互作用)
- 与PythonRepl的无缝集成
- 高度灵活地创建结构化的多步骤工作流程
- 安全有效的代码执行,并跨任务保存内存
需要清晰,可自定义的工作流程的复杂,流程驱动的分析任务
CREWAI - 以协作为中心
- 与预定义的角色并行工作的多个代理
- 与Langchain工具集成
- 面向任务的设计
- 非常适合团队合作和角色专业化
- 使用PythonRepl支持安全可靠的代码执行
协作数据分析,代码审核设置,任务分解和基于角色的执行
自动基因 - 动态和迭代代码执行
- 可说明互动执行和调试的代理
- 内置聊天功能
- 自适应和对话工作流程
- 专注于动态互动和调试
- 快速原型和故障排除的理想
快速原型制作,故障排除以及任务和需求经常发展的环境

结论

在本文中,我们演示了如何使用Langgraph,Crewai和Autogen构建数据分析代理。这些框架使代理能够生成,执行和分析代码以有效地解决数据查询。通过使重复任务自动化,这些工具使数据分析更快,更可扩展。模块化设计允许根据特定需求进行自定义,使其对数据专业人员很有价值。这些代理展示了AI的潜力简化工作流并轻松从数据中提取见解。

要了解有关AI代理商的更多信息,请查看我们的独家代理AI先驱计划!

常见问题

Q1。使用Langgraph,Crewai和Autogen等AI框架进行数据分析的主要好处是什么?

答:这些框架可自动化代码生成和执行,从而更快地数据处理和洞察力。他们简化了工作流程,减少手动努力并提高数据驱动的任务的生产力。

Q2。这些数据分析代理可以处理多个数据集或复杂的查询吗?

答:是的,可以定制代理来通过集成适当的工具并调整其工作流程来处理各种数据集和复杂的分析查询。

Q3。执行LLM生成的代码时应采取哪些预防措施?

A. LLM生成的代码可能包括错误或不安全的操作。始终在受控环境中验证代码,以确保执行前的准确性和安全性。

Q4。内存集成如何增强这些数据分析代理?

答:内存集成使代理可以保留过去相互作用的上下文,从而在复杂或多步查询中实现自适应响应和连续性。

Q5。这些数据分析代理可以自动化哪些类型的任务?

答:这些代理可以自动化任务,例如读取文件,执行数据清洁,生成摘要,执行统计分析并回答有关数据的询问。

以上是Langchain与Crewai vs Autogen建立数据分析代理的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
SQL Grant命令SQL Grant命令Apr 22, 2025 am 09:45 AM

介绍 数据库安全性取决于管理用户权限。 SQL的赠款命令对此至关重要,使管理员可以为不同的用户或角色分配特定的访问权限。本文解释了格兰特命令,其语法,c

什么是python闲置?什么是python闲置?Apr 22, 2025 am 09:43 AM

导言 Python IDLE 是一款功能强大的工具,可轻松开发、调试和运行 Python 代码。其交互式 shell、语法高亮显示、自动完成和集成调试器等功能,使其成为各个经验水平的程序员的理想选择。本文将概述其功能、设置和实际应用。 概述 了解 Python IDLE 及其开发优势。 浏览和使用 IDLE 界面的主要组件。 在 IDLE 中编写、保存和运行 Python 脚本。 使用语法高亮显示、自动完成和智能缩进等功能。 使用 IDLE 集成的调试器有效调试 Python 代码。 目录

Python&#039:S最大整数值Python&#039:S最大整数值Apr 22, 2025 am 09:40 AM

Python:掌握大整数 - 综合指南 Python的出色功能扩展到处理任何大小的整数。尽管这具有很大的优势,但了解潜在的局限性至关重要。本指南提供了DETA

9个免费的斯坦福大学AI课程9个免费的斯坦福大学AI课程Apr 22, 2025 am 09:35 AM

介绍 人工智能(AI)正在彻底改变行业,并解锁各种领域的前所未有的可能性。 斯坦福大学是AI研究领域的领先机构,提供了大量免费的在线课程,以帮助您

什么是meta段的任何模型(SAM)?什么是meta段的任何模型(SAM)?Apr 22, 2025 am 09:25 AM

Meta的细分市场模型(SAM):图像分割的革命性飞跃 Meta AI揭开了SAM(段的任何模型),这是一种开创性的AI模型,旨在彻底改变计算机视觉和图像细分。 本文深入研究山姆

如何使用DALL-E 3 API进行图像生成? - 分析Vidhya如何使用DALL-E 3 API进行图像生成? - 分析VidhyaApr 22, 2025 am 09:20 AM

Openai的Dall-E 3:AI图像产生的革命性飞跃 Dall-E 3是Openai开创性图像生成技术的最新迭代,代表了AI将文本描述转化为高度deta的能力的重大进步

什么是射击提示? - 分析Vidhya什么是射击提示? - 分析VidhyaApr 22, 2025 am 09:13 AM

很少射击提示:机器学习中的强大技术 在机器学习的领域中,使用最小数据实现准确的响应至关重要。 很少发射提示提供了一个非常有效的解决方案,使AI模型可以执行特定

什么是迅速工程的温度? - 分析Vidhya什么是迅速工程的温度? - 分析VidhyaApr 22, 2025 am 09:11 AM

及时工程:掌握AI文本生成的“温度”参数 在使用大型语言模型(LLM)(例如GPT-4)时,及时工程至关重要。 及时工程中的关键参数是“温度”,其中

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具