Rumah >Peranti teknologi >AI >Langchain vs Crewai vs Autogen untuk membina ejen analisis data

Langchain vs Crewai vs Autogen untuk membina ejen analisis data

Lisa Kudrow
Lisa Kudrowasal
2025-03-17 09:24:11886semak imbas

Dalam dunia yang didorong oleh data hari ini, organisasi bergantung kepada penganalisis data untuk mentafsirkan dataset yang kompleks, mengungkap pandangan yang boleh dilakukan, dan memacu membuat keputusan. Tetapi bagaimana jika kita dapat meningkatkan kecekapan dan skalabilitas proses ini menggunakan AI? Masukkan ejen analisis data, untuk mengautomasikan tugas analisis, laksanakan kod, dan menyesuaikan diri dengan pertanyaan data. Langgraph, Crewai, dan Autogen adalah tiga kerangka popular yang digunakan untuk membina agen AI. Kami akan menggunakan dan membandingkan ketiga -tiga dalam artikel ini untuk membina ejen analisis data yang mudah.

Jadual Kandungan

  • Bekerja Ejen Analisis Data
  • Membina Ejen Analisis Data dengan LangGraph
    • Pra-syarat
  • Langkah -langkah untuk Membina Ejen Analisis Data dengan LangGraph
    • 1. Import perpustakaan yang diperlukan.
    • 2. Mari kita tentukan keadaan.
    • 3. Tentukan LLM dan fungsi pelaksanaan kod dan mengikat fungsi ke LLM.
    • 4. Tentukan fungsi untuk ejen untuk membalas dan tambahkannya sebagai nod kepada graf.
    • 5. Tentukan alat tool dan tambahkannya ke graf.
    • 6. Marilah kita juga menambah memori supaya kita boleh berbual dengan ejen.
    • 7. Menyusun dan memaparkan graf.
    • 8. Sekarang kita boleh memulakan sembang. Oleh kerana kami telah menambah ingatan, kami akan memberikan setiap perbualan thread_id yang unik dan memulakan perbualan pada benang itu.
  • Membina Ejen Analisis Data dengan Crewai
    • 1. Import perpustakaan yang diperlukan.
    • 2. Kami akan membina satu ejen untuk menjana kod dan satu lagi untuk melaksanakan kod tersebut.
    • 3. Untuk melaksanakan kod, kami akan menggunakan pythonrepl (). Tentukannya sebagai alat krew.
    • 4. Tentukan ejen dan tugas melaksanakan dengan akses ke repl dan fileReadTool ()
    • 5. Membina krew dengan kedua -dua ejen dan tugas yang sepadan.
    • 6. Jalankan krew dengan input berikut.
  • Membina Ejen Analisis Data dengan Autogen
    • 1. Import perpustakaan yang diperlukan.
    • 2. Tentukan pelaksana kod dan ejen untuk menggunakan pelaksana kod.
    • 3. Tentukan ejen untuk menulis kod dengan mesej sistem tersuai.
    • 4. Tentukan masalah untuk menyelesaikan dan memulakan sembang.
    • 5. Kami juga boleh mencetak soalan yang ditanya oleh kami dan jawapan mereka, jika diperlukan, menggunakan kod ini.
  • Langgraph vs Crewai vs Autogen
  • Soalan yang sering ditanya

Bekerja Ejen Analisis Data

Ejen analisis data akan mula mengambil pertanyaan dari pengguna dan menghasilkan kod untuk membaca fail dan menganalisis data dalam fail. Kemudian kod yang dihasilkan akan dilaksanakan menggunakan alat Python Repl. Hasil kod dihantar kembali ke ejen. Ejen kemudian menganalisis hasil yang diterima daripada alat pelaksanaan kod dan balasan kepada pertanyaan pengguna. LLMS boleh menjana kod sewenang-wenangnya, jadi kita mesti dengan teliti melaksanakan kod yang dihasilkan oleh LLM dalam persekitaran tempatan.

Membina Ejen Analisis Data dengan LangGraph

Sekiranya anda baru dalam topik ini atau ingin menyikat pengetahuan anda tentang Langgraph, inilah artikel yang saya cadangkan: Apa itu Langgraph?

