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

Pos Na Prosthesete Enan Prosarmosmeno Typo Mnemes Sto Langchain



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

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

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







Πώς να προσθέσετε έναν προσαρμοσμένο τύπο μνήμης στο LangChain



συμπέρασμα



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

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





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

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

pip install langchain

Εκτελώντας την παραπάνω εντολή στο Σημειωματάριο Python θα εγκατασταθούν οι εξαρτήσεις για το LangChain όπως εμφανίζονται στο ακόλουθο απόσπασμα:



Εγκαταστήστε τη λειτουργική μονάδα OpenAI για να αποκτήσετε τις βιβλιοθήκες της που μπορούν να χρησιμοποιηθούν για τη διαμόρφωση των LLM:

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

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

χώρο εγκατάστασης pip

Το μοντέλο spaCy χρησιμοποιεί τον πίνακα κατακερματισμού για να αποθηκεύσει τις πληροφορίες ως παρατήρηση όπως τα προηγούμενα μηνύματα συνομιλίας. Ο ακόλουθος κώδικας χρησιμοποιείται για τη λήψη του Large Language Model ή του LLM από τη βιβλιοθήκη spaCy για τη δημιουργία ενός προηγμένου μοντέλου NLP:

! Λήψη python -m space en_core_web_lg

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

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

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

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

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

από langchain. σχήμα εισαγωγή BaseMemory

από langchain. αλυσίδες εισαγωγή Αλυσίδα συνομιλίας

από πυδατική εισαγωγή BaseModel

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

από πληκτρολόγηση εισαγωγή Λίστα , Dict , Οποιος

Η εισαγωγή του « Spay ' βιβλιοθήκη για να φορτώσει το ' en_core_web_lg ' μοντέλο και αντιστοιχίστε το στο ' nlp ” μεταβλητή καθώς είναι το μοντέλο επεξεργασίας φυσικής γλώσσας:

εισαγωγή ευρυχωρία

nlp = ευρυχωρία. φορτώνω ( 'en_core_web_lg' )

Βήμα 3: Δημιουργία προσαρμοσμένης μνήμης

Μετά από αυτό, απλώς δημιουργήστε την προσαρμοσμένη μνήμη χρησιμοποιώντας ορίσματα BaseMemory και BaseModel στην κλάση Memory. Στη συνέχεια, διαμορφώστε οντότητες (που συλλέγονται/αποθηκεύονται από τα δεδομένα) που μπορούν να αποθηκευτούν στη μνήμη ως πλήρεις πληροφορίες ή ως ενιαία μονάδα. Η μνήμη έχει ρυθμιστεί ώστε να περιέχει όλες τις οντότητες από το έγγραφο για τη βελτιστοποίηση της απόδοσης της μνήμης και του μοντέλου:

τάξη SpacyEntityMemory ( BaseMemory , BaseModel ) :
''' Κατηγορία μνήμης για την αποθήκευση πληροφοριών σχετικά με οντότητες'''
οντότητες: υπαγόρευση = { }
memory_key: str = 'οντότητες'
def Σαφή ( εαυτός ) :
εαυτός . οντότητες = { }
@ ιδιοκτησία
def μνήμη_μεταβλητές ( εαυτός ) - > Λίστα [ str ] :
''' Αρχικοποίηση των μεταβλητών που παρέχονται στο ερώτημα'''
ΕΠΙΣΤΡΟΦΗ [ εαυτός . μνήμη_κλειδί ]
#define τις μεταβλητές μνήμης χρησιμοποιώντας τα ορίσματα
def load_memory_variables ( εαυτός , είσοδοι: Υπ [ str , Οποιος ] ) - > Dict [ str , str ] :
''' Καλέστε τις μεταβλητές για μνήμη, π.χ. κλειδί οντότητας'''
έγγρ = nlp ( εισροές [ λίστα ( εισροές. κλειδιά ( ) ) [ 0 ] ] )
#configure οντότητες που θα αποθηκευτούν στη μνήμη για μια μεμονωμένη μονάδα
οντότητες = [
εαυτός . οντότητες [ str ( ent ) ] Για ent σε έγγρ. εντολές αν str ( ent ) σε εαυτός . οντότητες
]
ΕΠΙΣΤΡΟΦΗ { εαυτός . μνήμη_κλειδί : ' \n ' . Συμμετοχή ( οντότητες ) }
#define the save_context() για χρήση της μνήμης
def save_context ( εαυτός , είσοδοι: Υπ [ str , Οποιος ] , έξοδοι: Δικτ [ str , str ] ) - > Κανένας :
'''Αποθήκευση παρατήρησης από αυτήν τη συνομιλία στη μνήμη'''
κείμενο = εισροές [ λίστα ( εισροές. κλειδιά ( ) ) [ 0 ] ]
έγγρ = nlp ( κείμενο )
Για ent σε έγγρ. εντολές :
ent_str = str ( ent )
αν ent_str σε εαυτός . οντότητες :
εαυτός . οντότητες [ ent_str ] + = φά ' \n {κείμενο}'
αλλού :
εαυτός . οντότητες [ ent_str ] = κείμενο

