Apakah aliran agentik di Crewai? - Analytics Vidhya
Selesaikan aliran kerja AI anda dengan aliran krew! Rangka kerja yang kuat ini menyediakan corak berstruktur untuk mengatur interaksi antara agen AI, yang membolehkan pemaju untuk mengintegrasikan tugas dan krew pengekodan dengan lancar untuk automasi AI yang mantap. Aliran Agentic Crewai menawarkan aliran kerja yang didorong oleh peristiwa, memudahkan koordinasi tugas, pengurusan negeri, dan kawalan pelaksanaan dalam aplikasi AI anda.
Jadual Kandungan
- Apa itu krew?
- Memahami aliran
- Kawalan aliran kerja dan penjujukan
- Pengurusan negeri yang cekap
- Pengendalian input fleksibel
- Senibina yang didorong oleh acara dan pelarasan dinamik
- Routing tugas dan pelaksanaan bersyarat
- Aliran dalam Amalan: Contoh cadangan filem
- Persediaan dan pemasangan
- Mengendalikan amaran
- Memuatkan pembolehubah persekitaran
- Mengimport modul yang diperlukan
- Menentukan ejen
- Menentukan tugas
- Membuat krew untuk setiap genre
- Menentukan genre dan genrestate
- Membina
MovieRecommendationFlow
- Menggambarkan aliran
- Memulakan aliran
- Kesimpulan
- Soalan yang sering ditanya
Apa itu krew?
Krew Crewai memudahkan orkestra ejen AI untuk menyelesaikan tugas automatik. Mereka membolehkan kerjasama yang lancar antara ejen untuk menyelesaikan masalah yang rumit. Tetapi mengapa "mengalir"? Kerana aliran krew menyediakan corak berstruktur untuk menguruskan interaksi ejen ini, menentukan bagaimana ejen berkomunikasi dan bekerjasama untuk mencapai matlamat tertentu. Aliran pada dasarnya adalah urutan tugas, di mana output satu tugas boleh mencetuskan seterusnya. Sistem ini menawarkan mekanisme fleksibel untuk menguruskan pelaksanaan negara dan bersyarat.
Memahami aliran
Aliran beroperasi pada model yang didorong oleh peristiwa, bertindak balas terhadap pencetus dan keadaan tertentu. Ini membolehkan pelarasan aliran kerja dinamik berdasarkan hasil pelaksanaan tugas, menyelaraskan proses AI kompleks.
Kawalan aliran kerja dan penjujukan
Aliran krew membolehkan pemaju menyusun urutan tugas dan mengawal aliran maklumat antara tugas. Tugas boleh dirantai bersama -sama, mewujudkan susunan operasi logik. Pelaksanaan tugas bersyarat berdasarkan output tugas terdahulu juga disokong.
Pengurusan negeri yang cekap
Pengurusan negeri berstruktur, sering menggunakan BaseModel
Pydantic, memastikan konsistensi dan struktur data antara tugas. Ini menyediakan jenis keselamatan, pengesahan, dan pengurusan data yang lebih mudah.
Pengendalian input fleksibel
Aliran menerima input untuk memulakan atau mengemas kini keadaan mereka pada bila -bila masa semasa pelaksanaan. Input boleh disediakan pada permulaan, semasa, atau selepas pelaksanaan, bergantung kepada keperluan alur kerja.
Senibina yang didorong oleh acara dan pelarasan dinamik
Crewai mengalir menyesuaikan secara dinamik berdasarkan hasil tugas. Tugas boleh mendengar output dari langkah -langkah sebelumnya, mewujudkan sistem reaktif di mana tugas -tugas baru dicetuskan berdasarkan output sebelumnya. The @listen()
dan @router()
penghias memberikan fleksibiliti ini, membolehkan tugas bersyarat dan dinamik menghubungkan. Penghias @start()
menandakan titik permulaan aliran.
Penghias dan logik bersyarat | Penerangan |
@listen()
|
Mewujudkan kaedah pendengar yang dicetuskan oleh peristiwa tertentu atau output tugas. |
@router()
|
Membolehkan penghalaan bersyarat, membolehkan laluan pelaksanaan yang berbeza berdasarkan output langkah terdahulu. Berguna untuk menguruskan hasil kejayaan/kegagalan. |
Mencetuskan pendengar hanya apabila semua kaedah yang ditentukan memancarkan output. |
Routing tugas dan pelaksanaan bersyarat
Aliran menggunakan penghalaan untuk mengawal pelaksanaan berdasarkan keadaan. Penghias @router()
membolehkan kaedah untuk memilih laluan pelaksanaan berdasarkan hasil tugas terdahulu. Sebagai contoh, kaedah mungkin menyemak output tugas sebelumnya dan memilih laluan berdasarkan sama ada syarat -syarat tertentu dipenuhi.
Aliran dalam Amalan: Contoh cadangan filem
Mari buat sistem agentik menggunakan aliran krew untuk mengesyorkan filem berdasarkan genre.
Persediaan dan pemasangan
<code>!pip install crewai -U !pip install crewai-tools</code>
Mengendalikan amaran
<code>import warnings warnings.filterwarnings('ignore')</code>
Memuatkan Pembolehubah Persekitaran (Ganti Pemegang Sedang dengan Kekunci Sebenar anda)
<code>import os os.environ["OPENAI_API_KEY"] = 'YOUR_OPENAI_API_KEY' os.environ['OPENAI_MODEL_NAME'] = 'gpt-4o-mini-2024-07-18' os.environ["SERPER_API_KEY"]='YOUR_SERPER_API_KEY'</code>
Mengimport modul yang diperlukan
<code>from crewai import Agent, Task, Crew from crewai.flow.flow import listen, start, and_, or_, router from crewai_tools import SerperDevTool from crewai import Flow from pydantic import BaseModel</code>
Menentukan ejen
Ejen tunggal akan digunakan untuk semua tugas. Ejen ini menggunakan alat carian Google.
<code>movie_agent = Agent( role="Recommend popular movie specific to the genre", goal="Provide a list of movies based on user preferences", backstory="You are a cinephile, " "you recommend good movies to your friends, " "the movies should be of the same genre", tools=[SerperDevTool()], verbose=True )</code>
Menentukan tugas
<code>action_task = Task(name="ActionTask", description="Recommends a popular action movie", expected_output="A list of 10 popular movies", agent=movie_agent) comedy_task = Task(name="ComedyTask", description="Recommends a popular comedy movie", expected_output="A list of 10 popular movies", agent=movie_agent) drama_task = Task(name="DramaTask", description="Recommends a popular drama movie", expected_output="A list of 10 popular movies", agent=movie_agent) sci_fi_task = Task(name="SciFiTask", description="Recommends a sci-fi movie", expected_output="A list of 10 popular movies", agent=movie_agent)</code>
Membuat krew untuk setiap genre
<code>action_crew = Crew(agents=[movie_agent], tasks=[action_task], verbose=True) comedy_crew = Crew(agents=[movie_agent], tasks=[comedy_task], verbose=True) drama_crew = Crew(agents=[movie_agent], tasks=[drama_task], verbose=True) sci_fi_crew = Crew(agents=[movie_agent], tasks=[sci_fi_task], verbose=True)</code>
Menentukan genre dan genrestate
<code>GENRES = ["action", "comedy", "drama", "sci-fi"] class GenreState(BaseModel): genre: str = ""</code>
Membina MovieRecommendationFlow
Kelas ini mewarisi dari kelas Flow
dan menggunakan fungsi negara.
<code>class MovieRecommendationFlow(Flow[GenreState]): @start() def input_genre(self): genre = input("Enter a genre: ") print(f"Genre input received: {genre}") self.state.genre = genre return genre @router(input_genre) def route_to_crew(self): genre = self.state.genre if genre not in GENRES: raise ValueError(f"Invalid genre: {genre}") if genre == "action": return "action" elif genre == "comedy": return "comedy" elif genre == "drama": return "drama" elif genre == "sci-fi": return "sci-fi" @listen("action") def action_movies(self, genre): recommendations = action_crew.kickoff() return recommendations @listen("comedy") def comedy_movies(self, genre): recommendations = comedy_crew.kickoff() return recommendations @listen("drama") def drama_movies(self, genre): recommendations = drama_crew.kickoff() return recommendations @listen("sci-fi") def sci_fi_movies(self, genre): recommendations = sci_fi_crew.kickoff() return recommendations @listen(or_("action_movies", "comedy_movies", "drama_movies", "sci_fi_movies")) def finalize_recommendation(self, recommendations): print("Final movie recommendations:") return recommendations</code>
@listen
, @router
, or_
, dan @start
Decorators menguruskan pelaksanaan aliran.
Menggambarkan aliran
<code>flow = MovieRecommendationFlow() flow.plot() #This will generate a file, you'll need to display it separately (eg, using an image display function in your environment)</code>
Memulakan aliran
<code>recommendations = await flow.kickoff_async()</code>
Kesimpulan
Aliran kerja yang didorong oleh peristiwa Crewai memudahkan orkestra tugas AI. Sifat fleksibel dan adaptif aliran krew, digabungkan dengan ciri -ciri seperti @listen()
, @router()
, dan pengurusan negeri, menjadikan mereka alat yang kuat untuk membina aplikasi AI yang cekap dan dinamik.
Soalan yang sering ditanya
Q1. Bagaimana saya lulus input ke aliran? Gunakan flow.kickoff(inputs={"counter": 10})
.
S2. Apakah perbezaan antara @start()
dan @listen()
? @start()
menandakan titik permulaan aliran; @listen()
menandakan kaedah yang dicetuskan oleh penyelesaian tugas.
Q3. Bagaimana saya menggambarkan aliran saya? Gunakan flow.plot()
.
Q4. Bolehkah saya memasukkan maklum balas manusia? Ya, aliran krew menyokong maklum balas manusia-dalam-gelung.
Atas ialah kandungan terperinci Apakah aliran agentik di Crewai? - Analytics Vidhya. 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