Pra-syarat

Sebelum ejen bangunan, pastikan anda mempunyai kunci API yang diperlukan untuk LLM yang diperlukan.

Muatkan fail .env dengan kekunci API yang diperlukan.

 dari dotenv import load_dotenv

load_dotenv (./ env)

Perpustakaan utama diperlukan

Langchain - 0.3.7

Langchain-Experimental-0.3.3

Langgraph - 0.2.52

Crewai - 0.80.0

Crewai-Tools-0.14.0

Autogen-Agentchat-0.2.38

Sekarang kita sudah bersedia, mari kita mula membina ejen kita.

Langkah -langkah untuk Membina Ejen Analisis Data dengan LangGraph

1. Import perpustakaan yang diperlukan.

 Import Pandas sebagai PD
dari ipython.display imej import, paparan
dari menaip senarai import, literal, pilihan, typeddict, annotated
dari Langchain_Core.Tools Alat Import
dari langchain_core.Messages Import Toolmessage
dari langchain_experimental.Utilities import pythonrepl
dari langchain_openai import chatopenai
dari Langgraph.graph Import Stategraph, Start, End
dari langgraph.graph.message import add_messages
dari Langgraph.Prebuilt Import Toolnode, Tools_Condition
dari langgraph.checkpoint.Memory Import MemorySaver

2. Mari kita tentukan keadaan.

 Negeri Kelas (TypedDict):
	Mesej: Annotated [Senarai, add_messages]
graph_builder = stategraph (Negeri)

3. Tentukan LLM dan fungsi pelaksanaan kod dan mengikat fungsi ke LLM.

 LLM = chatopenai (model = "GPT-4O-Mini", suhu = 0.1)

@tool
def python_repl (kod: annotated [str, "nama fail untuk membaca kod dari"]):
    "" "Gunakan ini untuk melaksanakan kod python baca dari fail. Jika anda ingin melihat output nilai,
    Pastikan anda membaca kod dari dengan betul
    Anda harus mencetaknya dengan `cetak (...)`. Ini dapat dilihat oleh pengguna. "" "

    Cuba:
        hasil = pythonrepl (). lari (kod)
        Cetak ("Pelaksanaan Kod Hasil:", Hasil)
    Kecuali BaseException sebagai E:
        kembali f "gagal melaksanakan. Ralat: {repr (e)}"
    kembali f "dilaksanakan: \ n```python \ n {code} \ n``` \ nstdout: {result}"

llm_with_tools = llm.bind_tools ([python_repl])

4. Tentukan fungsi untuk ejen untuk membalas dan tambahkannya sebagai nod kepada graf.

 Def Chatbot (Negeri: Negeri):
    kembali {"mesej": [llm_with_tools.invoke (state ["mesej"])]}
    
graph_builder.add_node ("ejen", chatbot)

5. Tentukan alat tool dan tambahkannya ke graf.

 code_execution = toolNode (tools = [python_repl])

graph_builder.add_node ("Alat", code_execution)

Jika LLM mengembalikan panggilan alat, kita perlu mengarahkannya ke nod alat; Jika tidak, kita boleh menamatkannya. Mari kita tentukan fungsi untuk penghalaan. Kemudian kita boleh menambah tepi lain.

 def route_tools (negeri: negeri,):
    "" "
    Gunakan di Conditional_Edge untuk mengarah ke alat alat jika mesej terakhir
    mempunyai panggilan alat. Jika tidak, laluan hingga akhir.
    "" "
    Sekiranya Isinstance (Negeri, Senarai):
        ai_message = state [-1]
    Mesej ELIF: = State.get ("Mesej", []):
        ai_message = mesej [-1]
    lain:
        Naikkan ValueError (F "Tiada mesej yang terdapat dalam keadaan input ke Tool_Edge: {State}")
    jika hasattr (ai_message, "tool_calls") dan len (ai_message.tool_calls)> 0:
        Kembali "Alat"
    kembali akhir
    
graph_builder.add_conditional_edges (
    "ejen",
    route_tools,
    {"Alat": "Alat", Akhir: Akhir},
)

graph_builder.add_edge ("Alat", "Agen")

