ホームページ >テクノロジー周辺機器 >AI >Langchain vs Crewai vs Autogen vs Data分析エージェントを構築する

Langchain vs Crewai vs Autogen vs Data分析エージェントを構築する

Lisa Kudrow
Lisa Kudrowオリジナル
2025-03-17 09:24:11889ブラウズ

今日のデータ駆動型の世界では、組織はデータアナリストに依存して、複雑なデータセットを解釈し、実用的な洞察を明らかにし、意思決定を推進しています。しかし、AIを使用してこのプロセスの効率とスケーラビリティを向上させることができたらどうでしょうか?データ分析エージェントを入力して、分析タスクを自動化し、コードを実行し、データクエリに適応的に応答します。 Langgraph、Crewai、およびAutogenは、AIエージェントの構築に使用される3つの一般的なフレームワークです。この記事の3つすべてを使用して比較して、簡単なデータ分析エージェントを構築します。

目次

  • データ分析エージェントの動作
  • Langgraphを使用してデータ分析エージェントを構築します
    • 前提条件
  • Langgraphを使用してデータ分析エージェントを構築する手順
    • 1.必要なライブラリをインポートします。
    • 2。状態を定義しましょう。
    • 3. LLMとコード実行関数を定義し、関数をLLMに結合します。
    • 4.エージェントが返信する関数を定義し、グラフにノードとして追加します。
    • 5.ツールノードを定義し、グラフに追加します。
    • 6.エージェントとチャットできるようにメモリを追加しましょう。
    • 7.グラフをコンパイルして表示します。
    • 8。これでチャットを開始できます。メモリを追加したので、各会話に一意のスレッド_IDを与え、そのスレッドで会話を開始します。
  • Crewaiでデータ分析エージェントを構築します
    • 1.必要なライブラリをインポートします。
    • 2。コードを生成するための1つのエージェントと、そのコードを実行するための別のエージェントを構築します。
    • 3。コードを実行するには、pythonRepl()を使用します。 Crewaiツールとして定義します。
    • 4。REPLおよびFILEREADTOOL()にアクセスして実行エージェントとタスクを定義します
    • 5.エージェントと対応するタスクの両方で乗組員を構築します。
    • 6.次の入力で乗組員を実行します。
  • オートゲンを使用したデータ分析エージェントの構築
    • 1.必要なライブラリをインポートします。
    • 2。コードエグゼキューターとエージェントを定義して、コードエグゼキューターを使用します。
    • 3.カスタムシステムメッセージを使用してコードを書き込むエージェントを定義します。
    • 4.チャットを解決して開始する問題を定義します。
    • 5.このコードを使用して、当社が尋ねた質問とその回答を印刷することもできます。
  • Langgraph vs Crewai vs Autogen
  • よくある質問

データ分析エージェントの動作

データ分析エージェントは、最初にユーザーからクエリを取得し、コードを生成してファイルを読み取り、ファイル内のデータを分析します。次に、Python Replツールを使用して生成されたコードが実行されます。コードの結果はエージェントに送り返されます。次に、エージェントはコード実行ツールから受信した結果を分析し、ユーザークエリに返信します。 LLMSは任意のコードを生成できるため、ローカル環境でLLMで生成されたコードを慎重に実行する必要があります。

Langgraphを使用してデータ分析エージェントを構築します

あなたがこのトピックに慣れていない場合、またはLanggraphの知識を磨きたい場合、ここに私がお勧めする記事があります:Langgraphとは何ですか?

前提条件

エージェントを構築する前に、必要なLLMに必要なAPIキーがあることを確認してください。

.ENVファイルに必要なAPIキーをロードします。

 dotenvインポートload_dotenvから

load_dotenv(./ env)

重要なライブラリが必要です

Langchain - 0.3.7

Langchain-Experimal - 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からインポート画像、表示
インポートリストの入力から、リテラル、オプション、typeddict、注釈
langchain_core.toolsインポートツールから
langchain_core.messagesからインポートツールメッセージ
langchain_experimental.utilitiesからpythonreplをインポートします
langchain_openaiからChatopenaiをインポートします
langgraph.graphからstategraphをインポートする、開始、終了
langgraph.graph.messageからインポートadd_messagesから
langgraph.prebuiltインポートツールノード、tools_conditionから
langgraph.checkpoint.memoryインポートメモリセーバーから

