Együttműködő AI-ügynökök létrehozása a CrewAI-val

Együttműködő AI-ügynökök létrehozása a CrewAI-val

Forrás csomópont: 3089434

Bevezetés

Az AI-ügynökfejlesztés a szoftverinnováció egyik legforróbb határa. Ahogy a Large Language Models minősége fejlődik, az AI-ügynökök meglévő szoftverrendszerekkel való integrációjának felfutásának leszünk tanúi. Az AI-ügynökök segítségével a feladatokat hang- vagy kézmozdulatokkal lehet majd végrehajtani, ahelyett, hogy manuálisan navigálnának az alkalmazások között. De jelenleg az ügynökfejlesztés a születőben van. Még mindig az infrastruktúra, az eszközök és a keretrendszer fejlesztésének kezdeti szakaszán megyünk keresztül, hasonlóan az 1990-es évek internetéhez. Tehát ebben a cikkben egy másik, CrewAI nevű ügynökfejlesztési keretet fogunk tárgyalni.

AI ügynökök

Tanulási célok

  • Tudjon meg többet az AI-ügynökökről.
  • Fedezze fel a CrewAI-t – egy nyílt forráskódú eszközt építőügynökök számára.
  • Hozzon létre egy együttműködő AI-stábot a tartalomíráshoz.
  • Fedezze fel az AI-ügynökök valós használati eseteit.

Ez a cikk részeként jelent meg Adattudományi Blogaton.

Tartalomjegyzék

Mik azok az AI-ügynökök?

A nyelvi modellek kiválóak a fordításban, az összegzésben és az érvelésben. Azonban sok mindent megtehetsz velük. Az érvelési potenciál teljes kihasználásának egyik módja az LLM-ek ügynökké tétele. Az AI-ügynökök LLM-ek, a megfelelő eszközökkel és utasításokkal kiegészítve. Ezek az ügynökök automatizálhatják a böngészést, a webes selejtezést, az SQL-lekérdezések végrehajtását, a fájlműveleteket stb. Az ügynökök az LLM-ek érvelési képességét használják arra, hogy az aktuális követelmények alapján válasszanak eszközt. De ahelyett, hogy egyetlen ügynököt használnánk egy feladathoz, sok közülük összetett feladatokat is összeállíthatunk.

A Langchain az alapértelmezett eszköz, amely eszünkbe jut, amikor az AI-ügynökökről beszélünk. Az AI-ügynökök manuális összehangolása együttműködési feladatok elvégzésére azonban kihívást jelent a Langchain esetében. Itt jön a képbe a CrewAI.

Mi az a CrewAI?

CrewAI egy nyílt forráskódú keretrendszer szerepjátékok és autonóm AI-ügynökök megszervezésére. Segít együttműködő mesterséges intelligencia-ügynökök létrehozásában, amelyek segítségével könnyedén elérheti az összetett célokat. A keretrendszer célja, hogy lehetővé tegye az AI-ügynökök számára, hogy szerepeket vállaljanak, feladatokat delegáljanak, és megosszák a célokat, hasonlóan a valós legénységhez. Íme néhány a CrewAI egyedi jellemzői közül:

  • Szerep alapú ügynökök: Meghatározhatunk ügynököket meghatározott szerepekkel, célokkal és háttértörténetekkel, hogy több kontextust biztosítsunk az LLM-eknek a válasz generálása előtt.
  • Feladatkezelés: Határozzon meg feladatokat eszközökkel, és dinamikusan rendelje hozzá azokat az ügynökökhöz.
  • Ügynökök közötti delegálás: Az ügynökök feladatokat delegálhatnak más ügynökökre a hatékony együttműködés érdekében.

Az alábbiakban a CrewAI gondolattérképének ábrázolása látható.

CrewAI

A CrewAI zökkenőmentesen integrálódik a Langchain ökoszisztémával. Ez azt jelenti, hogy használhatjuk a Langchain eszközöket és az LLM-integrációkat a CrewAI-val. 

Együttműködő mesterségesintelligencia-csoport felépítése

