Sissejuhatus
AI-agendi arendamine on tarkvarainnovatsiooni üks kuumemaid piire. Kuna suurte keelemudelite kvaliteet areneb, oleme tunnistajaks tehisintellekti agentide integreerimisele olemasolevate tarkvarasüsteemidega. AI-agentidega on rakendustes käsitsi navigeerimise asemel võimalik ülesandeid täita hääl- või žestikäsklustega. Kuid praegu on agentide arendamine alles kujunemisjärgus. Oleme endiselt läbimas infrastruktuuri, tööriistade ja raamistiku arendamise algfaasi, sarnaselt 1990. aastate Internetile. Seega käsitleme selles artiklis teist agentide arendamise raamistikku nimega CrewAI.
õppe eesmärgid
- Lisateavet tehisintellekti agentide kohta.
- Avastage CrewAI – avatud lähtekoodiga tööriist ehitusagentidele.
- Looge sisu kirjutamiseks koostööd tegev AI meeskond.
- Avastage tehisintellekti agentide tegelikke kasutusjuhtumeid.
See artikkel avaldati osana Andmeteaduse ajaveebi.
Sisukord
Mis on AI agendid?
Keelemudelid on suurepärased tõlkimise, kokkuvõtete tegemise ja arutlemise osas. Samas saab nendega nii mõndagi ära teha. Üks viise, kuidas arutluspotentsiaali täielikult realiseerida, on muuta LLM-id agendiks. AI agendid on LLM-id, mida on täiendatud õigete tööriistade ja viipadega. Need agendid saavad automatiseerida sirvimist, veebi väljalõikamist, SQL-päringu täitmist, failitoiminguid ja palju muud. Agendid kasutavad LLM-ide arutlusvõimet, et valida tööriist praeguste nõuete alusel. Kuid selle asemel, et kasutada ülesande jaoks ühte agenti, saame paljud neist keerukate ülesannete täitmiseks koondada.
Langchain on vaiketööriist, mis AI agentide üle arutledes meelde tuleb. Kuid AI-agentide käsitsi korraldamine koostööülesannete täitmiseks oleks Langchainiga keeruline. Siin tuleb pildile CrewAI.
Mis on CrewAI?
CrewAI on avatud lähtekoodiga raamistik rollimängude ja autonoomsete tehisintellekti agentide korraldamiseks. See aitab luua koostööl põhinevaid tehisintellekti agente, et täita keerulisi eesmärke hõlpsalt. Raamistik on loodud selleks, et võimaldada tehisintellekti agentidel võtta endale rolle, delegeerida ülesandeid ja jagada eesmärke sarnaselt reaalse meeskonnaga. Need on mõned CrewAI ainulaadsed omadused:
- Rollipõhised agendid: saame määratleda konkreetsete rollide, eesmärkide ja taustaga agente, et anda LLM-idele enne vastuse genereerimist rohkem konteksti.
- Ülesandehaldus: määrake ülesanded tööriistadega ja määrake need dünaamiliselt agentidele.
- Agentidevaheline delegeerimine: agendid saavad tõhusaks koostööks delegeerida ülesandeid teistele agentidele.
Allpool on CrewAI mõttekaardi esitus.
CrewAI sulandub sujuvalt Langchaini ökosüsteemiga. See tähendab, et saame kasutada Langchaini tööriistu ja LLM-i integratsioone CrewAI-ga.
Koostöölise AI meeskonna loomine
CrewAI paremaks mõistmiseks loome loomingulise sisu kirjutamiseks koostöös tehisintellekti agente. Selleks määratleme iga agendi jaoks agendid, tööriistad ja vastavad ülesanded. Kuna tegemist on sisu kirjutamise meeskonnaga, määratleme kolm eraldi agenti, nagu ideeanalüütik, kirjanik ja toimetaja. Igale agendile määratakse ülesanne.
Analüütiku agent vastutab idee analüüsimise ja sisu kirjutamiseks põhjaliku kavandi koostamise eest. Kirjaniku agent valmistab ette artikli mustandi ja lõpuks vastutab toimetaja mustandi vormindamise, toimetamise ja parandamise eest. Nagu me teame, võimaldab CrewAI meil agente kohandatud tööriistadega täiendada. Täiendame redaktorit tööriistaga, mis salvestab selle kohalikule kettale. Kuid kõigi nende asjade saavutamiseks vajame LLM-i. Siin kasutame Google'i Gemini mudelit.
Süveneme kodeerimisse
Nagu iga Pythoni projekti puhul, looge virtuaalne keskkond ja installige sõltuvused. Vajame Crewai raamatukogu ja Langchaini rakendust Google GenAI. Saate kasutada teisi LLM-e, näiteks avatud juurdepääsuga mudeleid Kokku, Mis tahes skaalavõi OpenAI mudelid.
pip install crewai langchain-google-genai
Järgmine samm on meie LLM-i ja koostööagentide määratlemine. Agentide määratlemiseks looge eraldi fail nimega agents.py.
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
)
Määratleme faili salvestamise tööriista.
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."
Ülaltoodud meetod write_file on kaunistatud Langchaini tööriista funktsiooniga. Kuna CrewAI kasutab kapoti all Langchaini, peavad tööriistad vastama Langchaini tavadele. Funktsioon eeldab ühte stringi, millel on kaks osa, failitee ja sisu, mis on eraldatud toruga (|). Funktsiooni lisakontekstina kasutatakse ka meetodi doc stringe. Seega andke kindlasti meetodi kohta üksikasjalik teave.
Määratleme agendid
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
)
Meil on kolm agenti, igaühel erinev roll, eesmärk ja taust. Seda teavet kasutatakse LLM-i viipana, et anda rohkem konteksti. Toimetajaagendiga on seotud kirjutustööriist.
Järgmine asi on ülesannete määratlemine. Selleks looge muu fail task.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).
""")
Siin esitatud ülesanded on üksikasjalikud tegevusplaanid, mida agentidelt ootate.
Lõpuks looge fail main.py, kuhu koondame funktsionaalse meeskonna loomiseks agendid ja ülesanded.
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))
Ülaltoodud koodis määratlesime klassi ContentWritingCrew, mis aktsepteerib kasutaja ideestringi. Meetod _create_tasks loob ülesanded. Meetod __call__ initsialiseerib ja käivitab meeskonna. Kui olete skripti käivitanud, saate terminalis või sülearvutis jälgida toimingute ahelat. Ülesanded täidetakse meeskonna poolt määratud järjekorras. Siin on täitmislogi hetktõmmis.
See on lõpliku agendi täitmislogi. st Toimetaja. See redigeerib kirjutaja agendilt saadud mustandit ja kasutab faili kirjutamise tööriista, et salvestada fail sobiva failinimega.
See on CrewAI-ga koostööd tegevate AI-agentide loomise üldine töövoog. Saate siduda teisi Langchaini tööriistu või luua kohandatud tööriistu tõhusa viipaga keerukamate ülesannete täitmiseks.
Siin on koodide GitHubi hoidla: sunilkumardash9/ContentWritingAgents.
Repositoorium uuesti: Sunil-KumarKu17/CollborativeAIAgent
Reaalse maailma kasutusjuhtumid
Autonoomsetel AI-agentidel võib olla palju kasutusjuhtumeid. Isiklikest assistentidest virtuaalsete juhendajateni. Siin on mõned AI-agentide kasutusjuhtumid.
- Isiklik AI assistent: Isiklikud abistajad on peagi meie lahutamatu osa. Jarvise-sarnane assistent, mis töötleb kõiki teie andmeid, annab ülevaate töö käigus ja tegeleb triviaalsete ülesannetega ise.
- Kooditõlgid: OpenAI kooditõlk on AI agendi suurepärane näide. Tõlk võib käivitada mis tahes Pythoni skripti ja väljastada tulemused vastusena tekstiviipale. See on vaieldamatult seni edukaim agent.
- Virtuaalsed juhendajad: AI tehnoloogia arenedes võime oodata virtuaalseid juhendajaid paljudes valdkondades, nagu haridus, koolitus jne.
- Tarkvara agent esimene: Tehisintellekti agentide suur kasutusvõimalus on agentide esimeses tarkvaraarenduses. Asjade tegemiseks käsitsi sirvimise ja nuppude klõpsamise asemel teevad AI agendid need automaatselt häälkäskluste alusel.
- Ruumiline andmetöötlus: AR/VR-tehnoloogia arenedes mängivad tehisintellekti agendid otsustavat rolli virtuaalse ja reaalse maailma vahelise lõhe ületamisel.
Järeldus
Oleme AI-agendi arendamise algusjärgus. Praegu peame tehisintellekti agentide parima võimaliku tulemuse saavutamiseks toetuma GPT-4-le ja see on kallis. Kuid kuna avatud lähtekoodiga mudelid jõuavad GPT-4-le, saame paremaid võimalusi tehisintellekti agentide tõhusaks käitamiseks mõistliku kuluga. Teisest küljest arenevad agentide arendamise raamistikud kiiresti. Edasi liikudes võimaldavad raamistikud agentidel täita veelgi keerukamaid ülesandeid.
Võtme tagasivõtmine
- AI agendid kasutavad LLM-ide arutlusvõimet, et valida sobivaid tööriistu keerukate ülesannete täitmiseks.
- CrewAI on avatud lähtekoodiga raamistik koostöövõimeliste tehisintellekti agentide loomiseks.
- CrewAI ainulaadne funktsioon hõlmab rollipõhiseid agente, autonoomset agentidevahelist delegeerimist ja paindlikku ülesannete haldamist.
- CrewAI integreerub sujuvalt olemasoleva Langchaini ökosüsteemiga. CrewAI-ga saame kasutada Langchaini tööriistu ja LLM-i integratsioone.
Korduma kippuvad küsimused
V. AI agendid on tarkvaraprogrammid, mis suhtlevad oma keskkonnaga, teevad otsuseid ja tegutsevad lõppeesmärgi saavutamiseks.
V. See sõltub teie kasutusjuhtudest ja eelarvest. GPT 4 on kõige võimekam, kuid kallim, samas kui GPT 3.5, Mixtral ja Gemini Pro mudelid on vähem kvalifitseeritud, kuid kiired ja odavad.
A. CrewAI on avatud lähtekoodiga raamistik rollimängude ja autonoomsete tehisintellekti agentide korraldamiseks. See aitab luua koostööd tegevaid tehisintellekti agente, et täita keerulisi eesmärke hõlpsalt.
A. CrewAI pakub kõrgetasemelist abstraktsiooni keerukate töövoogude jaoks koostöötavate tehisintellekti agentide loomiseks.
V. Autogenis nõuab agentide interaktsioonide korraldamine täiendavat programmeerimist, mis võib ülesannete ulatuse kasvades muutuda keeruliseks ja tülikaks.
Selles artiklis näidatud meedia ei kuulu Analytics Vidhyale ja seda kasutatakse autori äranägemisel.
seotud
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- PlatoData.Network Vertikaalne generatiivne Ai. Jõustage ennast. Juurdepääs siia.
- PlatoAiStream. Web3 luure. Täiustatud teadmised. Juurdepääs siia.
- PlatoESG. Süsinik, CleanTech, Energia, Keskkond päikeseenergia, Jäätmekäitluse. Juurdepääs siia.
- PlatoTervis. Biotehnoloogia ja kliiniliste uuringute luureandmed. Juurdepääs siia.
- Allikas: https://www.analyticsvidhya.com/blog/2024/01/building-collaborative-ai-agents-with-crewai/
- :on
- :on
- :mitte
- : kus
- $ UP
- 10
- 11
- 16
- 8
- a
- MEIST
- üle
- abstraktsioon
- Nõustub
- täitma
- saavutamine
- Saavutada
- tegu
- tegevus
- meetmete
- lisama
- lisatud
- Täiendavad lisad
- Täiskasvanud
- Agent
- ained
- AI
- Materjal: BPA ja flataatide vaba plastik
- Ka
- an
- analüüsima
- analüütik
- analytics
- Analüütika Vidhya
- analüüsides
- ja
- Teine
- vastus
- mistahes
- rakendused
- asjakohane
- AR / VR
- OLEME
- vaieldamatult
- artikkel
- AS
- määratud
- assistent
- assistendid
- seotud
- eeldab
- At
- suurendama
- suurendatud
- autor
- automatiseerima
- automaatselt
- autonoomne
- vältima
- põhineb
- BE
- muutuma
- enne
- BEST
- Parem
- vahel
- ajaveebi
- plaan
- Raamatud
- ühendamine
- hiilgav
- Sirvimine
- eelarve
- ehitama
- Ehitus
- kuid
- nupud
- by
- kutsutud
- CAN
- võimeline
- Võimsus
- köitev
- juhul
- juhtudel
- maadlus
- Kategooria
- kett
- raske
- odav
- klass
- kood
- koodid
- SIDUS
- Teevad koostööd
- koostööl
- tuleb
- kommentaarid
- kaalukad
- kaalukas lugu
- keeruline
- täitma
- terviklik
- sisu
- Sisu kirjutamine
- sisu
- kontekst
- Konventsioonid
- parandada
- Maksma
- looma
- loob
- loomine
- Loominguline
- meeskond
- otsustav
- tülikas
- Praegune
- Praegu
- tava
- Kriips
- andmed
- kuupäev
- otsused
- vaikimisi
- määratlema
- määratletud
- delegeerimine
- süvenema
- sõltuvused
- sõltub
- kavandatud
- üksikasjalik
- & Tarkvaraarendus
- erinevus
- erinev
- äranägemisel
- arutama
- arutame
- do
- don
- tehtud
- eelnõu
- dünaamiliselt
- e
- iga
- Varajane
- leevendada
- kergesti
- ökosüsteemi
- toimetamine
- toimetaja
- Käsitöö
- tõhusalt
- tõhus
- tõhusalt
- võimaldama
- lõpp
- keskkond
- viga
- jms
- Eeter (ETH)
- Isegi
- areneb
- näide
- Excel
- Välja arvatud
- erand
- täidetud
- täitmine
- olemasolevate
- ootama
- ootab
- kallis
- kogemus
- kogenud
- laiendamine
- FANTASY
- KIIRE
- tunnusjoon
- FUNKTSIOONID
- vähe
- Ilukirjandus
- Valdkonnad
- fail
- lõplik
- Lõpuks
- esimene
- paindlik
- eest
- formaat
- edasi
- Raamistik
- raamistikud
- Alates
- Frontiers
- täis
- täielikult
- funktsioon
- funktsionaalne
- lõhe
- Kaksikud
- Üldine
- põlvkond
- žest
- saama
- GitHub
- Andma
- antud
- Go
- eesmärk
- Eesmärgid
- läheb
- Kasvab
- käsi
- Varred
- Olema
- aitab
- siin
- kõrgetasemeline
- kapuuts
- kuumim
- aga
- HTTPS
- tohutu
- i
- idee
- ideid
- if
- täitmine
- import
- in
- hõlmab
- Kaasa arvatud
- info
- Infrastruktuur
- esialgne
- Innovatsioon
- sisend
- ülevaade
- paigaldama
- selle asemel
- lahutamatu
- Integreerib
- integratsioon
- integratsioon
- suhelda
- interaktsioonid
- Internet
- sisse
- IT
- ITS
- ise
- erikeel
- jpg
- Võti
- Kicks
- Teadma
- kumar
- keel
- suur
- Pikkus
- vähem
- Lets
- Finantsvõimendus
- Raamatukogu
- nagu
- vähe
- kohalik
- logi
- Vaata
- Partii
- põhiline
- tegema
- juhtimine
- käsitsi
- palju
- kaart
- vahendid
- Meedia
- meetod
- meeles
- vigu
- mudel
- mudelid
- rohkem
- kõige
- liikuma
- edasi liikuma
- palju
- peab
- Nimega
- tärkav
- navigeerimine
- Vajadus
- vaja
- järgmine
- märkmik
- nüüd
- NYT
- jälgima
- of
- maha
- on
- kunagi
- ONE
- avatud lähtekoodiga
- OpenAI
- Operations
- Valikud
- or
- orkestreerides
- et
- OS
- Muu
- meie
- Tulemus
- väljund
- omanikuks
- paar
- osa
- osad
- tee
- täitma
- isiklik
- faas
- pilt
- toru
- plaanid
- Platon
- Platoni andmete intelligentsus
- PlatoData
- mängima
- Punkt
- võrra
- võimalik
- potentsiaal
- Valmistama
- ettevalmistamisel
- Pro
- Protsessid
- Programming
- Programmid
- edeneb
- projekt
- küsib
- annab
- avaldatud
- Python
- kvalifitseeritud
- kvaliteet
- kiiresti
- reaalne
- päris maailm
- mõistma
- mõistlik
- saadud
- lootma
- Tuntud
- Hoidla
- esindamine
- esindavad
- Nõuded
- Vajab
- need
- vastus
- vastutav
- kaasa
- Tulemused
- tagasipöördumine
- õige
- Roll
- Rollimäng
- rollid
- eeskirjade
- jooks
- jooksmine
- Säästa
- Skaala
- ulmefilm
- teadus
- käsikiri
- sujuvalt
- valima
- SELF
- eri
- Jaga
- peaks
- näidatud
- sarnane
- ühekordne
- Snapshot
- So
- tarkvara
- tarkvaraarenduse
- mõned
- Varsti
- konkreetse
- SQL
- Stage
- etappidel
- Samm
- Veel
- Lood
- Lugu
- nöör
- subtiitrid
- edukas
- sobiv
- kindel
- hüppeline
- süsteemid
- T
- Ülesanne
- ülesanded
- meeskond
- tech
- terminal
- tekst
- et
- .
- oma
- Neile
- Need
- nad
- asi
- asjad
- see
- kolm
- Läbi
- korda
- Kapslid
- et
- tööriist
- töövahendid
- koolitus
- Tõlge
- püüdma
- kaks
- all
- mõistma
- ainulaadne
- ainulaadsed omadused
- us
- kasutama
- kasutage juhtumit
- AI kasutamise juhtumid
- Kasutatud
- kasulik
- Kasutaja
- kasutusalad
- kasutamine
- kogenud
- virtuaalne
- Hääl
- häälkäsklused
- W
- tahan
- oli
- kuidas
- we
- web
- webp
- Hästi
- M
- Mis on
- millal
- mis
- kuigi
- will
- koos
- tunnistaja
- sõnad
- töövoog
- Töövoogud
- maailm
- oleks
- kirjutama
- kirjanik
- kirjutamine
- kirjalik
- aastat
- sa
- Sinu
- sephyrnet