2。状態を定義しましょう。

クラス状態(typeddict):
	メッセージ:注釈[リスト、add_messages]
graph_builder = stategraph(state)

3. LLMとコード実行関数を定義し、関数をLLMに結合します。

 llm = chatopenai(model = "gpt-4o-mini"、温度= 0.1)

@道具
def python_repl(code:annotated [str "filename from" from "]):
    "" "これを使用してファイルから読み取ります。値の出力を確認したい場合は、
    コードを正しく読み取るようにしてください
    「プリント(...)」で印刷する必要があります。これはユーザーに表示されます。 "" "

    試す:
        result = pythonrepl()。run(code)
        print( "結果コード実行:"、result)
    eとしてのbaseexceptionを除く:
        return f "実行に失敗しました。エラー:{repr(e)}"
    return f "exected:\ n```python \ n {code} \ n``` \ nstdout:{result}"

llm_with_tools = llm.bind_tools([python_repl])

4.エージェントが返信する関数を定義し、グラフにノードとして追加します。

 def chatbot(state:state):
    return {"メッセージ":[llm_with_tools.invoke(state ["messages"])]}
    
graph_builder.add_node( "agent"、chatbot)

5.ツールノードを定義し、グラフに追加します。

 code_execution = toolnode(tools = [python_repl])

graph_builder.add_node( "tools"、code_execution)

LLMがツール呼び出しを返す場合、ツールノードにルーティングする必要があります。それ以外の場合は、終了できます。ルーティングの関数を定義しましょう。その後、他のエッジを追加できます。

 def route_tools(state:state、):
    "" "
    最後のメッセージの場合、conditional_EdgeでToolNodeにルーティングするために使用します
    ツール呼び出しがあります。それ以外の場合は、最後までルーティングします。
    "" "
    ISINSTANCE(STATE、LIST)の場合:
        ai_message = state [-1]
    elifメッセージ:= state.get( "messages"、[]):
        ai_message =メッセージ[-1]
    それ以外:
        Raise ValueError(f "入力状態からtool_edge:{state}"にあるメッセージはありません ")
    hasattr(ai_message、 "tool_calls")およびlen(ai_message.tool_calls)> 0の場合:
        「ツール」を返す
    端を返します
    
graph_builder.add_conditional_edges(
    "エージェント"、
    route_tools、
    {"Tools": "Tools"、end:end}、
))

graph_builder.add_edge( "tools"、 "agent")

6.エージェントとチャットできるようにメモリを追加しましょう。

 Memory = MemorySaver()

graph = graph_builder.compile(checkpointer = memory)

7.グラフをコンパイルして表示します。

 graph = graph_builder.compile(checkpointer = memory)

display(image(graph.get_graph()。draw_mermaid_png()))

8。これでチャットを開始できます。メモリを追加したので、各会話に一意のスレッド_IDを与え、そのスレッドで会話を開始します。

 config = {"configureable":{"swreet_id": "1"}}

def stream_graph_updates(user_input:str):
    events = graph.stream(
        {"メッセージ":[( "user"、user_input)]}、config、stream_mode = "values"
    ))
    イベントでのイベントの場合:
        event ["メッセージ"] [-1] .pretty_print()
        
本当です:
    user_input = input( "user:")
    user_input.lower()の場合["quit"、 "exit"、 "q"]:
        印刷( "さようなら!")
        壊す
    stream_graph_updates(user_input)

ループが実行されている間、ファイルのパスを提供し、データに基づいて質問をすることから始めます。

出力は次のとおりです。

Langchain vs Crewai vs Autogen vs Data分析エージェントを構築する

メモリが含まれているため、チャットのデータセットに関する質問をすることができます。エージェントは必要なコードを生成すると、コードが実行されます。コード実行結果はLLMに送信されます。例を以下に示します。

Langchain vs Crewai vs Autogen vs Data分析エージェントを構築する

また読む:Langgraphでパーソナライズされたニュースダイジェストエージェントを作成する方法

Crewaiでデータ分析エージェントを構築します

次に、データ分析タスクにCrewaiを使用します。

1.必要なライブラリをインポートします。

クルワイ輸入エージェント、タスク、乗組員から
CREWAI.TOOLSインポートツールから
CREWAI_TOOLSからImport DirectoryReadTool、FileReadToolから
langchain_experimental.utilitiesからpythonreplをインポートします

2。コードを生成するための1つのエージェントと、そのコードを実行するための別のエージェントを構築します。

 coding_agent = agent(
	役割= "Python開発者"、
	goal = "指定された問題に答えるためのよく設計された考え方のあるコード」、
	Backstory = "" "あなたはソフトウェアとそのベストプラクティスで豊富な経験を持つシニアPython開発者です。
            	クリーンで効率的でスケーラブルなコードを書くことに関する専門知識があります。 "" "、
	llm = 'gpt-4o'、
	human_input = true、
))
coding_task = task(
	説明= "" "指定された問題に答えるためのコードを書き込みます
                	コード出力を「結果」変数に割り当てます
                    	問題:{問題}、
                    	"" "、
	expected_output = "問題の結果を取得するコード。コードの出力は「結果」変数に割り当てる必要があります。
	agent = coding_agent
))

