Πώς να προσθέσετε μνήμη στο OpenAI Functions Agent στο LangChain;

Pos Na Prosthesete Mneme Sto Openai Functions Agent Sto Langchain



Το LangChain είναι το πλαίσιο που περιέχει εξαρτήσεις για τη δημιουργία μοντέλων μεγάλων γλωσσών ή LLM. Παρέχει επίσης τα εργαλεία για τη δημιουργία των πρακτόρων για την εκτέλεση όλων των ενδιάμεσων βημάτων από τη λήψη του ερωτήματος από τον χρήστη έως την ανάκτηση της απάντησής του. Το OpenAI είναι ένα περιβάλλον που παρέχει αναγνώσιμα και δομημένα αποτελέσματα από το Διαδίκτυο χρησιμοποιώντας το 'google-search-results' μονάδα μέτρησης.

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

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

Πώς να προσθέσετε μνήμη στο OpenAI Functions Agent στο LangChain;

Το OpenAI είναι ένας οργανισμός Τεχνητής Νοημοσύνης (AI) που ιδρύθηκε το 2015 και ήταν ένας μη κερδοσκοπικός οργανισμός στην αρχή. Η Microsoft έχει επενδύσει πολλή περιουσία από το 2020, καθώς η Επεξεργασία Φυσικής Γλώσσας (NLP) με τεχνητή νοημοσύνη ανθίζει με chatbots και γλωσσικά μοντέλα.







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



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

Πρώτα απ 'όλα, εγκαταστήστε τις εξαρτήσεις LangChain από το “langchain-πειραματικό” πλαίσιο χρησιμοποιώντας τον ακόλουθο κώδικα:



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





Εγκαταστήστε το 'google-search-results' ενότητα για να λάβετε τα αποτελέσματα αναζήτησης από τον διακομιστή Google:

pip install google - Αναζήτηση - Αποτελέσματα



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

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

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

Αφού λάβετε τις μονάδες, ρυθμίστε τα περιβάλλοντα χρησιμοποιώντας τα κλειδιά API από το OpenAI και SerpAPi λογαριασμοί:

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

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

Εκτελέστε τον παραπάνω κωδικό για να εισαγάγετε τα κλειδιά API για πρόσβαση και στο περιβάλλον και πατήστε enter για επιβεβαίωση:

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

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

από langchain. αλυσίδες εισαγωγή LLMMathChain
από langchain. llms εισαγωγή OpenAI
#get library για αναζήτηση από την Google μέσω διαδικτύου
από langchain. υπηρεσίες κοινής ωφέλειας εισαγωγή SerpAPIWrapper
από langchain. υπηρεσίες κοινής ωφέλειας εισαγωγή SQLDatabase
από το langchain_experimental. sql εισαγωγή SQLDatabaseChain
#get library για τη δημιουργία εργαλείων Για αρχικοποίηση του πράκτορα
από langchain. πράκτορες εισαγωγή Τύπος πράκτορα , Εργαλείο , αρχικοποίηση_πράκτορα
από langchain. chat_models εισαγωγή ChatOpenAI

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

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

sqlite3

Εκτελώντας την παραπάνω εντολή στο Τερματικό Windows εμφανίζει την εγκατεστημένη έκδοση του SQLite (3.43.2):

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

cd Επιτραπέζιος υπολογιστής
cd mydb
sqlite3 Chinook. db

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

. ανάγνωση Chinook_Sqlite. sql
ΕΠΙΛΕΓΩ * ΑΠΟ ΟΡΙΟ καλλιτέχνη 10 ;

Η βάση δεδομένων έχει κατασκευαστεί με επιτυχία και ο χρήστης μπορεί να αναζητήσει δεδομένα από αυτήν χρησιμοποιώντας διαφορετικά ερωτήματα:

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

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

από το google. ET AL εισαγωγή αρχεία
ανέβηκε = αρχεία. μεταφόρτωση ( )

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

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

Βήμα 6: Διαμόρφωση μοντέλου γλώσσας

Δημιουργήστε το μοντέλο γλώσσας, τις αλυσίδες, τα εργαλεία και τις αλυσίδες χρησιμοποιώντας τον ακόλουθο κώδικα:

llm = ChatOpenAI ( θερμοκρασία = 0 , μοντέλο = 'gpt-3.5-turbo-0613' )
Αναζήτηση = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. from_llm ( 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. τρέξιμο ,
περιγραφή = 'χρήσιμο για την απάντηση σε ερωτήσεις σχετικά με το FooBar και η εισαγωγή θα πρέπει να έχει τη μορφή ερώτησης που περιέχει πλήρες περιεχόμενο' ,
) ,
]
  • ο llm Η μεταβλητή περιέχει τις διαμορφώσεις του μοντέλου γλώσσας χρησιμοποιώντας τη μέθοδο ChatOpenAI() με το όνομα του μοντέλου.
  • Η αναζήτηση Η μεταβλητή περιέχει τη μέθοδο SerpAPIWrapper() για τη δημιουργία των εργαλείων για τον πράκτορα.
  • Κατασκευάστε το llm_math_chain για να λάβετε τις απαντήσεις που σχετίζονται με τον τομέα των Μαθηματικών χρησιμοποιώντας τη μέθοδο LLMMathChain().
  • Η μεταβλητή db περιέχει τη διαδρομή του αρχείου που έχει τα περιεχόμενα της βάσης δεδομένων. Ο χρήστης πρέπει να αλλάξει μόνο το τελευταίο μέρος που είναι “content/Chinook.db” του μονοπατιου κρατώντας το “sqlite:///../../../../../” το ίδιο.
  • Δημιουργήστε μια άλλη αλυσίδα για την απάντηση ερωτημάτων από τη βάση δεδομένων χρησιμοποιώντας το db_chain μεταβλητός.
  • Διαμόρφωση εργαλείων όπως Αναζήτηση , αριθμομηχανή , και FooBar-DB για αναζήτηση της απάντησης, απάντηση σε μαθηματικές ερωτήσεις και ερωτήματα από τη βάση δεδομένων αντίστοιχα:

Βήμα 7: Προσθήκη μνήμης

Αφού διαμορφώσετε τις λειτουργίες OpenAI, απλώς δημιουργήστε και προσθέστε τη μνήμη στον πράκτορα:

από langchain. προτρέπει εισαγωγή MessagesPlaceholder
από langchain. μνήμη εισαγωγή ConversationBufferMemory

agent_kwargs = {
'extra_prompt_messages' : [ MessagesPlaceholder ( variable_name = 'μνήμη' ) ] ,
}
μνήμη = ConversationBufferMemory ( μνήμη_κλειδί = 'μνήμη' , επιστροφή_μηνυμάτων = Αληθής )

Βήμα 8: Αρχικοποίηση του Agent

Το τελευταίο συστατικό για δημιουργία και προετοιμασία είναι ο πράκτορας, που περιέχει όλα τα στοιχεία όπως llm , εργαλείο , OPENAI_FUNCTIONS και άλλα που θα χρησιμοποιηθούν σε αυτή τη διαδικασία:

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

Βήμα 9: Δοκιμή του Agent

Τέλος, δοκιμάστε τον πράκτορα ξεκινώντας τη συνομιλία χρησιμοποιώντας το ' γεια » μήνυμα:

μέσο. τρέξιμο ( 'γεια' )

Προσθέστε ορισμένες πληροφορίες στη μνήμη εκτελώντας τον πράκτορα μαζί του:

μέσο. τρέξιμο ( 'Με λένε John Snow' )

Τώρα, δοκιμάστε τη μνήμη κάνοντας την ερώτηση σχετικά με την προηγούμενη συνομιλία:

μέσο. τρέξιμο ( 'Ποιο ειναι το όνομα μου' )

Ο πράκτορας απάντησε με το όνομα που έχει ληφθεί από τη μνήμη, ώστε η μνήμη να εκτελείται με επιτυχία με τον πράκτορα:

Αυτα για τωρα.

συμπέρασμα

Για να προσθέσετε τη μνήμη στον πράκτορα λειτουργιών OpenAI στο LangChain, εγκαταστήστε τις λειτουργικές μονάδες για να λάβετε τις εξαρτήσεις για την εισαγωγή των βιβλιοθηκών. Μετά από αυτό, απλώς δημιουργήστε τη βάση δεδομένων και μεταφορτώστε την στο σημειωματάριο Python ώστε να μπορεί να χρησιμοποιηθεί με το μοντέλο. Διαμορφώστε το μοντέλο, τα εργαλεία, τις αλυσίδες και τη βάση δεδομένων πριν τα προσθέσετε στον πράκτορα και αρχικοποιήστε τα. Πριν δοκιμάσετε τη μνήμη, δημιουργήστε τη μνήμη χρησιμοποιώντας τη ConversationalBufferMemory() και προσθέστε την στον πράκτορα πριν τη δοκιμάσετε. Αυτός ο οδηγός έχει επεξεργαστεί τον τρόπο προσθήκης μνήμης στον πράκτορα λειτουργιών OpenAI στο LangChain.