Δημιουργία συνεργατικών πρακτόρων AI με το CrewAI

Δημιουργία συνεργατικών πρακτόρων AI με το CrewAI

Κόμβος πηγής: 3089434

Εισαγωγή

Η ανάπτυξη πρακτόρων AI είναι ένα από τα πιο καυτά σύνορα της καινοτομίας λογισμικού. Καθώς η ποιότητα των Μεγάλων Γλωσσικών Μοντέλων εξελίσσεται, θα γίνουμε μάρτυρες μιας αύξησης στην ενσωμάτωση πρακτόρων τεχνητής νοημοσύνης με υπάρχοντα συστήματα λογισμικού. Με τους πράκτορες AI, θα είναι δυνατή η εκτέλεση εργασιών με φωνητικές εντολές ή χειρονομίες αντί της μη αυτόματης πλοήγησης στις εφαρμογές. Αλλά αυτή τη στιγμή, η ανάπτυξη πρακτόρων βρίσκεται στο αρχικό της στάδιο. Εξακολουθούμε να διανύουμε την αρχική φάση ανάπτυξης υποδομών, εργαλείων και πλαισίου, παρόμοια με το Διαδίκτυο της δεκαετίας του 1990. Έτσι, σε αυτό το άρθρο, θα συζητήσουμε ένα άλλο πλαίσιο για την ανάπτυξη πρακτόρων που ονομάζεται CrewAI.

Πράκτορες AI

Στόχοι μάθησης

  • Μάθετε για τους πράκτορες AI.
  • Εξερευνήστε το CrewAI – ένα εργαλείο ανοιχτού κώδικα για την κατασκευή πρακτόρων.
  • Δημιουργήστε ένα συνεργατικό πλήρωμα AI για τη σύνταξη περιεχομένου.
  • Εξερευνήστε πραγματικές περιπτώσεις χρήσης πρακτόρων τεχνητής νοημοσύνης.

Αυτό το άρθρο δημοσιεύθηκε ως μέρος του Data Science Blogathon.

Πίνακας περιεχομένων

Τι είναι οι πράκτορες AI;

Τα γλωσσικά μοντέλα υπερέχουν στη μετάφραση, τη σύνοψη και τη συλλογιστική. Ωστόσο, μπορείτε να κάνετε πολλά με αυτά. Ένας από τους τρόπους για να συνειδητοποιήσετε πλήρως τις δυνατότητες συλλογιστικής είναι να κάνετε τα LLMs agent. Οι πράκτορες AI είναι LLM επαυξημένα με τα σωστά εργαλεία και προτροπές. Αυτοί οι πράκτορες μπορούν να αυτοματοποιήσουν την περιήγηση, την απόσυρση ιστού, την εκτέλεση ερωτημάτων SQL, τις λειτουργίες αρχείων και πολλά άλλα. Οι πράκτορες χρησιμοποιούν τη συλλογιστική ικανότητα των LLM για να επιλέξουν ένα εργαλείο με βάση τις τρέχουσες απαιτήσεις. Αλλά αντί να χρησιμοποιούμε έναν μόνο πράκτορα για μια εργασία, μπορούμε να συνδυάσουμε πολλούς από αυτούς για να ολοκληρώσουμε πολύπλοκες εργασίες.

Το Langchain είναι το προεπιλεγμένο εργαλείο που έρχεται στο μυαλό όταν συζητάμε για πράκτορες AI. Ωστόσο, η χειροκίνητη ενορχήστρωση πρακτόρων AI για την εκτέλεση συνεργατικών εργασιών θα ήταν πρόκληση με τη Langchain. Αυτό είναι όπου το CrewAI έρχεται στην εικόνα.

Τι είναι το CrewAI;

CrewAI είναι ένα πλαίσιο ανοιχτού κώδικα για την ενορχήστρωση ρόλων και αυτόνομων πρακτόρων AI. Βοηθά στη δημιουργία συνεργατικών πρακτόρων τεχνητής νοημοσύνης για την εύκολη επίτευξη πολύπλοκων στόχων. Το πλαίσιο έχει σχεδιαστεί για να επιτρέπει στους πράκτορες της τεχνητής νοημοσύνης να αναλαμβάνουν ρόλους, να αναθέτουν καθήκοντα και να μοιράζονται στόχους, όπως ένα πλήρωμα πραγματικού κόσμου. Αυτά είναι μερικά από τα μοναδικά χαρακτηριστικά του CrewAI:

  • Πράκτορες βασισμένοι σε ρόλους: Μπορούμε να ορίσουμε πράκτορες με συγκεκριμένους ρόλους, στόχους και παρασκήνια για να δώσουμε περισσότερο πλαίσιο στα LLM πριν από τη δημιουργία απαντήσεων.
  • Διαχείριση εργασιών: Καθορίστε εργασίες με εργαλεία και αναθέστε τις δυναμικά σε πράκτορες.
  • Ανάθεση μεταξύ πρακτόρων: Οι πράκτορες μπορούν να αναθέσουν καθήκοντα σε άλλους πράκτορες για να συνεργαστούν αποτελεσματικά.

