Langchain vs Crewai vs Autogen vs Data分析エージェントを構築する
今日のデータ駆動型の世界では、組織はデータアナリストに依存して、複雑なデータセットを解釈し、実用的な洞察を明らかにし、意思決定を推進しています。しかし、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)
ループが実行されている間、ファイルのパスを提供し、データに基づいて質問をすることから始めます。
出力は次のとおりです。
メモリが含まれているため、チャットのデータセットに関する質問をすることができます。エージェントは必要なコードを生成すると、コードが実行されます。コード実行結果はLLMに送信されます。例を以下に示します。
また読む: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)
出力がどのように見えるかは次のとおりです。
また読む: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( "------------------------------------------")
これが結果です:
また読む:オートゲンを使用したマルチエージェントチャットボットを構築するための実践ガイド
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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、トップAIアートジェネレーターをレビューし、その機能、創造的なプロジェクトへの適合性、価値について説明します。 Midjourneyを専門家にとって最高の価値として強調し、高品質でカスタマイズ可能なアートにDall-E 2を推奨しています。

メタのラマ3.2:マルチモーダルとモバイルAIの前進 メタは最近、ラマ3.2を発表しました。これは、モバイルデバイス向けに最適化された強力なビジョン機能と軽量テキストモデルを特徴とするAIの大幅な進歩です。 成功に基づいてo

この記事では、ChatGpt、Gemini、ClaudeなどのトップAIチャットボットを比較し、自然言語の処理と信頼性における独自の機能、カスタマイズオプション、パフォーマンスに焦点を当てています。

CHATGPT 4は現在利用可能で広く使用されており、CHATGPT 3.5のような前任者と比較して、コンテキストを理解し、一貫した応答を生成することに大幅な改善を示しています。将来の開発には、よりパーソナライズされたインターが含まれる場合があります

この記事では、Grammarly、Jasper、Copy.ai、Writesonic、RytrなどのトップAIライティングアシスタントについて説明し、コンテンツ作成のためのユニークな機能に焦点を当てています。 JasperがSEOの最適化に優れているのに対し、AIツールはトーンの維持に役立つと主張します

2024年は、コンテンツ生成にLLMSを使用することから、内部の仕組みを理解することへの移行を目撃しました。 この調査は、AIエージェントの発見につながりました。これは、最小限の人間の介入でタスクと決定を処理する自律システムを処理しました。 buildin

この記事では、Google Cloud、Amazon Polly、Microsoft Azure、IBM Watson、DecriptなどのトップAI音声ジェネレーターをレビューし、機能、音声品質、さまざまなニーズへの適合性に焦点を当てています。

Shopify CEOのTobiLütkeの最近のメモは、AIの能力がすべての従業員にとって基本的な期待であると大胆に宣言し、会社内の重大な文化的変化を示しています。 これはつかの間の傾向ではありません。これは、pに統合された新しい運用パラダイムです