A CrewAI jobb megértése érdekében készítsünk együttműködő AI-ügynököket a kreatív tartalomíráshoz. Ehhez minden ügynökhöz meghatározzuk az ügynököket, eszközöket és a megfelelő feladatokat. Mivel ez egy tartalomírási csapat, három különálló ügynököt fogunk meghatározni, például egy ötletelemzőt, egy írót és egy szerkesztőt. Minden ügynökhöz egy feladat tartozik.

Az elemző ügynök feladata lesz az ötlet elemzése és egy átfogó terv elkészítése a tartalom megírásához. Az Író ügynöke elkészíti a cikk tervezetét, végül a szerkesztő feladata a vázlat formázása, szerkesztése és javítása. Mint tudjuk, a CrewAI lehetővé teszi számunkra, hogy egyedi eszközökkel bővítsük az ügynököket. A szerkesztőt kiegészítjük egy olyan eszközzel, amellyel a helyi lemezre menthetjük. De mindezen dolgok megvalósításához LLM-re van szükségünk. Itt a Google Gemini modelljét fogjuk használni.

Vágjunk bele a kódolásba

Mint minden Python-projekt esetében, hozzon létre egy virtuális környezetet, és telepítse a függőségeket. Szükségünk lesz a Crewai könyvtárra és a Langchain megvalósítására Google GenAI. Használhat más LLM-eket, például nyílt hozzáférésű modelleket EgyüttBármilyen mérlegvagy OpenAI modellek.

pip install crewai langchain-google-genai

A következő lépés az LLM és a kollaboratív ügynökeink meghatározása. Az ügynökök meghatározásához hozzon létre egy külön fájlt agents.py néven.

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
           )

Határozzuk meg a fájlmentő eszközt.

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."

A fenti write_file metódust Langchain eszközfüggvénye díszíti. Mivel a CrewAI Langchaint használ a motorháztető alatt, az eszközöknek meg kell felelniük a Langchain konvencióinak. A függvény egyetlen karakterláncot vár két részből, egy fájl elérési útból és egy csővel (|) elválasztott tartalomból. A metódus doc karakterláncai a függvény hozzáadott kontextusaként is használhatók. Ezért feltétlenül adjon meg részletes információkat a módszerről.

Határozzuk meg az ügynököket

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
)

Három ügynökünk van, mindegyik más szereppel, céllal és háttértörténettel. Ez az információ arra szolgál, hogy az LLM több kontextust biztosítson. A szerkesztő ügynökhöz tartozik egy íróeszköz.