Παρακάτω είναι μια αναπαράσταση του χάρτη μυαλού CrewAI.

CrewAI

Το CrewAI ενσωματώνεται άψογα με το οικοσύστημα Langchain. Αυτό σημαίνει ότι μπορούμε να χρησιμοποιήσουμε τα εργαλεία Langchain και τις ενσωματώσεις LLM με το CrewAI. 

Δημιουργία συνεργατικού πληρώματος AI

Για να κατανοήσουμε καλύτερα το CrewAI, ας δημιουργήσουμε συνεργατικούς πράκτορες τεχνητής νοημοσύνης για τη δημιουργία δημιουργικού περιεχομένου. Για αυτό, θα ορίσουμε πράκτορες, εργαλεία και τις αντίστοιχες εργασίες για κάθε πράκτορα. Καθώς είναι μια ομάδα για τη συγγραφή περιεχομένου, θα ορίσουμε τρεις ξεχωριστούς παράγοντες, όπως έναν αναλυτή ιδεών, έναν συγγραφέα και έναν συντάκτη. Σε κάθε πράκτορα θα ανατεθεί μια εργασία.

Ο αναλυτής θα είναι υπεύθυνος για την ανάλυση της ιδέας και την προετοιμασία ενός ολοκληρωμένου σχεδίου για τη συγγραφή του περιεχομένου. Ο πράκτορας του Writer θα προετοιμάσει το προσχέδιο για το άρθρο και, τέλος, ο συντάκτης θα είναι υπεύθυνος για τη μορφοποίηση, την επεξεργασία και τη διόρθωση του προχείρου. Όπως γνωρίζουμε, το CrewAI μας επιτρέπει να αυξήσουμε τους πράκτορες με προσαρμοσμένα εργαλεία. Θα αυξήσουμε το πρόγραμμα επεξεργασίας με ένα εργαλείο για να το αποθηκεύσουμε στον τοπικό δίσκο. Αλλά για να επιτύχουμε όλα αυτά τα πράγματα, χρειαζόμαστε ένα LLM. Εδώ, θα χρησιμοποιήσουμε το μοντέλο Gemini της Google.

Ας εμβαθύνουμε στην κωδικοποίηση

Όπως με κάθε έργο Python, δημιουργήστε ένα εικονικό περιβάλλον και εγκαταστήστε τις εξαρτήσεις. Θα χρειαστούμε τη βιβλιοθήκη Crewai και την υλοποίηση της Langchain Google GenAI. Μπορείτε να χρησιμοποιήσετε άλλα LLM, όπως μοντέλα ανοιχτής πρόσβασης από ΜαζίΟποιαδήποτε κλίμακα, ή μοντέλα OpenAI.

pip install crewai langchain-google-genai

Το επόμενο βήμα είναι να ορίσουμε το LLM και τους συνεργαζόμενους αντιπροσώπους μας. Δημιουργήστε ένα ξεχωριστό αρχείο με το όνομα 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
           )

Ας ορίσουμε το εργαλείο αποθήκευσης αρχείων.

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

Η παραπάνω μέθοδος write_file είναι διακοσμημένη με τη συνάρτηση εργαλείου του Langchain. Καθώς το CrewAI χρησιμοποιεί Langchain κάτω από την κουκούλα, τα εργαλεία πρέπει να συμμορφώνονται με τις συμβάσεις της Langchain. Η συνάρτηση αναμένει μια ενιαία συμβολοσειρά με δύο μέρη, μια διαδρομή αρχείου και περιεχόμενο που χωρίζεται από έναν σωλήνα (|). Οι συμβολοσειρές εγγράφων της μεθόδου χρησιμοποιούνται επίσης ως πρόσθετο περιβάλλον για τη συνάρτηση. Επομένως, φροντίστε να δώσετε λεπτομερείς πληροφορίες σχετικά με τη μέθοδο.