Semasa bekerja pada AIS AI, pemaju sering mendapati diri mereka menavigasi perdagangan antara kelajuan, fleksibiliti, dan kecekapan sumber. Saya telah meneroka rangka kerja AI yang agentik dan menjumpai Agno (sebelum ini adalah Phi-

Pernyataan Jadual Alter SQL: Menambah lajur secara dinamik ke pangkalan data anda Dalam pengurusan data, kebolehsuaian SQL adalah penting. Perlu menyesuaikan struktur pangkalan data anda dengan cepat? Pernyataan Jadual ALTER adalah penyelesaian anda. Butiran panduan ini menambah colu

Pelepasan ini termasuk tiga model yang berbeza, GPT-4.1, GPT-4.1 Mini dan GPT-4.1 Nano, menandakan langkah ke arah pengoptimuman khusus tugas dalam landskap model bahasa yang besar. Model-model ini tidak segera menggantikan antara muka yang dihadapi pengguna seperti

Buka kunci kekuatan model embedding: menyelam jauh ke kursus baru Andrew Ng Bayangkan masa depan di mana mesin memahami dan menjawab soalan anda dengan ketepatan yang sempurna. Ini bukan fiksyen sains; Terima kasih kepada kemajuan dalam AI, ia menjadi R

Simulasi Rocket dilancarkan dengan Rocketpy: Panduan Komprehensif Artikel ini membimbing anda melalui mensimulasikan pelancaran roket kuasa tinggi menggunakan Rocketpy, perpustakaan Python yang kuat. Kami akan merangkumi segala -galanya daripada menentukan komponen roket untuk menganalisis simula

Gemini sebagai asas strategi AI Google Gemini adalah asas kepada strategi ejen AI Google, memanfaatkan keupayaan multimodalnya untuk memproses dan menjana respons di seluruh teks, imej, audio, video dan kod. Dibangunkan oleh DeepM

"Super gembira untuk mengumumkan bahawa kami memperoleh robotik debunga untuk membawa robot sumber terbuka ke dunia," kata Hugging Face pada X. "Sejak Remi Cadene menyertai kami dari Tesla, kami telah menjadi platform perisian yang paling banyak digunakan untuk robot terbuka terima kasih

Dalam perkembangan penting bagi komuniti AI, Agentica dan bersama-sama AI telah mengeluarkan model pengekodan AI sumber terbuka bernama DeepCoder-14b. Menawarkan keupayaan penjanaan kod setanding dengan pesaing sumber tertutup seperti OpenAI