A következő dolog a feladatok meghatározása. Ehhez hozzon létre egy másik task.py fájlt.

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).
            """)

Az itt található feladatok olyan részletes cselekvési tervek, amelyeket az ügynököktől elvárnak.

Végül hozza létre a main.py fájlt, amelyben összeállítjuk az ügynököket és a feladatokat egy működőképes csapat létrehozásához.

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))

A fenti kódban definiáltunk egy ContentWritingCrew osztályt, amely elfogad egy ötletláncot a felhasználótól. A _create_tasks metódus feladatokat hoz létre. A __call__ metódus inicializálja és elindítja a legénységet. A parancsfájl futtatása után megfigyelheti a műveletek láncát a terminálon vagy a notebookon. A feladatokat a legénység által meghatározott sorrendben hajtják végre. Itt van egy pillanatkép a végrehajtási naplóról.

végső ügynök

Ez a végső ügynök végrehajtási naplója. azaz Szerkesztő. Szerkeszti az író ügynökétől kapott piszkozatot, és a fájlíró eszközzel menti a fájlt megfelelő fájlnévvel.

Ez az általános munkafolyamat a CrewAI-val együttműködő AI-ügynökök létrehozásához. Párosíthat más Langchain eszközöket, vagy létrehozhat egyedi eszközöket hatékony felszólítással, hogy összetettebb feladatokat hajtson végre.

Itt található a kódok GitHub tárháza: sunilkumardash9/ContentWritingAgents.

Replit repository: Sunil-KumarKu17/CollborativeAIAgent

Valós használati esetek

Az autonóm AI-ügynököknek számos felhasználási esetük lehet. A személyi asszisztensektől a virtuális oktatókig. Íme néhány AI-ügynök használati eset.

  • Személyes AI-asszisztens: A személyi asszisztensek hamarosan szerves részünkké válnak. A Jarvis-szerű asszisztens, amely feldolgozza az összes adatot, betekintést nyújt az Ön számára, és önállóan kezeli a triviális feladatokat.
  • Kódtolmácsok: Az OpenAI kódértelmezője az AI ügynök zseniális példája. Az értelmező bármilyen Python-szkriptet futtathat, és szöveges promptra válaszul kiadhatja az eredményeket. Vitathatatlanul ez az eddigi legsikeresebb ügynök.
  • Virtuális oktatók: Ahogy az AI technológia fejlődik, számos területen számíthatunk virtuális oktatókra, mint például az oktatás, képzés stb.
  • Agent First szoftver: Az AI-ügynökök nagy potenciális felhasználási esete az ügynök-első szoftverfejlesztés. Ahelyett, hogy manuálisan böngésznének és a gombokra kattintanának a dolgok elvégzéséhez, az AI-ügynökök automatikusan végrehajtják azokat hangutasítások alapján.
  • Térbeli számítástechnika: Ahogy az AR/VR technológia fejlődik, az AI-ügynökök döntő szerepet fognak játszani a virtuális és a valós világ közötti szakadék áthidalásában.

Következtetés

Még mindig az AI-ügynökfejlesztés korai szakaszában járunk. Jelenleg a GPT-4-re kell hagyatkoznunk ahhoz, hogy az AI-ügynökök a lehető legjobb eredményt érjék el, és ez drága. De ahogy a nyílt forráskódú modellek felzárkóznak a GPT-4-hez, jobb lehetőségeket kapunk az AI-ügynökök ésszerű költségek melletti hatékony működtetésére. Másrészt az ügynökfejlesztés keretei gyorsan fejlődnek. Ahogy haladunk előre, a keretrendszerek lehetővé teszik az ügynökök számára, hogy még összetettebb feladatokat hajtsanak végre.

 Kulcs elvezetések

  • Az AI-ügynökök kihasználják az LLM-ek érvelési képességét, hogy megfelelő eszközöket válasszanak ki összetett feladatok elvégzéséhez.
  • A CrewAI egy nyílt forráskódú keretrendszer együttműködő AI-ügynökök létrehozására.
  • A CrewAI egyedülálló funkciója közé tartozik a szerepalapú ügynökök, az autonóm ügynökségek közötti delegálás és a rugalmas feladatkezelés.
  • A CrewAI zökkenőmentesen integrálódik a meglévő Langchain ökoszisztémával. A CrewAI-val Langchain eszközöket és LLM-integrációkat használhatunk.

Gyakran ismételt kérdések

Q1. Mik azok az AI ügynökök?

V. Az AI-ügynökök olyan szoftverprogramok, amelyek kölcsönhatásba lépnek a környezetükkel, döntéseket hoznak, és egy végső cél elérése érdekében cselekszenek.

Q2. Mi a legjobb LLM az AI-ügynökökhöz?

V. Ez a felhasználási esetektől és a költségvetéstől függ. A GPT 4 a legképességesebb, de drágább, míg a GPT 3.5, Mixtral és Gemini Pro modellek kevésbé minősítettek, de gyorsak és olcsók.

Q3. Mi az a CrewAI?

A. A CrewAI egy nyílt forráskódú keretrendszer szerepjáték és autonóm AI-ügynökök megszervezésére. Segít együttműködő mesterséges intelligencia-ügynökök létrehozásában, amelyek segítségével könnyedén elérheti az összetett célokat.

Q4. Mire használható a CrewAI?

A. A CrewAI magas szintű absztrakciót biztosít az együttműködésen alapuló mesterséges intelligencia-ügynökök létrehozásához összetett munkafolyamatokhoz.

Q5. Mi a különbség a CrewAi és az Autogen között?

V. Az Autogenben az ágensek interakcióinak összehangolása további programozást igényel, ami bonyolulttá és nehézkessé válhat, ahogy a feladatok skálája nő.

A cikkben bemutatott média nem az Analytics Vidhya tulajdona, és a szerző saját belátása szerint használja.

Időbélyeg:

Még több Analytics Vidhya