Ας ορίσουμε τους πράκτορες

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
)

Έχουμε τρεις ατζέντηδες, ο καθένας με διαφορετικό ρόλο, στόχο και ιστορία. Αυτές οι πληροφορίες χρησιμοποιούνται ως προτροπή για το LLM να δώσει περισσότερο πλαίσιο. Ο παράγοντας επεξεργασίας έχει ένα εργαλείο γραφής που σχετίζεται με αυτό.

Το επόμενο πράγμα είναι να ορίσετε καθήκοντα. Για αυτό, δημιουργήστε ένα διαφορετικό αρχείο 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).
            """)

Οι εργασίες εδώ είναι λεπτομερή σχέδια δράσης που περιμένετε να εκτελέσουν οι πράκτορες.

Τέλος, δημιουργήστε το αρχείο main.py όπου συγκεντρώνουμε τους Agents and Tasks για να δημιουργήσουμε ένα λειτουργικό πλήρωμα.

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

Στον παραπάνω κώδικα, ορίσαμε μια κλάση ContentWritingCrew που δέχεται μια συμβολοσειρά ιδέας από τον χρήστη. Η μέθοδος _create_tasks δημιουργεί εργασίες. Η μέθοδος __call__ ξεκινά και ξεκινά το πλήρωμα. Μόλις εκτελέσετε το σενάριο, μπορείτε να παρατηρήσετε την αλυσίδα ενεργειών στο τερματικό ή στο σημειωματάριο. Οι εργασίες θα εκτελούνται με τη σειρά που ορίζονται από το πλήρωμα. Εδώ είναι ένα στιγμιότυπο του αρχείου καταγραφής εκτέλεσης.

τελικός πράκτορας

Αυτό είναι το αρχείο καταγραφής εκτέλεσης για τον τελικό πράκτορα. δηλαδή Συντάκτης. Επεξεργάζεται το προσχέδιο που λαμβάνεται από τον πράκτορα του συγγραφέα και χρησιμοποιεί το εργαλείο εγγραφής αρχείων για να αποθηκεύσει το αρχείο με ένα κατάλληλο όνομα αρχείου.

Αυτή είναι η γενική ροή εργασίας για τη δημιουργία συνεργατικών πρακτόρων AI με το CrewAI. Μπορείτε να αντιστοιχίσετε άλλα εργαλεία Langchain ή να δημιουργήσετε προσαρμοσμένα εργαλεία με αποτελεσματική προτροπή για την εκτέλεση πιο σύνθετων εργασιών.

Εδώ είναι το αποθετήριο GitHub για τους κωδικούς: sunilkumardash9/ContentWritingAgents.

Replit repository: Sunil-KumarKu17/CollborativeAIAgent

Περιπτώσεις χρήσης πραγματικού κόσμου

Οι αυτόνομοι πράκτορες AI μπορούν να έχουν πολλές περιπτώσεις χρήσης. Από προσωπικούς βοηθούς μέχρι εικονικούς εκπαιδευτές. Ακολουθούν μερικές περιπτώσεις χρήσης πρακτόρων AI.

  • Προσωπικός Βοηθός AI: Οι Personal Assistants θα είναι αναπόσπαστο κομμάτι μας σύντομα. Ένας βοηθός τύπου Jarvis που επεξεργάζεται όλα τα δεδομένα σας παρέχει πληροφορίες καθώς πηγαίνετε και χειρίζεται ασήμαντες εργασίες από μόνος του.
  • Διερμηνείς κώδικα: Ο διερμηνέας κώδικα του OpenAI είναι ένα λαμπρό παράδειγμα πράκτορα AI. Ο διερμηνέας μπορεί να εκτελέσει οποιοδήποτε σενάριο Python και να εξάγει τα αποτελέσματα ως απάντηση σε μια προτροπή κειμένου. Αυτός είναι αναμφισβήτητα ο πιο επιτυχημένος πράκτορας μέχρι σήμερα.
  • Εικονικοί Εκπαιδευτές: Καθώς η τεχνολογία AI εξελίσσεται, μπορούμε να περιμένουμε εικονικούς εκπαιδευτές σε πολλούς τομείς όπως η εκπαίδευση, η κατάρτιση κ.λπ.
  • Πράκτορας Πρώτη Λογισμικό: Μια τεράστια πιθανή περίπτωση χρήσης πρακτόρων AI είναι στην ανάπτυξη λογισμικού agent first. Αντί να περιηγούνται με μη αυτόματο τρόπο και να κάνουν κλικ στα κουμπιά για να ολοκληρώσουν τα πράγματα, οι πράκτορες τεχνητής νοημοσύνης θα τα ολοκληρώσουν αυτόματα με βάση φωνητικές εντολές.
  • Χωρικός Υπολογισμός: Καθώς η τεχνολογία AR/VR εξελίσσεται, οι πράκτορες AI θα διαδραματίσουν κρίσιμο ρόλο στη γεφύρωση του χάσματος μεταξύ του εικονικού και του πραγματικού κόσμου.

Συμπέρασμα

Είμαστε ακόμα στα πρώτα στάδια ανάπτυξης πρακτόρων AI. Επί του παρόντος, για το καλύτερο δυνατό αποτέλεσμα από πράκτορες AI, πρέπει να βασιστούμε στο GPT-4 και είναι ακριβό. Όμως, καθώς τα μοντέλα ανοιχτού κώδικα φτάνουν το GPT-4, θα έχουμε καλύτερες επιλογές για την αποτελεσματική εκτέλεση πρακτόρων AI με λογικό κόστος. Από την άλλη πλευρά, τα πλαίσια για την ανάπτυξη πρακτόρων προχωρούν με ταχείς ρυθμούς. Καθώς προχωράμε, τα πλαίσια θα επιτρέψουν στους πράκτορες να εκτελούν ακόμη πιο σύνθετες εργασίες.

 Βασικές τακτικές

  • Οι πράκτορες AI αξιοποιούν τη συλλογιστική ικανότητα των LLM για να επιλέξουν κατάλληλα εργαλεία για την εκτέλεση σύνθετων εργασιών.
  • Το CrewAI είναι ένα πλαίσιο ανοιχτού κώδικα για τη δημιουργία συνεργατικών πρακτόρων AI.
  • Το μοναδικό χαρακτηριστικό του CrewAI περιλαμβάνει Agents που βασίζονται σε ρόλους, αυτόνομη ανάθεση μεταξύ πρακτόρων και ευέλικτη διαχείριση εργασιών.
  • Το CrewAI ενσωματώνεται απρόσκοπτα με το υπάρχον οικοσύστημα Langchain. Μπορούμε να χρησιμοποιήσουμε εργαλεία Langchain και ενσωματώσεις LLM με το CrewAI.

Συχνές Ερωτήσεις

Q1. Τι είναι οι πράκτορες AI;

Α. Οι πράκτορες AI είναι προγράμματα λογισμικού που αλληλεπιδρούν με το περιβάλλον τους, λαμβάνουν αποφάσεις και ενεργούν για την επίτευξη ενός τελικού στόχου.

Ε2. Ποιο είναι το καλύτερο LLM για χρήση με πράκτορες AI;

Α. Αυτό εξαρτάται από τις περιπτώσεις χρήσης και τον προϋπολογισμό σας. Το GPT 4 είναι το πιο ικανό αλλά ακριβό, ενώ τα μοντέλα GPT 3.5, Mixtral και Gemini Pro είναι λιγότερο κατάλληλα αλλά γρήγορα και φθηνά.

Ε3. Τι είναι το CrewAI;

Το A. CrewAI είναι ένα πλαίσιο ανοιχτού κώδικα για την ενορχήστρωση ρόλων και αυτόνομων πρακτόρων τεχνητής νοημοσύνης. Βοηθά στη δημιουργία συνεργατικών πρακτόρων τεχνητής νοημοσύνης για την εύκολη επίτευξη πολύπλοκων στόχων.

Ε4. Σε τι χρησιμοποιείται το CrewAI;

Το A. CrewAI παρέχει μια αφαίρεση υψηλού επιπέδου για τη δημιουργία συνεργατικών πρακτόρων AI για πολύπλοκες ροές εργασίας.

Q5. Ποια είναι η διαφορά μεταξύ του CrewAi και του Autogen;

A. Στο Autogen, οι αλληλεπιδράσεις των πρακτόρων ενορχήστρωσης απαιτούν πρόσθετο προγραμματισμό, ο οποίος μπορεί να γίνει πολύπλοκος και δυσκίνητος όσο μεγαλώνει η κλίμακα των εργασιών.

Τα μέσα που εμφανίζονται σε αυτό το άρθρο δεν ανήκουν στο Analytics Vidhya και χρησιμοποιούνται κατά την κρίση του συγγραφέα.

Σφραγίδα ώρας:

Περισσότερα από Ανάλυση Vidhya