Πώς να αναπαραγάγετε το σύστημα MRKL χρησιμοποιώντας πράκτορες στο LangChain;

Pos Na Anaparagagete To Systema Mrkl Chresimopoiontas Praktores Sto Langchain



Το σύστημα Modular Reasoning, Knowledge, and Language (MRKL) είναι μια αρχιτεκτονική που μπορεί να εξάγει απαντήσεις με τους λόγους για την επαλήθευση του. Ενσωματώνει γλωσσικά μοντέλα, διακριτό συλλογισμό και εξωτερικές πηγές γνώσης. Τα μοντέλα γλώσσας παράγουν το κείμενο σε ανθρώπινες γλώσσες σύμφωνα με τα ερωτήματα που θέτει ο χρήστης. Το MRKL (προφέρεται: θαύμα) προσθέτει συλλογισμό ενώ παράγει τις απαντήσεις για να κάνει την απάντηση ακριβή και έγκυρη.

Γρήγορο περίγραμμα

Αυτή η ανάρτηση θα δείξει τα εξής:







Πώς να αναπαραγάγετε το σύστημα MRKL χρησιμοποιώντας πράκτορες στο LangChain



συμπέρασμα



Πώς να αναπαραγάγετε το σύστημα MRKL χρησιμοποιώντας πράκτορες στο LangChain;

Το LangChain επιτρέπει στο χρήστη να δημιουργήσει πράκτορες που μπορούν να χρησιμοποιηθούν για την εκτέλεση πολλαπλών εργασιών για τα μοντέλα γλώσσας ή τα chatbot. Οι πράκτορες αποθηκεύουν την εργασία τους με όλα τα βήματα στη μνήμη που είναι συνδεδεμένα με το μοντέλο γλώσσας. Χρησιμοποιώντας αυτά τα πρότυπα, ο πράκτορας μπορεί να αναπαράγει τη λειτουργία οποιουδήποτε συστήματος όπως το MRKL για να πάρει τα βελτιστοποιημένα αποτελέσματα χωρίς να χρειάζεται να τα δημιουργήσει ξανά.





Για να μάθετε τη διαδικασία αναπαραγωγής του συστήματος MRKL χρησιμοποιώντας πράκτορες στο LangChain, απλώς ακολουθήστε τα βήματα που αναφέρονται:

Βήμα 1: Εγκατάσταση Frameworks

Πρώτα απ 'όλα, εγκαταστήστε τις πειραματικές μονάδες LangChain χρησιμοποιώντας το pip με την εντολή langchain-experimental:



pip install langchain-πειραματικό

Εγκαταστήστε τη λειτουργική μονάδα OpenAI για να δημιουργήσετε το μοντέλο γλώσσας για το σύστημα MRKL:

pip εγκατάσταση openai

Βήμα 2: Ρύθμιση περιβάλλοντος OpenAI

Εισαγάγετε τις βιβλιοθήκες OS και getpass για πρόσβαση στη λειτουργία για να ζητήσετε από τον χρήστη να παράσχει τα κλειδιά API για τους λογαριασμούς OpenAI και SerpAPi:

εισαγωγή εσείς

εισαγωγή getpass

εσείς . κατά προσέγγιση [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'Κλειδί OpenAI API:' )

εσείς . κατά προσέγγιση [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Κλειδί API Serpapi:' )

Βήμα 3: Εισαγωγή Βιβλιοθηκών

Χρησιμοποιήστε τις εξαρτήσεις από το LangChain για να εισαγάγετε τις απαιτούμενες βιβλιοθήκες για τη δημιουργία του μοντέλου γλώσσας, των εργαλείων και των πρακτόρων:

από langchain. αλυσίδες εισαγωγή LLMMathChain

από langchain. llms εισαγωγή OpenAI

από langchain. υπηρεσίες κοινής ωφέλειας εισαγωγή SerpAPIWrapper

από langchain. υπηρεσίες κοινής ωφέλειας εισαγωγή SQLDatabase

από langchain_experimental. sql εισαγωγή SQLDatabaseChain

από langchain. πράκτορες εισαγωγή αρχικοποίηση_πράκτορα , Εργαλείο

από langchain. πράκτορες εισαγωγή Τύπος πράκτορα

Βήμα 4: Δημιουργία βάσης δεδομένων

Το MRKL χρησιμοποιεί εξωτερικές πηγές γνώσης για την εξαγωγή πληροφοριών από δεδομένα. Αυτή η ανάρτηση χρησιμοποιεί το SQLite το οποίο μπορεί να ληφθεί χρησιμοποιώντας αυτό οδηγός για τη δημιουργία της βάσης δεδομένων. Η ακόλουθη εντολή επιβεβαιώνει τη διαδικασία λήψης του SQLite εμφανίζοντας την εγκατεστημένη έκδοσή του:

sqlite3

Χρησιμοποιήστε τις ακόλουθες εντολές μέσα σε έναν κατάλογο για να δημιουργήσετε τη βάση δεδομένων χρησιμοποιώντας τη γραμμή εντολών:

CD Επιφάνεια εργασίας

CD mydb

sqlite3 Chinook. db

Κατεβάστε το Βάση δεδομένων αρχείο και αποθηκεύστε το στον κατάλογο για να χρησιμοποιήσετε την ακόλουθη εντολή για τη δημιουργία του ' .db ' αρχείο:

. ανάγνωση Chinook_Sqlite. sql

ΕΠΙΛΟΓΗ * ΑΠΟ ΟΡΙΟ καλλιτέχνη 10 ;

Βήμα 5: Μεταφόρτωση βάσης δεδομένων

Μόλις δημιουργηθεί επιτυχώς η βάση δεδομένων, μεταφορτώστε το αρχείο στο συνεργείο της Google:

από google. ET AL εισαγωγή αρχεία

ανέβηκε = αρχεία. μεταφόρτωση ( )

Ο χρήστης μπορεί να έχει πρόσβαση στο μεταφορτωμένο αρχείο στο σημειωματάριο για να αντιγράψει τη διαδρομή του από το αναπτυσσόμενο μενού του:

Βήμα 6: Διαμόρφωση εργαλείων

Μετά τη δημιουργία της βάσης δεδομένων, διαμορφώστε το μοντέλο γλώσσας, τα εργαλεία και τις αλυσίδες για τους πράκτορες:

Αναζήτηση = SerpAPIWrapper ( )
llm = OpenAI ( θερμοκρασία = 0 )
llm_math_chain = LLMMathChain ( llm = llm , πολύλογος = Αληθής )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm , db , πολύλογος = Αληθής )
εργαλεία = [
Εργαλείο (
όνομα = 'Αναζήτηση' ,
func = Αναζήτηση. τρέξιμο ,
περιγραφή = 'Ρωτήστε τα στοχευμένα μηνύματα για να λάβετε απαντήσεις σχετικά με πρόσφατες υποθέσεις'
) ,
Εργαλείο (
όνομα = 'Αριθμομηχανή' ,
func = llm_math_chain. τρέξιμο ,
περιγραφή = 'χρήσιμο για την απάντηση/ επίλυση μαθηματικών προβλημάτων'
) ,
Εργαλείο (
όνομα = 'FooBar DB' ,
func = db_chain. τρέξιμο ,
περιγραφή = 'χρήσιμο για την απάντηση ερωτημάτων από μια βάση δεδομένων και η ερώτηση εισόδου πρέπει να έχει το πλήρες πλαίσιο'
)
]
  • Ορίστε το llm μεταβλητή χρησιμοποιώντας το OpenAI() μέθοδος λήψης του γλωσσικού μοντέλου.
  • ο Αναζήτηση είναι το εργαλείο που καλεί το SerpAPIWrapper() μέθοδο πρόσβασης στο περιβάλλον του.
  • ο LLMMathChain() μέθοδος χρησιμοποιείται για να ληφθούν οι απαντήσεις που σχετίζονται με μαθηματικά προβλήματα.
  • Ορίστε το db μεταβλητή με τη διαδρομή του αρχείου μέσα στο SQLDatabase() μέθοδος.
  • ο SQLDatabaseChain() μπορεί να χρησιμοποιηθεί για τη λήψη πληροφοριών από τη βάση δεδομένων.
  • Ορίστε εργαλεία όπως Αναζήτηση , αριθμομηχανή , και FooBar DB για την κατασκευή του πράκτορα για την εξαγωγή δεδομένων από διαφορετικές πηγές:

Βήμα 7: Δημιουργία και δοκιμή του πράκτορα

Αρχικοποιήστε το σύστημα MRKL χρησιμοποιώντας τα εργαλεία, το llm και τον πράκτορα για να λάβετε τις απαντήσεις στις ερωτήσεις που θέτει ο χρήστης:

mrkl = αρχικοποίηση_πράκτορα ( εργαλεία , llm , μέσο = Τύπος πράκτορα. ZERO_SHOT_REACT_DESCRIPTION , πολύλογος = Αληθής )

Εκτελέστε το σύστημα MRKL χρησιμοποιώντας τη μέθοδο run() με όρισμα την ερώτηση:

mrkl. τρέξιμο ( 'Ποια είναι η τρέχουσα ηλικία του Leo DiCaprio και της κοπέλας του λέει επίσης τη διαφορά ηλικίας τους' )

Παραγωγή

Ο πράκτορας έχει παράγει την τελική απάντηση με την πλήρη διαδρομή που χρησιμοποιείται από το σύστημα για την εξαγωγή της τελικής απάντησης:

Βήμα 8: Αντιγράψτε το σύστημα MRKL

Τώρα, απλά χρησιμοποιήστε το mrkl λέξη-κλειδί με τη μέθοδο run() για να λαμβάνετε απαντήσεις από διαφορετικές πηγές όπως βάσεις δεδομένων:

mrkl. τρέξιμο ( 'Ποιο είναι το πλήρες όνομα του καλλιτέχνη του οποίου το άλμπουμ με τίτλο 'The Storm Before the Calm' κυκλοφόρησε πρόσφατα και είναι στη βάση δεδομένων του FooBar και ποια από τα άλμπουμ τους βρίσκονται στη βάση δεδομένων;' )

Ο πράκτορας έχει μετατρέψει αυτόματα την ερώτηση σε ερώτημα SQL για να ανακτήσει την απάντηση από τη βάση δεδομένων. Ο πράκτορας αναζητά τη σωστή πηγή για να λάβει την απάντηση και στη συνέχεια συγκεντρώνει το ερώτημα για να εξαγάγει τις πληροφορίες:

Βήμα 9: Χρήση ChatModel

Ο χρήστης μπορεί απλώς να αλλάξει το μοντέλο γλώσσας χρησιμοποιώντας τη μέθοδο ChatOpenAI() για να το κάνει ChatModel και να χρησιμοποιήσει το σύστημα MRKL μαζί του:

από langchain. chat_models εισαγωγή ChatOpenAI

Αναζήτηση = SerpAPIWrapper ( )
llm = ChatOpenAI ( θερμοκρασία = 0 )
llm1 = OpenAI ( θερμοκρασία = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , πολύλογος = Αληθής )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm1 , db , πολύλογος = Αληθής )
εργαλεία = [
Εργαλείο (
όνομα = 'Αναζήτηση' ,
func = Αναζήτηση. τρέξιμο ,
περιγραφή = 'Ρωτήστε τα στοχευμένα μηνύματα για να λάβετε απαντήσεις σχετικά με πρόσφατες υποθέσεις'
) ,
Εργαλείο (
όνομα = 'Αριθμομηχανή' ,
func = llm_math_chain. τρέξιμο ,
περιγραφή = 'χρήσιμο για την απάντηση/ επίλυση μαθηματικών προβλημάτων'
) ,
Εργαλείο (
όνομα = 'FooBar DB' ,
func = db_chain. τρέξιμο ,
περιγραφή = 'χρήσιμο για την απάντηση ερωτημάτων από μια βάση δεδομένων και η ερώτηση εισόδου πρέπει να έχει το πλήρες πλαίσιο'
)
]

Βήμα 10: Δοκιμάστε τον παράγοντα MRKL

Μετά από αυτό, δημιουργήστε τον πράκτορα και αρχικοποιήστε τον στη μεταβλητή mrkl χρησιμοποιώντας τη μέθοδο initialize_agent(). Προσθέστε την παράμετρο της μεθόδου για να ενσωματώσετε τα στοιχεία όπως tools, llm, agent και verbose για να λάβετε την πλήρη διαδικασία στην έξοδο:

mrkl = αρχικοποίηση_πράκτορα ( εργαλεία , llm , μέσο = Τύπος πράκτορα. CHAT_ZERO_SHOT_REACT_DESCRIPTION , πολύλογος = Αληθής )

Εκτελέστε την ερώτηση εκτελώντας το σύστημα mrkl όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης:

mrkl. τρέξιμο ( 'Ποια είναι η κοπέλα του Leo DiCaprio; Ποια είναι η τρέχουσα ηλικία τους' )

Παραγωγή

Το ακόλουθο απόσπασμα εμφανίζει την τελική απάντηση που εξήχθη από τον πράκτορα:

Βήμα 11: Αντιγράψτε το σύστημα MRKL

Χρησιμοποιήστε το σύστημα MRKL καλώντας τη μέθοδο run() με την ερώτηση στη φυσική γλώσσα για να εξαγάγετε πληροφορίες από τη βάση δεδομένων:

mrkl. τρέξιμο ( 'Ποιο είναι το πλήρες όνομα του καλλιτέχνη του οποίου το άλμπουμ με τίτλο 'The Storm Before the Calm' κυκλοφόρησε πρόσφατα και είναι στη βάση δεδομένων του FooBar και ποια από τα άλμπουμ τους βρίσκονται στη βάση δεδομένων;' )

Παραγωγή

Ο πράκτορας έχει εμφανίσει την τελική απάντηση που έχει εξαχθεί από τη βάση δεδομένων, όπως εμφανίζεται στο ακόλουθο στιγμιότυπο οθόνης:

Αυτά είναι όλα σχετικά με τη διαδικασία αναπαραγωγής του συστήματος MRKL χρησιμοποιώντας πράκτορες στο LangChain:

συμπέρασμα

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