Βήμα 4: Διαμόρφωση προτύπου προτροπής

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

από langchain. προτρέπει . προτροπή εισαγωγή PromptTemplate

πρότυπο = '''Το παρακάτω είναι μια αλληλεπίδραση μεταξύ μιας μηχανής και ενός ανθρώπου Λέει ότι δεν γνωρίζει Εάν το μηχάνημα δεν γνωρίζει την απάντηση Το μηχάνημα (AI) παρέχει λεπτομέρειες από το περιβάλλον του και εάν δεν κατανοεί την απάντηση σε οποιαδήποτε ερώτηση, λέει απλά συγγνώμη

Πληροφορίες οντότητας:

{οντότητες}

Επικοινωνία:

Άνθρωπος: {input}

ΟΛΑ ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΝΤΑΙ:'''


προτροπή = PromptTemplate ( input_variables = [ 'οντότητες' , 'εισαγωγή' ] , πρότυπο = πρότυπο )

Βήμα 5: Δοκιμή του μοντέλου

Πριν δοκιμάσετε το μοντέλο, απλώς διαμορφώστε το LLM χρησιμοποιώντας τη μέθοδο OpenAI() και ρυθμίστε τη συνάρτηση ConversationChain() με ορίσματα:

llm = OpenAI ( θερμοκρασία = 0 )

συνομιλία = Αλυσίδα συνομιλίας (

llm = llm , προτροπή = προτροπή , πολύλογος = Αληθής , μνήμη = SpacyEntityMemory ( )

)

Δώστε πληροφορίες στο μοντέλο χρησιμοποιώντας το όρισμα εισόδου ενώ καλείτε τη μέθοδο predict() με τη μεταβλητή συνομιλίας:

συνομιλία. προλέγω ( εισαγωγή = «Στον Χάρισον αρέσει η μηχανική μάθηση» )

Παραγωγή

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

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

συνομιλία. προλέγω (

εισαγωγή = 'Ποιο είναι το αγαπημένο θέμα του Χάρισον'

)

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

Αυτό αφορά την προσθήκη ενός προσαρμοσμένου τύπου μνήμης στο LangChain.

συμπέρασμα

Για να προσθέσετε έναν προσαρμοσμένο τύπο μνήμης στο LangChain, απλώς εγκαταστήστε τις απαιτούμενες μονάδες για την εισαγωγή βιβλιοθηκών για τη δημιουργία της προσαρμοσμένης μνήμης. Η spaCy είναι η σημαντική βιβλιοθήκη που χρησιμοποιείται σε αυτόν τον οδηγό για την προσθήκη μιας προσαρμοσμένης μνήμης χρησιμοποιώντας το μοντέλο NLP της. Μετά από αυτό, διαμορφώστε την προσαρμοσμένη μνήμη και το πρότυπο προτροπής για να δώσει τη δομή της διεπαφής συνομιλίας. Μόλις ολοκληρωθεί η διαμόρφωση, απλώς δοκιμάστε τη μνήμη του μοντέλου ζητώντας πληροφορίες σχετικά με τα αποθηκευμένα δεδομένα.