Langchain vs Crewai vs Autogen untuk membina ejen analisis data
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:
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:
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:
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:
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Meta's Llama 3.2: Lompat ke hadapan dalam Multimodal dan Mobile AI META baru -baru ini melancarkan Llama 3.2, kemajuan yang ketara dalam AI yang memaparkan keupayaan penglihatan yang kuat dan model teks ringan yang dioptimumkan untuk peranti mudah alih. Membina kejayaan o

Hei ada, pengekodan ninja! Apa tugas yang berkaitan dengan pengekodan yang anda telah merancang untuk hari itu? Sebelum anda menyelam lebih jauh ke dalam blog ini, saya ingin anda memikirkan semua kesengsaraan yang berkaitan dengan pengekodan anda-lebih jauh menyenaraikan mereka. Selesai? - Let ’

Landskap AI minggu ini: Badai kemajuan, pertimbangan etika, dan perdebatan pengawalseliaan. Pemain utama seperti Openai, Google, Meta, dan Microsoft telah melepaskan kemas kini, dari model baru yang terobosan ke peralihan penting di LE

Memo CEO Shopify Tobi Lütke baru -baru ini dengan berani mengisytiharkan penguasaan AI sebagai harapan asas bagi setiap pekerja, menandakan peralihan budaya yang signifikan dalam syarikat. Ini bukan trend seketika; Ini adalah paradigma operasi baru yang disatukan ke p

Pengenalan OpenAI telah mengeluarkan model barunya berdasarkan seni bina "strawberi" yang sangat dijangka. Model inovatif ini, yang dikenali sebagai O1, meningkatkan keupayaan penalaran, yang membolehkannya berfikir melalui masalah MOR

Pengenalan Bayangkan berjalan melalui galeri seni, dikelilingi oleh lukisan dan patung yang terang. Sekarang, bagaimana jika anda boleh bertanya setiap soalan dan mendapatkan jawapan yang bermakna? Anda mungkin bertanya, "Kisah apa yang anda ceritakan?

Meta's Llama 3.2: Powerhouse AI Multimodal Model multimodal terbaru Meta, Llama 3.2, mewakili kemajuan yang ketara dalam AI, yang membanggakan pemahaman bahasa yang dipertingkatkan, ketepatan yang lebih baik, dan keupayaan penjanaan teks yang unggul. Keupayaannya t

Bagi anda yang mungkin baru dalam lajur saya, saya secara meluas meneroka kemajuan terkini di AI di seluruh papan, termasuk topik seperti yang terkandung AI, penaakulan AI, terobosan berteknologi tinggi di AI, kejuruteraan segera, latihan AI, Fielding of AI, AI Re Re,