3。コードを実行するには、pythonRepl()を使用します。 Crewaiツールとして定義します。

 @tool( "REPL")
def Repl(code:str) - > str:
	"" "Pythonコードの実行に役立つ" ""
	pythonrepl()。run(command = code)を返します

4。REPLおよびFILEREADTOOL()にアクセスして実行エージェントとタスクを定義します

execting_agent = agent(
	role = "python executor"、
	目標= "受信したコードを実行して指定された問題に答える"、
	Backstory = "" "あなたはソフトウェアとそのベストプラクティスで豊富な経験を持つPython開発者です。
            	「コードを実行し、デバッグし、Pythonソリューションを効果的に最適化できます。」 ""、
	llm = 'gpt-4o-mini'、
	human_input = true、
	ツール= [REPL、fileReadTool()]
))
execting_task = task(
	説明= "" "コードを実行して、指定された問題に応答します
                	コード出力を「結果」変数に割り当てます
                    	問題:{問題}、
                    	"" "、
	expects_output = '問題の結果'、
	agent = execting_agent
))

5.エージェントと対応するタスクの両方で乗組員を構築します。

 Analysis_Crew = Crew(
	エージェント= [coding_agent、execting_agent]、
	tasks = [coding_task、executing_task]、
	verbose = true
))

6.次の入力で乗組員を実行します。

入力= {'問題': "" "このファイルを読んで列名を返して平均年齢を見つけます
   "/home/santhosh/projects/code/langgraph/gym_members_excise_tracking.csv" ""、}

result = Analysis_crew.kickoff(inputs = inputs)

印刷(result.raw)

出力がどのように見えるかは次のとおりです。

Langchain vs Crewai vs Autogen vs Data分析エージェントを構築する

また読む:CREWAIとコードなしでLLMエージェントを飛行中にビルドする

オートゲンを使用したデータ分析エージェントの構築

1.必要なライブラリをインポートします。

 Autogen Import ConversableAgentから
autogen.coding Import localcommandlinecodeexecutor、dockercommandlinecodeexecutorから

2。コードエグゼキューターとエージェントを定義して、コードエグゼキューターを使用します。

 executor = localcommandlinecodeexecutor(
	Timeout = 10、#各コード実行のタイムアウトは数秒で。
	work_dir = '。/data'、#ディレクトリを使用してコードファイルを保存します。
))
code_executor_agent = conventableagent(
	「code_executor_agent」、
	llm_config = false、
	code_execution_config = {"executor":executor}、
	human_input_mode = "Always"、
))

3.カスタムシステムメッセージを使用してコードを書き込むエージェントを定義します。

https://microsoft.github.io/autogen/0.2/docs/tutorial/code-executors/からcode_writerシステムメッセージを受け取ります


