Rumah > Peranti teknologi > AI > Apakah aliran agentik di Crewai? - Analytics Vidhya

Apakah aliran agentik di Crewai? - Analytics Vidhya

William Shakespeare
Lepaskan: 2025-03-18 12:05:09
asal
162 orang telah melayarinya

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.

Apakah aliran agentik di Crewai? - Analytics Vidhya

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

Apakah aliran agentik di Crewai? - Analytics Vidhya

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.

{{Table_placeholder 21}} `atau<td>Triggers a listener when any specified method emits an output.</td> <tr><td></td></tr> and_`
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>
Salin selepas log masuk

Mengendalikan amaran

 <code>import warnings warnings.filterwarnings('ignore')</code>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Menentukan genre dan genrestate

 <code>GENRES = ["action", "comedy", "drama", "sci-fi"] class GenreState(BaseModel): genre: str = ""</code>
Salin selepas log masuk

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>
Salin selepas log masuk

@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>
Salin selepas log masuk

Apakah aliran agentik di Crewai? - Analytics Vidhya

Memulakan aliran

 <code>recommendations = await flow.kickoff_async()</code>
Salin selepas log masuk

Apakah aliran agentik di Crewai? - Analytics VidhyaApakah aliran agentik di Crewai? - Analytics Vidhya

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!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan