Πώς να χρησιμοποιήσετε τις ενσωματώσεις στο LangChain

Pos Na Chresimopoiesete Tis Ensomatoseis Sto Langchain



Οι ενσωματώσεις είναι ένας δείκτης συσχέτισης συμβολοσειρών κειμένου και εκφράζονται με ένα διάνυσμα (λίστα) ακεραίων αριθμών κινητής υποδιαστολής. Η απόσταση μεταξύ δύο διανυσμάτων χρησιμεύει ως μέτρο του πόσο στενά συνδέονται μεταξύ τους. Όσο μικρότερη είναι η απόσταση, τόσο πιο κοντινή είναι η συνάφεια. Η κλάση LangChain Embedding προορίζεται να χρησιμεύσει ως διεπαφή για υπηρεσίες ενσωμάτωσης όπως το OpenAI, HuggingFace και άλλες.

Δύο μέθοδοι, η embed_query() και η embed_documents(), παρέχονται από τη βασική κλάση. Το πρώτο από αυτά λειτουργεί σε ένα μόνο έγγραφο, ενώ το άλλο μπορεί να λειτουργήσει σε πολλά έγγραφα.

Αυτό το άρθρο κατανοεί την πρακτική επίδειξη της ενσωμάτωσης στο LangChain χρησιμοποιώντας τις ενσωματώσεις κειμένου OpenAI.







Παράδειγμα: Λήψη κειμένου μεμονωμένης εισαγωγής με χρήση της ενσωμάτωσης κειμένου OpenAI

Για την πρώτη απεικόνιση, εισάγουμε μια συμβολοσειρά κειμένου και ανακτούμε την ενσωμάτωση κειμένου OpenAI για αυτήν. Το πρόγραμμα ξεκινά με την εγκατάσταση των απαραίτητων βιβλιοθηκών.



Η πρώτη βιβλιοθήκη που πρέπει να εγκαταστήσουμε στο έργο μας είναι η LangChain. Δεν συνοδεύεται από την τυπική βιβλιοθήκη Python, επομένως πρέπει να την εγκαταστήσουμε ξεχωριστά. Δεδομένου ότι το langchain είναι διαθέσιμο στο PyPi, μπορούμε εύκολα να το εγκαταστήσουμε χρησιμοποιώντας την εντολή pip στο τερματικό. Έτσι, εκτελούμε την ακόλουθη εντολή για να εγκαταστήσουμε τη βιβλιοθήκη LangChain:



$ pip εγκατάσταση langchain

Η βιβλιοθήκη εγκαθίσταται μόλις ικανοποιηθούν οι απαιτήσεις.





Χρειαζόμαστε επίσης την εγκατάσταση της βιβλιοθήκης OpenAI στο έργο μας, ώστε να έχουμε πρόσβαση στα μοντέλα OpenAI. Αυτή η βιβλιοθήκη μπορεί να εγκαινιαστεί γράφοντας την εντολή pip:

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

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



από langchain. ενσωματώσεις . openai εισαγωγή OpenAIEmbeddings

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

εσείς . κατά προσέγγιση [ 'OPENAI_API_KEY' ] = 'sk-YOUR_API_KEY'

Για να αποκτήσουμε τις ενσωματώσεις OpenAI, πρέπει να εισαγάγουμε την κλάση OpenAIEmbeddings από το πακέτο 'langchain.embeddings.openai'. Στη συνέχεια, ορίζουμε το κλειδί API ως μεταβλητή περιβάλλοντος. Χρειαζόμαστε το μυστικό κλειδί API για πρόσβαση στα διαφορετικά μοντέλα OpenAI. Αυτό το κλειδί μπορεί να δημιουργηθεί από την πλατφόρμα OpenAI. Απλώς εγγραφείτε και αποκτήστε ένα μυστικό κλειδί από την ενότητα 'προβολή μυστικού κλειδιού' του προφίλ σας. Αυτό το κλειδί μπορεί να χρησιμοποιηθεί σε διαφορετικά έργα για έναν συγκεκριμένο πελάτη.

Οι μεταβλητές περιβάλλοντος χρησιμοποιούνται για την αποθήκευση των κλειδιών API για ένα συγκεκριμένο περιβάλλον αντί για την κωδικοποίηση τους στις συναρτήσεις. Έτσι, για να ορίσουμε το κλειδί API ως μεταβλητή περιβάλλοντος, πρέπει να εισαγάγουμε τη λειτουργική μονάδα 'os'. Η μέθοδος os.environ() χρησιμοποιείται για να ορίσετε το κλειδί API ως μεταβλητή περιβάλλοντος. Περιέχει ένα όνομα και μια τιμή. Το όνομα που ορίσαμε είναι 'OPENAI_API_KEY' και το μυστικό κλειδί έχει οριστεί σε 'τιμή'.

μοντέλο = OpenAIEmbeddings ( )

εισαγωγή κειμένου = «Αυτό είναι για επίδειξη».

αποτέλεσμα = μοντέλο. embed_query ( εισαγωγή κειμένου )

Τυπώνω ( αποτέλεσμα )

Τυπώνω ( μόνο ( αποτέλεσμα ) )

Έχουμε ήδη συνδεθεί με το περιτύλιγμα ενσωμάτωσης OpenAI. Στη συνέχεια, καλούμε τον κατασκευαστή της κλάσης OpenAIEmbedding. Το OpenAI παρέχει μια ποικιλία μοντέλων ενσωμάτωσης, αλλά πρέπει να πληρώσετε για αυτά. Εδώ, πηγαίνουμε με το προεπιλεγμένο μοντέλο ενσωμάτωσης του OpenAI, δηλαδή το text-embedding-ada-002, το οποίο είναι δωρεάν. Όταν δεν παρέχετε κανένα όνομα μοντέλου ως παράμετρο, χρησιμοποιείται το προεπιλεγμένο μοντέλο.

Στη συνέχεια, καθορίζουμε το κείμενο που πρέπει να λάβουμε την ενσωμάτωση. Το κείμενο προσδιορίζεται ως 'Αυτό είναι για επίδειξη'. και αποθηκεύστε το στη μεταβλητή input_text. Μετά από αυτό, καλείται η μέθοδος embed_query() για την ενσωμάτωση του παρεχόμενου κειμένου με το μοντέλο που χρησιμοποιείται και το input_text που έχει τη συμβολοσειρά κειμένου για την ανάκτηση της ενσωμάτωσης που παρέχεται ως παράμετρος. Οι ανακτηθείσες ενσωματώσεις εκχωρούνται στο αντικείμενο αποτελέσματος.

Τέλος, για να εμφανίσουμε το αποτέλεσμα, έχουμε τη μέθοδο print() της Python. Απλώς πρέπει να περάσουμε το αντικείμενο που αποθηκεύει την τιμή που θέλουμε να εμφανίσουμε στη μέθοδο print(). Ως εκ τούτου, καλούμε αυτή τη συνάρτηση δύο φορές. πρώτα για να εμφανίσετε τη λίστα των αιωρούμενων αριθμών και δεύτερον για να εκτυπώσετε το μήκος αυτών των τιμών χρησιμοποιώντας τη μέθοδο len() μαζί της.

Η λίστα των κυμαινόμενων τιμών φαίνεται στο παρακάτω στιγμιότυπο με το μήκος αυτών των τιμών:

Παράδειγμα: Λήψη πολλαπλής εισαγωγής κειμένου/έγγραφου με χρήση της ενσωμάτωσης κειμένου OpenAI

Εκτός από τη λήψη ενσωμάτωσης για ένα μόνο κείμενο εισαγωγής, μπορούμε επίσης να το ανακτήσουμε για πολλαπλές συμβολοσειρές εισόδου. Το εφαρμόζουμε σε αυτήν την απεικόνιση.

Έχουμε ήδη εγκαταστήσει τις βιβλιοθήκες στην προηγούμενη εικόνα. Μια άλλη βιβλιοθήκη που πρέπει να εγκαταστήσουμε εδώ είναι η βιβλιοθήκη tiktoken της Python. Γράψτε την εντολή στο τερματικό για να το εγκαταστήσετε:

$ pip εγκατάσταση tiktoken

Το πακέτο tiktoken είναι ένας κωδικοποιητής ζεύγους Byte. Χρησιμοποιείται με τα μοντέλα OpenAI και αναλύει το κείμενο σε διακριτικά. Αυτό χρησιμοποιείται επειδή οι παρεχόμενες συμβολοσειρές είναι μερικές φορές λίγο μεγάλες για το καθορισμένο μοντέλο OpenAI. Έτσι, χωρίζει το κείμενο και τα κωδικοποιεί σε διακριτικά. Τώρα, ας δουλέψουμε στο κύριο έργο.

από langchain. ενσωματώσεις . openai εισαγωγή OpenAIEmbeddings

μοντέλο = OpenAIEmbeddings ( openai_api_key = 'sk-YOUR_API_KEY'

χορδές = ['
Αυτό είναι Για επίδειξη. ',' Αυτό σειρά είναι επίσης Για επίδειξη. ',' Αυτό είναι άλλο ένα demo σειρά . ',' Αυτό είναι τελευταίος σειρά . ']

result = model.embed_documents(strings)

εκτύπωση (αποτέλεσμα)

print(len(αποτέλεσμα))

Η κλάση OpenAIEmbeddings εισάγεται από το πακέτο 'langchain.embeddings.openai'. Στο προηγούμενο παράδειγμα, ορίσαμε το κλειδί API ως μεταβλητή περιβάλλοντος. Αλλά για αυτό, το περνάμε απευθείας στον κατασκευαστή. Επομένως, δεν χρειάζεται να εισάγουμε τη λειτουργική μονάδα 'os' εδώ.

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

Μπορείτε να καθορίσετε πολλές συμβολοσειρές διαχωρίζοντας απλώς την καθεμία με κόμμα. Στην προηγούμενη περίπτωση, καλείται η μέθοδος embed_text(), αλλά δεν μπορούμε να τη χρησιμοποιήσουμε εδώ, καθώς λειτουργεί μόνο για τη μεμονωμένη συμβολοσειρά κειμένου. Για την ενσωμάτωση πολλών συμβολοσειρών, η μέθοδος που έχουμε είναι η embed_document(). Έτσι, το ονομάζουμε με το καθορισμένο μοντέλο OpenAI και τις συμβολοσειρές κειμένου ως όρισμα. Η έξοδος διατηρείται στο αντικείμενο αποτελέσματος. Τέλος, για να εμφανιστεί η έξοδος, χρησιμοποιείται η μέθοδος Python print() με παράμετρο το αποτέλεσμα του αντικειμένου. Επίσης, θέλουμε να δούμε το μήκος αυτών των κυμαινόμενων τιμών. Έτσι, καλούμε τη μέθοδο len() μέσα στη μέθοδο print().

Η ανακτημένη έξοδος παρέχεται στην παρακάτω εικόνα:

συμπέρασμα

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