今日のデータ駆動型の世界では、組織はデータアナリストに依存して、複雑なデータセットを解釈し、実用的な洞察を明らかにし、意思決定を推進しています。しかし、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 サイトの他の関連記事を参照してください。

2008年以来、私は共有ライドバンを擁護しました。これは、「Robotjitney」と呼ばれる「後に「Vansit」と呼ばれ、都市交通の未来として擁護しました。 私はこれらの車両を21世紀の次世代トランジットソリューション、スルパとして予見します

チェックアウトエクスペリエンスに革命をもたらす Sam's Clubの革新的な「Just Go」システムは、既存のAIを搭載した「スキャン&ゴー」テクノロジーに基づいて構築され、ショッピング旅行中にメンバーがサムズクラブアプリを介して購入をスキャンできるようになりました。

GTC 2025でのNvidiaの強化された予測可能性と新製品のラインナップ AIインフラストラクチャの重要なプレーヤーであるNvidiaは、クライアントの予測可能性の向上に焦点を当てています。 これには、一貫した製品配信、パフォーマンスの期待を満たすこと、および

GoogleのGemma 2:強力で効率的な言語モデル 効率とパフォーマンスで祝われるGoogleのGemmaファミリーは、Gemma 2の到着とともに拡大しました。この最新リリースは2つのモデルで構成されています。

データエピソードを率いるこの主要なのは、主要なデータサイエンティスト、天体物理学者、TEDXスピーカーであるカークボーン博士を特徴としています。 ビッグデータ、AI、および機械学習の有名な専門家であるボルネ博士は、現在の状態と将来のトラジェについて非常に貴重な洞察を提供しています

このスピーチには、人工知能が人々の運動をサポートするのに非常に優れている理由を示すエンジニアリングに関するバックグラウンド情報には、非常に洞察に満ちた視点がいくつかありました。 各寄稿者の観点からコアアイデアを概説し、スポーツにおける人工知能の適用の調査の重要な部分である3つの設計側面を実証します。 エッジデバイスと生の個人データ 人工知能に関するこのアイデアには、実際には2つのコンポーネントが含まれています。1つは大きな言語モデルを配置する場所に関連しており、もう1つは人間の言語と、リアルタイムで測定したときにバイタルサインが「表現」する言語の違いに関連しています。 アレクサンダー・アミニはランニングとテニスについて多くのことを知っていますが、彼はまだ

Caterpillarの最高情報責任者であり、その上級副社長であるJamie Engstromは、28か国の2,200人以上のITプロフェッショナルのグローバルチームを率いています。 彼女の現在の役割で4年半を含むCaterpillarで26年間、Engst

Google Photosの新しいUltra HDRツール:クイックガイド Google Photosの新しいUltra HDRツールで写真を強化し、標準画像を活気に満ちた高ダイナミックレンジの傑作に変換します。ソーシャルメディアに最適なこのツールは、あらゆる写真の影響を高め、


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