6. Marilah kita juga menambah memori supaya kita boleh berbual dengan ejen.

 Memory = MemorySaver ()

graf = graph_builder.compile (checkPointer = memori)

7. Menyusun dan memaparkan graf.

 graf = graph_builder.compile (checkPointer = memori)

paparan (imej (graph.get_graph (). Draw_mermaid_png ()))

8. Sekarang kita boleh memulakan sembang. Oleh kerana kami telah menambah ingatan, kami akan memberikan setiap perbualan thread_id yang unik dan memulakan perbualan pada benang itu.

 config = {"configurable": {"thread_id": "1"}}

def stream_graph_updates (user_input: str):
    peristiwa = graf.stream (
        {"Mesej": [("User", user_input)]}, config, stream_mode = "nilai"
    )
    untuk acara dalam acara:
        Acara ["Mesej"] [-1] .pretty_print ()
        
Walaupun benar:
    user_Input = input ("Pengguna:")
    jika user_input.lower () dalam ["berhenti", "keluar", "q"]:
        Cetak ("Selamat tinggal!")
        rehat
    stream_graph_updates (user_input)

Semasa gelung sedang berjalan, kita mulakan dengan memberikan laluan fail dan kemudian meminta sebarang pertanyaan berdasarkan data.

Output akan menjadi seperti berikut:

Langchain vs Crewai vs Autogen untuk membina ejen analisis data

Seperti yang kita telah memasukkan ingatan, kita boleh mengemukakan sebarang pertanyaan mengenai dataset dalam sembang. Ejen akan menjana kod yang diperlukan dan kod akan dilaksanakan. Hasil pelaksanaan kod akan dihantar kembali ke LLM. Contohnya ditunjukkan di bawah:

Langchain vs Crewai vs Autogen untuk membina ejen analisis data

Juga Baca: Cara Membuat Ejen Berita Digest Peribadi Anda Dengan LangGraph

Membina Ejen Analisis Data dengan Crewai

Sekarang, kami akan menggunakan Crewai untuk tugas analisis data.

1. Import perpustakaan yang diperlukan.

 dari ejen import krew, tugas, krew
dari alat import krewi.tools
Dari krewi_tools import directoryreadtool, fileReadtool
dari langchain_experimental.Utilities import pythonrepl

2. Kami akan membina satu ejen untuk menjana kod dan satu lagi untuk melaksanakan kod tersebut.

 coding_agent = agen (
	Peranan = "Pemaju Python",
	matlamat = "Kraf kod yang direka dengan baik dan pemikiran untuk menjawab masalah yang diberikan",
	BackStory = "" "Anda adalah pemaju python kanan dengan pengalaman luas dalam perisian dan amalan terbaiknya.
            	Anda mempunyai kepakaran dalam menulis kod bersih, cekap, dan berskala. "" ",
	LLM = 'GPT-4O',
	human_input = benar,
)
coding_task = tugas (
	Penerangan = "" "Tulis kod untuk menjawab masalah yang diberikan
                	Berikan output kod kepada pemboleh ubah 'hasil'
                    	Masalah: {masalah},
                    	"" ",
	dijangka_output = "kod untuk mendapatkan hasil untuk masalah. Output kod harus diberikan kepada pembolehubah 'hasil'",
	agen = coding_agent
)

3. Untuk melaksanakan kod, kami akan menggunakan pythonrepl (). Tentukannya sebagai alat krew.

 @tool ("repl")
def repl (kod: str) -> str:
	"" "Berguna untuk melaksanakan kod python" ""
	kembali pythonRepl (). lari (command = code)

4. Tentukan ejen dan tugas melaksanakan dengan akses ke repl dan fileReadTool ()

 Executing_agent = ejen (
	Peranan = "Pelaksana Python",
	matlamat = "jalankan kod yang diterima untuk menjawab masalah yang diberikan",
	BackStory = "" "Anda adalah pemaju python dengan pengalaman luas dalam perisian dan amalan terbaiknya.
            	"Anda boleh melaksanakan kod, debug, dan mengoptimumkan penyelesaian Python dengan berkesan." ""
	LLM = 'GPT-4O-MINI',
	human_input = benar,
	Alat = [Repl, FileReadTool ()]
)
EXECUBTING_TASK = tugas (
	Penerangan = "" "Jalankan kod untuk menjawab masalah yang diberikan
                	Berikan output kod kepada pemboleh ubah 'hasil'
                    	Masalah: {masalah},
                    	"" ",
	diharapkan_output = 'hasil untuk masalah',
	agen = executing_agent
)