code_writer_agent = conventableagent(
    「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のメッセージについて:
    メッセージ['role'] == 'アシスタント'の場合:
        「exitcode」がメッセージ['content']にない場合:
            print(message ['content'])
            印刷( '\ n')
            
    それ以外:
        メッセージ['content']で「終了」する場合:        
            print(message ['content'])
            print( "------------------------------------------")

これが結果です:

Langchain vs Crewai vs Autogen vs Data分析エージェントを構築する

また読む:オートゲンを使用したマルチエージェントチャットボットを構築するための実践ガイド

Langgraph vs Crewai vs Autogen

3つのフレームワークすべてを使用してデータ分析エージェントを構築することを学んだので、コード実行に関しては、それらの違いを調べてみましょう。

フレームワーク 重要な機能 強み に最適です
ランググラフ - グラフベースの構造(ノードはエージェント/ツールを表し、エッジは相互作用を定義します)
- PythonReplとのシームレスな統合
- 構造化されたマルチステップワークフローを作成するのに非常に柔軟です
- タスク全体でメモリ保存を伴う安全で効率的なコード実行
明確でカスタマイズ可能なワークフローを必要とする複雑でプロセス駆動型の分析タスク
クルワイ - コラボレーション中心
- 事前定義された役割と並行して作業する複数のエージェント
- Langchainツールと統合します
- タスク指向のデザイン
- チームワークと役割の専門化に最適です
- PythonReplで安全で信頼できるコード実行をサポートします
共同データ分析、コードレビューのセットアップ、タスク分解、およびロールベースの実行
オートゲン - 動的および反復コードの実行
- インタラクティブな実行とデバッグのための会話可能なエージェント
- 組み込みチャット機能
- アダプティブおよび会話のワークフロー
- 動的な相互作用とデバッグに焦点を当てます
- 迅速なプロトタイピングとトラブルシューティングに最適です
迅速なプロトタイピング、トラブルシューティング、およびタスクと要件が頻繁に進化する環境

結論

この記事では、Langgraph、Crewai、およびAutogenを使用してデータ分析エージェントを構築する方法を示しました。これらのフレームワークにより、エージェントはコードを生成、実行、分析して、データクエリを効率的に対処できます。繰り返しタスクを自動化することにより、これらのツールはデータ分析をより速く、よりスケーラブルにします。モジュラー設計により、特定のニーズに合わせてカスタマイズが可能になり、データの専門家にとって価値があります。これらのエージェントは、ワークフローを簡素化し、データから洞察を簡単に抽出するAIの可能性を示しています。

AIエージェントの詳細については、排他的なエージェントAIパイオニアプログラムをチェックアウトしてください!

よくある質問

Q1。データ分析のためにLanggraph、Crewai、AutogenなどのAIフレームワークを使用することの重要な利点は何ですか?

A.これらのフレームワークは、コード生成と実行を自動化し、データの処理と洞察を高速化することを可能にします。ワークフローを合理化し、手動の努力を減らし、データ駆動型タスクの生産性を高めます。

Q2。これらのデータ分析エージェントは、複数のデータセットまたは複雑なクエリを処理できますか?

A.はい、エージェントは、適切なツールを統合してワークフローを調整することにより、多様なデータセットと複雑な分析クエリを処理するようにカスタマイズできます。

Q3。 LLMで生成されたコードを実行するときに、どのような予防策を講じるべきですか?

A. LLM生成コードには、エラーまたは危険な操作が含まれる場合があります。実行前に正確性とセキュリティを確保するために、制御された環境のコードを常に検証してください。

Q4。メモリ統合はこれらのデータ分析エージェントをどのように強化しますか?

A.メモリ統合により、エージェントは過去の相互作用のコンテキストを保持し、複雑またはマルチステップクエリで適応的な応答と連続性を可能にします。

Q5。これらのデータ分析エージェントはどのような種類のタスクを自動化できますか?

A.これらのエージェントは、ファイルの読み取り、データクリーニングの実行、概要の生成、統計分析の実行、データに関するユーザークエリへの回答などのタスクを自動化できます。

以上がLangchain vs Crewai vs Autogen vs Data分析エージェントを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。