目錄
目錄
數據分析代理的工作
用Langgraph構建數據分析代理
先決條件
用langgraph構建數據分析代理的步驟
1。導入必要的庫。
2。讓我們定義狀態。
3。定義LLM和代碼執行函數,並將功能綁定到LLM。
4。定義代理回复的函數,並將其添加為圖表的節點。
5。定義工具節並將其添加到圖表中。
6.讓我們還添加內存,以便我們可以與代理商聊天。
7。編譯並顯示圖。
8。現在我們可以開始聊天。由於我們添加了內存,因此我們將為每個對話一個唯一的線程_id,並在該線程上啟動對話。
用Crewai建立數據分析代理
2。我們將構建一個代理,用於生成代碼,另一個用於執行該代碼。
3。要執行代碼,我們將使用PythonRepl()。將其定義為CREWAI工具。
4。定義執行代理和任務,並訪問repl and fileReadTool()
5。用代理和相應的任務構建工作人員。
6。使用以下輸入運行船員。
用自動源建立數據分析代理
2。定義代碼執行程序和使用代碼執行程序的代理。
3。定義一個用自定義系統消息編寫代碼的代理。
4。定義解決和啟動聊天的問題。
5。我們還可以使用此代碼打印我們及其答案(如果需要)的問題。
Langgraph vs Crewai vs Autogen
結論
常見問題
首頁 科技週邊 人工智慧 Langchain與Crewai vs Autogen建立數據分析代理

Langchain與Crewai vs Autogen建立數據分析代理

Mar 17, 2025 am 09:24 AM

在當今的數據驅動世界中,組織依靠數據分析師來解釋複雜的數據集,發現可行的見解和推動決策。但是,如果我們可以使用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

熱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

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

開始使用Meta Llama 3.2 -Analytics Vidhya 開始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移動AI的飛躍 Meta最近公佈了Llama 3.2,這是AI的重大進步,具有強大的視覺功能和針對移動設備優化的輕量級文本模型。 以成功為基礎

10個生成AI編碼擴展,在VS代碼中,您必須探索 10個生成AI編碼擴展,在VS代碼中,您必須探索 Apr 13, 2025 am 01:14 AM

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

向員工出售AI策略:Shopify首席執行官的宣言 向員工出售AI策略:Shopify首席執行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

AV字節:Meta' llama 3.2,Google的雙子座1.5等 AV字節:Meta' llama 3.2,Google的雙子座1.5等 Apr 11, 2025 pm 12:01 PM

本週的AI景觀:進步,道德考慮和監管辯論的旋風。 OpenAI,Google,Meta和Microsoft等主要參與者已經釋放了一系列更新,從開創性的新車型到LE的關鍵轉變

視覺語言模型(VLMS)的綜合指南 視覺語言模型(VLMS)的綜合指南 Apr 12, 2025 am 11:58 AM

介紹 想像一下,穿過​​美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? Apr 13, 2025 am 10:18 AM

介紹 Openai已根據備受期待的“草莓”建築發布了其新模型。這種稱為O1的創新模型增強了推理能力,使其可以通過問題進行思考

閱讀AI索引2025:AI是您的朋友,敵人還是副駕駛? 閱讀AI索引2025:AI是您的朋友,敵人還是副駕駛? Apr 11, 2025 pm 12:13 PM

斯坦福大學以人為本人工智能研究所發布的《2025年人工智能指數報告》對正在進行的人工智能革命進行了很好的概述。讓我們用四個簡單的概念來解讀它:認知(了解正在發生的事情)、欣賞(看到好處)、接納(面對挑戰)和責任(弄清我們的責任)。 認知:人工智能無處不在,並且發展迅速 我們需要敏銳地意識到人工智能發展和傳播的速度有多快。人工智能係統正在不斷改進,在數學和復雜思維測試中取得了優異的成績,而就在一年前,它們還在這些測試中慘敗。想像一下,人工智能解決複雜的編碼問題或研究生水平的科學問題——自2023年

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

See all articles