5. Membina krew dengan kedua -dua ejen dan tugas yang sepadan.

 analisis_crew = krew (
	ejen = [coding_agent, executing_agent],
	tugas = [coding_task, executing_task],
	verbose = benar
)

6. Jalankan krew dengan input berikut.

 input = {'masalah': "" "Baca fail ini dan kembalikan nama lajur dan cari umur min
   "/home/santhosh/projects/code/langgraph/gym_members_exercise_tracking.csv" "",}

hasil = analisis_crew.kickoff (input = input)

cetak (result.raw)

Inilah caranya output akan kelihatan seperti:

Langchain vs Crewai vs Autogen untuk membina ejen analisis data

Juga Baca: Membina Ejen LLM dengan cepat tanpa kod dengan Crewai

Membina Ejen Analisis Data dengan Autogen

1. Import perpustakaan yang diperlukan.

 dari import autogen convenableagent
dari autogen.Coding Import LocalCommandLineCodeExecutor, DockermandLineCodeExecutor

2. Tentukan pelaksana kod dan ejen untuk menggunakan pelaksana kod.

 Executor = LocalCommandLineCodeExecutor (
	timeout = 10, # masa untuk setiap pelaksanaan kod dalam beberapa saat.
	work_dir = './Data', # Gunakan direktori untuk menyimpan fail kod.
)
code_executor_agent = convertabeagent (
	"code_executor_agent",
	llm_config = false,
	code_execution_config = {"Executor": Executor},
	human_input_mode = "selalu",
)

3. Tentukan ejen untuk menulis kod dengan mesej sistem tersuai.

Ambil mesej sistem code_writer dari https://microsoft.github.io/autogen/0.2/docs/tutorial/code-executors/


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

4. Tentukan masalah untuk menyelesaikan dan memulakan sembang.

 masalah = "" "Baca fail di jalan '/home/santhosh/projects/code/langgraph/gym_members_exercise_tracking.csv'
        	dan mencetak umur purata rakyat. "" "

chat_result = code_executor_agent.initiate_chat (
	code_writer_agent,
	mesej = masalah,
)

Sebaik sahaja sembang bermula, kami juga boleh bertanya apa -apa soalan berikutnya mengenai dataset yang disebutkan di atas. Jika kod itu menemui sebarang kesilapan, kita boleh meminta untuk mengubah suai kod tersebut. Jika kod itu baik -baik saja, kita hanya boleh menekan 'Enter' untuk terus melaksanakan kod tersebut.

5. Kami juga boleh mencetak soalan yang ditanya oleh kami dan jawapan mereka, jika diperlukan, menggunakan kod ini.

 Untuk mesej di chat_result.chat_history:
    jika mesej ['peranan'] == 'pembantu':
        Jika 'ExitCode' tidak dalam mesej ['Kandungan']:
            cetak (mesej ['kandungan']))
            cetak ('\ n')
            
    lain:
        jika 'menamatkan' dalam mesej ['kandungan']:        
            cetak (mesej ['kandungan']))
            Cetak ("----------------------------------------")

Inilah hasilnya:

Langchain vs Crewai vs Autogen untuk membina ejen analisis data

Juga baca: Panduan tangan untuk membina chatbots pelbagai agen dengan autogen

Langgraph vs Crewai vs Autogen

Sekarang bahawa anda telah belajar untuk membina ejen analisis data dengan semua 3 kerangka, mari kita meneroka perbezaan di antara mereka, ketika datang ke pelaksanaan kod:

Rangka Kerja Ciri -ciri utama Kekuatan Paling sesuai untuk
LangGraph -Struktur berasaskan graf (nod mewakili ejen/alat, tepi menentukan interaksi)
- Integrasi lancar dengan pythonrepl
-Sangat fleksibel untuk mewujudkan aliran kerja berstruktur, pelbagai langkah
- Pelaksanaan kod yang selamat dan cekap dengan pemeliharaan memori merentasi tugas
Tugas analitik yang didorong oleh kompleks dan proses yang menuntut aliran kerja yang jelas dan disesuaikan
Crewai -Fokus kolaborasi
- Pelbagai ejen yang bekerja selari dengan peranan yang telah ditetapkan
- Bersepadu dengan alat Langchain
-Reka bentuk berorientasikan tugas
- Cemerlang untuk kerja berpasukan dan pengkhususan peranan
- Menyokong pelaksanaan kod yang selamat dan boleh dipercayai dengan pythonrepl
Analisis Data Kerjasama, Penyediaan Kajian Kod, Penguraian Tugas, dan Pelaksanaan Berasaskan Peranan
Autogen - Pelaksanaan kod dinamik dan berulang
- Ejen yang boleh dibanggakan untuk pelaksanaan dan debug interaktif
-Ciri sembang terbina dalam
- Aliran kerja penyesuaian dan perbualan
- Fokus pada interaksi dan debug dinamik
- Sesuai untuk prototaip dan penyelesaian masalah pesat
Prototaip, penyelesaian masalah, dan persekitaran yang cepat di mana tugas dan keperluan sering berubah

Kesimpulan

Dalam artikel ini, kami menunjukkan cara membina ejen analisis data menggunakan Langgraph, Crewai, dan Autogen. Rangka kerja ini membolehkan ejen untuk menjana, melaksanakan, dan menganalisis kod untuk menangani pertanyaan data dengan cekap. Dengan mengautomasikan tugas berulang, alat ini menjadikan analisis data lebih cepat dan lebih berskala. Reka bentuk modular membolehkan penyesuaian untuk keperluan khusus, menjadikannya berharga untuk profesional data. Ejen -ejen ini mempamerkan potensi AI untuk memudahkan aliran kerja dan mengekstrak pandangan dari data dengan mudah.

Untuk mengetahui lebih lanjut mengenai ejen AI, periksa program Eksklusif AII Pioneer Eksklusif kami!

Soalan yang sering ditanya

Q1. Apakah faedah utama menggunakan kerangka AI seperti Langgraph, Crewai, dan Autogen untuk analisis data?

A. Rangka kerja ini mengautomasikan penjanaan kod dan pelaksanaan, membolehkan pemprosesan data dan pandangan yang lebih cepat. Mereka menyelaraskan aliran kerja, mengurangkan usaha manual, dan meningkatkan produktiviti untuk tugas yang didorong data.

S2. Bolehkah ejen analisis data ini mengendalikan pelbagai dataset atau pertanyaan kompleks?

A. Ya, ejen boleh disesuaikan untuk mengendalikan dataset yang pelbagai dan pertanyaan analisis yang kompleks dengan mengintegrasikan alat yang sesuai dan menyesuaikan aliran kerja mereka.

Q3. Apakah langkah berjaga-jaga yang perlu diambil semasa melaksanakan kod yang dihasilkan oleh LLM?

A. Kod yang dihasilkan oleh LLM mungkin termasuk kesilapan atau operasi yang tidak selamat. Sentiasa mengesahkan kod dalam persekitaran terkawal untuk memastikan ketepatan dan keselamatan sebelum pelaksanaan.

Q4. Bagaimanakah integrasi memori meningkatkan ejen analisis data ini?

A. Integrasi memori membolehkan ejen mengekalkan konteks interaksi masa lalu, membolehkan tindak balas penyesuaian dan kesinambungan dalam pertanyaan kompleks atau pelbagai langkah.

S5. Apakah jenis tugas yang boleh dilakukan oleh agen analisis data ini?

A. Ejen -ejen ini boleh mengautomasikan tugas -tugas seperti membaca fail, melakukan pembersihan data, menghasilkan ringkasan, melaksanakan analisis statistik, dan menjawab pertanyaan pengguna mengenai data.

Atas ialah kandungan terperinci Langchain vs Crewai vs Autogen untuk membina ejen analisis data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn