Predstavitev
Razvoj agentov AI je ena najbolj vročih meja inovacij programske opreme. Ko se kakovost velikih jezikovnih modelov razvija, bomo priča porastu integracije agentov AI z obstoječimi programskimi sistemi. Z agenti AI bo mogoče naloge opravljati z glasovnimi ukazi ali ukazi s kretnjami namesto ročnega krmarjenja po aplikacijah. Toda trenutno je razvoj agentov v začetni fazi. Še vedno gremo skozi začetno fazo razvoja infrastrukture, orodij in ogrodja, podobno kot internet v devetdesetih. Torej, v tem članku bomo razpravljali o drugem okviru za razvoj agentov, imenovanem CrewAI.
Učni cilji
- Spoznajte agente AI.
- Raziščite CrewAI – odprtokodno orodje za gradnjo agentov.
- Zgradite sodelujočo ekipo AI za pisanje vsebine.
- Raziščite primere uporabe agentov AI v resničnem življenju.
Ta članek je bil objavljen kot del Blogaton podatkovne znanosti.
Kazalo
Kaj so agenti AI?
Jezikovni modeli so odlični pri prevajanju, povzemanju in sklepanju. Vendar pa lahko z njimi naredite veliko. Eden od načinov za popolno uresničitev potenciala sklepanja je, da LLM postanejo agenti. Agenti umetne inteligence so LLM-ji, obogateni s pravimi orodji in pozivi. Ti agenti lahko avtomatizirajo brskanje, brskanje po spletu, izvajanje poizvedb SQL, operacije datotek in drugo. Agenti uporabljajo zmožnost razmišljanja LLM-jev, da izberejo orodje na podlagi trenutnih zahtev. Toda namesto da bi za nalogo uporabili enega samega agenta, jih lahko združimo več, da opravimo zapletene naloge.
Langchain je privzeto orodje, ki pride na misel, ko govorimo o agentih AI. Vendar pa bi bilo ročno usmerjanje agentov AI za izvajanje sodelovalnih nalog izziv z Langchainom. Tu nastopi CrewAI.
Kaj je CrewAI?
CrewAI je odprtokodno ogrodje za orkestriranje igranja vlog in avtonomnih agentov AI. Pomaga ustvariti sodelujoče agente AI za enostavno doseganje zapletenih ciljev. Ogrodje je zasnovano tako, da agentom AI omogoča prevzemanje vlog, delegiranje nalog in skupno rabo ciljev, podobno kot posadka v resničnem svetu. To je nekaj edinstvenih lastnosti CrewAI:
- Agenti, ki temeljijo na vlogah: Agente lahko definiramo s posebnimi vlogami, cilji in zgodbami, da damo več konteksta LLM-jem pred ustvarjanjem odgovora.
- Upravljanje opravil: Določite opravila z orodji in jih dinamično dodelite agentom.
- Delegiranje med agenti: Agenti lahko prenesejo naloge na druge agente za učinkovito sodelovanje.
Spodaj je predstavitev miselne karte CrewAI.
CrewAI se brezhibno integrira z ekosistemom Langchain. To pomeni, da lahko uporabljamo orodja Langchain in integracije LLM s CrewAI.
Ustvarjanje sodelovalne ekipe AI
Da bi bolje razumeli CrewAI, zgradimo sodelujoče agente AI za kreativno pisanje vsebine. Za to bomo definirali agente, orodja in zadevne naloge za vsakega agenta. Ker gre za ekipo za pisanje vsebine, bomo definirali tri ločene agente, kot so analitik idej, pisec in urednik. Vsakemu agentu bo dodeljena naloga.
Agent analitik bo odgovoren za analizo ideje in pripravo celovitega načrta za pisanje vsebine. Agent Writer bo pripravil osnutek za članek, na koncu pa bo urednik odgovoren za oblikovanje, urejanje in popravljanje osnutka. Kot vemo, nam CrewAI omogoča razširitev agentov z orodji po meri. Urejevalnik bomo dopolnili z orodjem za shranjevanje na lokalni disk. Toda za dosego vseh teh stvari potrebujemo LLM. Tukaj bomo uporabili Googlov model Gemini.
Poglobimo se v kodiranje
Kot pri vsakem projektu Python ustvarite virtualno okolje in namestite odvisnosti. Potrebovali bomo knjižnico Crewai in Langchainovo izvedbo Google GenAI. Uporabite lahko druge LLM-je, kot so modeli z odprtim dostopom iz skupaj, Katera koli lestvica, ali modeli OpenAI.
pip install crewai langchain-google-genai
Naslednji korak je opredelitev naših LLM in sodelujočih agentov. Ustvarite ločeno datoteko z imenom agents.py, da definirate agente.
import os
from crewai import Agent
from langchain.tools import tool
from langchain_google_genai import GoogleGenerativeAI
GOOGLE_API_KEY = "Your Key"
llm = GoogleGenerativeAI(
model="gemini-pro",
google_api_key=GOOGLE_API_KEY
)
Opredelimo orodje za shranjevanje datotek.
class FileTools:
@tool("Write File with content")
def write_file(data: str):
"""Useful to write a file to a given path with a given content.
The input to this tool should be a pipe (|) separated text
of length two, representing the full path of the file,
including the ./lore/, and the written content you want to write to it.
"""
try:
path, content = data.split("|")
path = path.replace("n", "").replace(" ", "").replace("`", "")
if not path.startswith("./lore"):
path = f"./lore/{path}"
with open(path, "w") as f:
f.write(content)
return f"File written to {path}."
except Exception:
return "Error with the input format for the tool."
Zgornja metoda write_file je okrašena s funkcijo orodja Langchain. Ker CrewAI uporablja Langchain pod pokrovom, morajo biti orodja v skladu s konvencijami Langchaina. Funkcija pričakuje en sam niz z dvema deloma, potjo do datoteke in vsebino, ločeno s cevjo (|). Nizi dokumenta metode se uporabljajo tudi kot dodan kontekst za funkcijo. Zato zagotovite podrobne informacije o metodi.
Opredelimo zastopnike
idea_analyst = Agent(
role = "Idea Analyst",
goal = "Comprehensively analyse an idea to prepare blueprints for the article to be written",
backstory="""You are an experienced content analyst, well versed in analyzing
an idea and preparing a blueprint for it.""",
llm = llm,
verbose=True
)
writer = Agent(
role = "Fiction Writer",
goal = "Write compelling fantasy and sci-fi fictions from the ideas given by the analyst",
backstory="""A renowned fiction-writer with 2 times NYT
a best-selling author in the fiction and sci-fi category.""",
llm=llm,
verbose=True
)
editor = Agent(
role= "Content Editor",
goal = "Edit contents written by writer",
backstory="""You are an experienced editor with years of
experience in editing books and stories.""",
llm = llm,
tools=[FileTools.write_file],
verbose=True
)
Imamo tri agente, vsakega z drugačno vlogo, ciljem in zgodovino. Te informacije se uporabljajo kot poziv za LLM, da poda več konteksta. Agent urejevalnika ima povezano orodje za pisanje.
Naslednja stvar je opredelitev nalog. Za to ustvarite drugo datoteko tasks.py.
from textwrap import dedent
class CreateTasks:
def expand_idea():
return dedent(""" Analyse the given task {idea}. Prepare comprehensive pin-points
for accomplishing the given task.
Make sure the ideas are to the point, coherent, and compelling.
Make sure you abide by the rules. Don't use any tools.
RULES:
- Write ideas in bullet points.
- Avoid adult ideas.
""")
def write():
return dedent("""Write a compelling story in 1200 words based on the blueprint
ideas given by the Idea
analyst.
Make sure the contents are coherent, easily communicable, and captivating.
Don't use any tools.
Make sure you abide by the rules.
RULES:
- Writing must be grammatically correct.
- Use as little jargon as possible
""")
def edit():
return dedent("""
Look for any grammatical mistakes, edit, and format if needed.
Add title and subtitles to the text when needed.
Do not shorten the content or add comments.
Create a suitable filename for the content with the .txt extension.
You MUST use the tool to save it to the path ./lore/(your title.txt).
""")
Naloge tukaj so podrobni akcijski načrti, ki jih pričakujete od agentov.
Na koncu ustvarite datoteko main.py, kjer sestavimo agente in naloge, da ustvarimo funkcionalno ekipo.
from textwrap import dedent
from crewai import Crew, Task
from agents import editor, idea_analyst, writer
from tasks import CreateTasks
class ContentWritingCrew():
def __init__(self, idea):
self.idea = idea
def __call__(self):
tasks = self._create_tasks()
crew = Crew(
tasks=tasks,
agents=[idea_analyst, writer, editor],
verbose=True
)
result = crew.kickoff()
return result
def _create_tasks(self):
idea = CreateTasks.expand_idea().format(idea=self.idea)
expand_idea_task = Task(
description=idea,
agent = idea_analyst
)
write_task = Task(
description=CreateTasks.write(),
agent=writer
)
edit_task = Task(
description=CreateTasks.edit(),
agent=editor
)
return [expand_idea_task, write_task, edit_task]
if __name__ == "__main__":
dir = "./lore"
if not os.path.exists(dir):
os.mkdir(dir)
idea = input("idea: ")
my_crew = ContentWritingCrew(idea=idea)
result = my_crew()
print(dedent(result))
V zgornji kodi smo definirali razred ContentWritingCrew, ki od uporabnika sprejme idejni niz. Metoda _create_tasks ustvari naloge. Metoda __call__ inicializira in zažene posadko. Ko zaženete skript, lahko opazujete verigo dejanj na terminalu ali prenosnem računalniku. Naloge se bodo izvajale po vrstnem redu, ki ga določi posadka. Tukaj je posnetek dnevnika izvajanja.
To je dnevnik izvajanja za končnega posrednika. tj urednik. Ureja osnutek, prejet od agenta pisca, in uporablja orodje za pisanje datotek, da datoteko shrani z ustreznim imenom datoteke.
To je splošni potek dela za ustvarjanje sodelujočih agentov AI s CrewAI. Lahko združite druga orodja Langchain ali ustvarite orodja po meri z učinkovitimi pozivi za izvajanje bolj zapletenih nalog.
Tukaj je repozitorij GitHub za kode: sunilkumardash9/ContentWritingAgents.
Replit repozitorij: Sunil-KumarKu17/CollborativeAIAgent
Primeri uporabe v resničnem svetu
Avtonomni agenti AI imajo lahko veliko primerov uporabe. Od osebnih asistentov do virtualnih inštruktorjev. Tukaj je nekaj primerov uporabe agentov AI.
- Osebni pomočnik AI: Osebni asistenti bodo kmalu sestavni del nas. Pomočnik, podoben Jarvisu, ki obdeluje vse vaše podatke, zagotavlja vpogled sproti in sam obravnava trivialne naloge.
- Tolmači kod: Tolmač kode OpenAI je odličen primer agenta AI. Tolmač lahko zažene kateri koli skript Python in izpiše rezultate kot odgovor na besedilni poziv. To je verjetno najuspešnejši agent doslej.
- Virtualni inštruktorji: Ko se tehnologija umetne inteligence razvija, lahko pričakujemo virtualne inštruktorje na številnih področjih, kot so izobraževanje, usposabljanje itd.
- Programska oprema Agent First: Ogromen potencialni primer uporabe agentov AI je razvoj programske opreme agenta. Namesto ročnega brskanja in klikanja gumbov, da bi opravili stvari, jih bodo agenti AI samodejno izvedli na podlagi glasovnih ukazov.
- Prostorsko računalništvo: Ko se tehnologija AR/VR razvija, bodo imeli agenti AI ključno vlogo pri premoščanju vrzeli med virtualnim in resničnim svetom.
zaključek
Še vedno smo v zgodnjih fazah razvoja agenta AI. Trenutno se moramo za najboljši možni rezultat agentov AI zanašati na GPT-4, ki je drag. Toda ko bodo odprtokodni modeli dosegli GPT-4, bomo dobili boljše možnosti za učinkovito izvajanje agentov AI po razumni ceni. Po drugi strani pa okviri za razvoj agentov hitro napredujejo. Ko gremo naprej, bodo ogrodja omogočala agentom izvajanje še bolj zapletenih nalog.
Ključni izdelki
- Agenti umetne inteligence izkoristijo zmožnost razmišljanja LLM-jev, da izberejo ustrezna orodja za izpolnjevanje zapletenih nalog.
- CrewAI je odprtokodno ogrodje za ustvarjanje sodelujočih agentov AI.
- Edinstvena funkcija CrewAI vključuje agente na podlagi vlog, avtonomno delegiranje med agenti in prilagodljivo upravljanje nalog.
- CrewAI se neopazno integrira z obstoječim ekosistemom Langchain. Uporabljamo lahko orodja Langchain in integracije LLM s CrewAI.
Pogosto zastavljena vprašanja
A. Agenti umetne inteligence so programski programi, ki komunicirajo s svojim okoljem, sprejemajo odločitve in delujejo za dosego končnega cilja.
A. To je odvisno od vaših primerov uporabe in proračuna. GPT 4 je najzmogljivejši, a drag, medtem ko so modeli GPT 3.5, Mixtral in Gemini Pro manj kvalificirani, a hitri in poceni.
A. CrewAI je odprtokodno ogrodje za orkestriranje igranja vlog in avtonomnih agentov AI. Pomaga ustvariti sodelujoče agente AI za enostavno doseganje zapletenih ciljev.
A. CrewAI zagotavlja visokonivojsko abstrakcijo za ustvarjanje sodelujočih agentov AI za kompleksne poteke dela.
A. V Autogenu je za orkestriranje interakcij agentov potrebno dodatno programiranje, ki lahko postane zapleteno in okorno, ko se obseg nalog povečuje.
Mediji, prikazani v tem članku, niso v lasti Analytics Vidhya in se uporabljajo po lastni presoji avtorja.
Podobni
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoData.Network Vertical Generative Ai. Opolnomočite se. Dostopite tukaj.
- PlatoAiStream. Web3 Intelligence. Razširjeno znanje. Dostopite tukaj.
- PlatoESG. Ogljik, CleanTech, Energija, Okolje, sončna energija, Ravnanje z odpadki. Dostopite tukaj.
- PlatoHealth. Obveščanje o biotehnologiji in kliničnih preskušanjih. Dostopite tukaj.
- vir: https://www.analyticsvidhya.com/blog/2024/01/building-collaborative-ai-agents-with-crewai/
- :ima
- : je
- :ne
- :kje
- $GOR
- 10
- 11
- 16
- 8
- a
- O meni
- nad
- abstrakcija
- Sprejema
- doseganje
- uresničevanje
- Doseči
- Zakon
- Ukrep
- dejavnosti
- dodajte
- dodano
- Dodatne
- Izobraževanje odraslih
- Agent
- agenti
- AI
- vsi
- Prav tako
- an
- analizirati
- Analitik
- analitika
- Analitika Vidhya
- analiziranje
- in
- Še ena
- odgovor
- kaj
- aplikacije
- primerno
- AR / VR
- SE
- argumentirano
- članek
- AS
- dodeljena
- Pomočnik
- pomočniki
- povezan
- domnevati
- At
- povečanje
- Povečana
- Avtor
- avtomatizirati
- samodejno
- avtonomno
- izogniti
- temeljijo
- BE
- postanejo
- pred
- BEST
- Boljše
- med
- blogaton
- načrt
- knjige
- premostitev
- briljantno
- Brskanje
- proračun
- izgradnjo
- Building
- vendar
- gumbi
- by
- se imenuje
- CAN
- lahko
- kapaciteta
- navdušujoče
- primeru
- primeri
- wrestling
- Kategorija
- verige
- izziv
- poceni
- razred
- Koda
- Kode
- KOHERENTNO
- sodelovati
- sodelovanje
- prihaja
- komentarji
- prepričljiv
- prepričljiva zgodba
- kompleksna
- izpolnjujejo
- celovito
- vsebina
- Vsebinsko pisanje
- Vsebina
- ozadje
- Konvencij
- popravi
- strošek
- ustvarjajo
- ustvari
- Ustvarjanje
- Creative
- posadka
- ključnega pomena
- okoren
- Trenutna
- Trenutno
- po meri
- Dash
- datum
- Datum
- odločitve
- privzeto
- opredeliti
- opredeljen
- delegacija
- potopite
- odvisnosti
- odvisno
- zasnovan
- podrobno
- Razvoj
- Razlika
- drugačen
- diskretnost
- razpravlja
- razpravljali
- do
- don
- opravljeno
- Osnutek
- dinamično
- e
- vsak
- Zgodnje
- enostavnost
- enostavno
- ekosistem
- urejanje
- urednik
- Izobraževanje
- učinkovito
- učinkovite
- učinkovito
- omogočajo
- konec
- okolje
- Napaka
- itd
- Eter (ETH)
- Tudi
- razvija
- Primer
- Excel
- Razen
- izjema
- izvršeno
- izvedba
- obstoječih
- pričakovati
- pričakuje
- drago
- izkušnje
- izkušen
- razširitev
- FANTASY
- FAST
- Feature
- Lastnosti
- Nekaj
- Fiction
- Področja
- file
- končna
- končno
- prva
- prilagodljiv
- za
- format
- Naprej
- Okvirni
- okviri
- iz
- Frontiers
- polno
- v celoti
- funkcija
- funkcionalno
- vrzel
- Gemini
- splošno
- generacija
- gesta
- dobili
- GitHub
- Daj
- dana
- Go
- Cilj
- Cilji
- dogaja
- Googlova
- raste
- strani
- Ročaji
- Imajo
- Pomaga
- tukaj
- na visoki ravni
- napa
- najbolj vročih
- Vendar
- HTTPS
- velika
- i
- Ideja
- Ideje
- if
- Izvajanje
- uvoz
- in
- vključuje
- Vključno
- Podatki
- Infrastruktura
- začetna
- Inovacije
- vhod
- vpogled
- namestitev
- Namesto
- integral
- Integrira
- integracija
- integracije
- interakcijo
- interakcije
- Internet
- v
- IT
- ITS
- sam
- žargon
- jpg
- Ključne
- Udarcev
- Vedite
- Kumar
- jezik
- velika
- dolžina
- manj
- Lets
- Vzvod
- Knjižnica
- kot
- malo
- lokalna
- prijavi
- Poglej
- Sklop
- Glavne
- Znamka
- upravljanje
- ročno
- več
- map
- pomeni
- mediji
- Metoda
- moti
- napake
- Model
- modeli
- več
- Najbolj
- premikanje
- premikaj se naprej
- veliko
- morajo
- Imenovan
- nastajajoče
- krmarjenje
- Nimate
- potrebna
- Naslednja
- prenosnik
- zdaj
- NYT
- opazujejo
- of
- off
- on
- enkrat
- ONE
- open source
- OpenAI
- operacije
- možnosti
- or
- orkestriranje
- Da
- OS
- Ostalo
- naši
- Rezultat
- izhod
- v lasti
- par
- del
- deli
- pot
- opravlja
- Osebni
- faza
- slika
- cevi
- načrti
- platon
- Platonova podatkovna inteligenca
- PlatoData
- Predvajaj
- Točka
- točke
- mogoče
- potencial
- Pripravimo
- priprava
- za
- Procesi
- Programiranje
- programi
- napreduje
- Projekt
- pozove
- zagotavlja
- objavljeno
- Python
- kvalificirano
- kakovost
- hitro
- pravo
- resnični svet
- uresničitev
- razumno
- prejetih
- zanašajo
- Priznan
- Skladišče
- zastopanje
- predstavlja
- Zahteve
- zahteva
- tisti,
- Odgovor
- odgovorna
- povzroči
- Rezultati
- vrnitev
- Pravica
- vloga
- Igranje vlog
- vloge
- pravila
- Run
- tek
- Shrani
- Lestvica
- sci-fi
- Znanost
- script
- brez težav
- izberite
- SAMO
- ločena
- Delite s prijatelji, znanci, družino in partnerji :-)
- shouldnt
- pokazale
- Podoben
- sam
- Posnetek
- So
- Software
- Razvoj programske opreme
- nekaj
- Kmalu
- specifična
- SQL
- Stage
- postopka
- Korak
- Še vedno
- zgodbe
- Zgodba
- String
- podnapisi
- uspešno
- primerna
- Preverite
- prenapetost
- sistemi
- T
- Naloga
- Naloge
- skupina
- tech
- terminal
- besedilo
- da
- O
- njihove
- Njih
- te
- jih
- stvar
- stvari
- ta
- 3
- skozi
- krat
- Naslov
- do
- orodje
- orodja
- usposabljanje
- prevod
- poskusite
- dva
- pod
- razumeli
- edinstven
- edinstvene lastnosti
- us
- uporaba
- primeru uporabe
- Primeri uporabe AI
- Rabljeni
- koristno
- uporabnik
- uporablja
- uporabo
- podkovan
- Virtual
- Voice
- glasovne ukaze
- W
- želeli
- je
- načini
- we
- web
- webp
- Dobro
- Kaj
- Kaj je
- kdaj
- ki
- medtem
- bo
- z
- priča
- besede
- potek dela
- delovnih tokov
- svet
- bi
- pisati
- Pisatelj
- pisanje
- pisni
- let
- jo
- Vaša rutina za
- zefirnet