Comment utiliser les incorporations dans LangChain

Comment Utiliser Les Incorporations Dans Langchain



Les incorporations sont un indice de la relation entre les chaînes de texte et sont exprimées par un vecteur (liste) d'entiers à virgule flottante. La distance entre deux vecteurs sert à mesurer à quel point ils sont étroitement liés; plus la distance est petite, plus la parenté est étroite. La classe LangChain Embedding est destinée à servir d'interface pour l'intégration de services tels que OpenAI, HuggingFace et autres.

Deux méthodes, embed_query() et embed_documents(), sont fournies par la classe de base. Le premier d'entre eux fonctionne sur un seul document, tandis que l'autre peut fonctionner sur plusieurs documents.

Cet article comprend la démonstration pratique de l'intégration dans LangChain à l'aide des intégrations de texte OpenAI.







Exemple : Obtention d'un texte d'entrée unique à l'aide de l'intégration de texte OpenAI

Pour la première illustration, nous saisissons une seule chaîne de texte et récupérons l'intégration de texte OpenAI pour celle-ci. Le programme commence par installer les bibliothèques nécessaires.



La première bibliothèque que nous devons installer dans notre projet est LangChain. Il n'est pas fourni avec la bibliothèque standard Python, nous devons donc l'installer séparément. Puisque langchain est disponible sur PyPi, nous pouvons facilement l'installer en utilisant la commande pip sur le terminal. Ainsi, nous exécutons la commande suivante pour installer la bibliothèque LangChain :



$ pip install langchain

La bibliothèque est installée dès que les conditions requises sont satisfaites.





Nous avons également besoin que la bibliothèque OpenAI soit installée dans notre projet afin que nous puissions accéder aux modèles OpenAI. Cette bibliothèque peut être inaugurée en écrivant la commande pip :

$ pip installer openai

Maintenant, les deux bibliothèques requises sont installées dans notre fichier de projet. Nous devons importer les modules requis.



depuis langchain. encastrements . openai importer OpenAIEmbeddings

importer toi

toi . environ [ 'OPENAI_API_KEY' ] = 'sk-YOUR_API_KEY'

Pour obtenir les embeddings OpenAI, nous devons importer la classe OpenAIEmbeddings du package « langchain.embeddings.openai ». Ensuite, nous définissons la clé API comme variable d'environnement. Nous avons besoin de la clé API secrète pour accéder aux différents modèles OpenAI. Cette clé peut être générée depuis la plateforme OpenAI. Inscrivez-vous simplement et obtenez une clé secrète dans la section 'Afficher la clé secrète' de votre profil. Cette clé peut être utilisée dans différents projets pour un client spécifique.

Les variables d'environnement sont utilisées pour stocker les clés API d'un environnement particulier plutôt que de les coder en dur dans les fonctions. Ainsi, pour définir la clé API comme variable d'environnement, nous devons importer le module 'os'. La méthode os.environ() est utilisée pour définir la clé API comme variable d'environnement. Il contient un nom et une valeur. Le nom que nous définissons est 'OPENAI_API_KEY' et la clé secrète est définie sur 'valeur'.

modèle = OpenAIEmbeddings ( )

Texte de saisie = 'C'est pour la démonstration.'

résultat = modèle. embed_query ( Texte de saisie )

imprimer ( résultat )

imprimer ( seul ( résultat ) )

Nous nous sommes déjà interfacés avec le wrapper d'intégration OpenAI. Par la suite, nous appelons le constructeur de la classe OpenAIEmbedding. OpenAI fournit une variété de modèles d'intégration, mais vous devez les payer. Ici, nous allons avec le modèle d'intégration par défaut d'OpenAI, c'est-à-dire text-embedding-ada-002, qui est gratuit. Lorsque vous ne fournissez aucun nom de modèle en tant que paramètre, le modèle par défaut est utilisé.

Ensuite, nous spécifions le texte dont nous devons obtenir l'incorporation. Le texte est spécifié comme 'Ceci est pour la démonstration.' et stockez-le dans la variable input_text. Après cela, la méthode embed_query() pour incorporer le texte fourni est appelée avec le modèle utilisé et le input_text qui contient la chaîne de texte pour récupérer l'incorporation fournie en paramètre. Les représentations incorporées récupérées sont affectées à l'objet de résultat.

Enfin, pour afficher le résultat, nous avons la méthode print() de Python. Nous devons simplement passer l'objet qui stocke la valeur que nous voulons afficher à la méthode print(). Par conséquent, nous invoquons cette fonction deux fois ; d'abord pour afficher la liste des nombres flottants et ensuite pour imprimer la longueur de ces valeurs en utilisant la méthode len() avec.

La liste des valeurs flottantes peut être vue dans l'instantané suivant avec la longueur de ces valeurs :

Exemple : Obtention de plusieurs textes/documents à l'aide de l'intégration de texte OpenAI

Outre l'obtention d'une intégration pour un seul texte d'entrée, nous pouvons également le récupérer pour plusieurs chaînes d'entrée. Nous implémentons cela dans cette illustration.

Nous avons déjà installé les bibliothèques dans l'illustration précédente. Une autre bibliothèque que nous devons installer ici est la bibliothèque tiktoken de Python. Écrivez la commande sur le terminal pour l'installer :

$ pip installer tiktoken

Le package tiktoken est un tokenizer Byte Pair Encoding. Il est utilisé avec les modèles OpenAI et décompose le texte en jetons. Ceci est utilisé car les chaînes fournies sont parfois un peu longues pour le modèle OpenAI spécifié. Ainsi, il divise le texte et les encode en jetons. Maintenant, travaillons sur le projet principal.

depuis langchain. encastrements . openai importer OpenAIEmbeddings

modèle = OpenAIEmbeddings ( openai_api_key = 'sk-YOUR_API_KEY'

chaînes = ['
Ce est pour manifestation. ', ' Ce chaîne est aussi pour manifestation. ', ' Ce est une autre démo chaîne . ', ' Celui-ci est dernier chaîne . ']

résultat = model.embed_documents(strings)

imprimer (résultat)

print(len(résultat))

La classe OpenAIEmbeddings est importée du package « langchain.embeddings.openai ». Dans l'exemple précédent, nous définissons la clé API comme variable d'environnement. Mais pour celui-ci, nous le passons directement au constructeur. Nous n'avons donc pas besoin d'importer le module 'os' ici.

Après avoir invoqué le modèle OpenAI qui est les OpenAIEmbeddings, nous lui transmettons la clé API secrète. Dans la ligne suivante, les chaînes de texte sont spécifiées. Ici, nous stockons quatre chaînes de texte dans les chaînes d'objet. Ces chaînes sont 'Ceci est pour la démonstration', 'Cette chaîne est également pour la démonstration', 'Ceci est une autre chaîne de démonstration' et 'Ceci est la dernière chaîne'.

Vous pouvez spécifier plusieurs chaînes en les séparant simplement par une virgule. Dans l'instance précédente, la méthode embed_text() est appelée mais nous ne pouvons pas l'utiliser ici car elle ne fonctionne que pour la seule chaîne de texte. Pour intégrer plusieurs chaînes, la méthode que nous avons est embed_document(). Nous l'appelons donc avec le modèle OpenAI spécifié et les chaînes de texte comme argument. La sortie est conservée dans l'objet de résultat. Enfin, pour afficher la sortie, la méthode Python print() est utilisée avec le résultat de l'objet comme paramètre. De plus, nous voulons voir la longueur de ces valeurs flottantes. Ainsi, nous invoquons la méthode len() dans la méthode print().

La sortie récupérée est fournie dans l'image suivante :

Conclusion

Cet article a discuté du concept d'intégration dans LangChain. Nous avons appris ce qu'est l'intégration et comment cela fonctionne. Une implémentation pratique de l'intégration des chaînes de texte est illustrée ici. Nous avons réalisé deux illustrations. Le premier exemple a travaillé sur la récupération de l'intégration d'une seule chaîne de texte et le deuxième exemple a compris comment obtenir l'intégration de plusieurs chaînes d'entrée à l'aide du modèle d'intégration OpenAI.