Cette solution est un pipeline permettant de convertir les connaissances contextuelles stockées dans des documents et des bases de données en intégrations de texte et de les stocker dans un magasin vectoriel. Les applications construites avec des modèles linguistiques étendus (LLM) peuvent effectuer une recherche de similarité sur le magasin de vecteurs pour récupérer les connaissances contextuelles avant de générer une réponse. Cette technique est connue sous le nom de Retrieval Augmented Generation (RAG) et elle est souvent utilisée pour améliorer la qualité et la précision des réponses.
Révisez et modifiez les configurations avant de l'utiliser pour la production : la configuration actuelle ne doit pas être utilisée pour la production sans révision et adaptation supplémentaires. De nombreux anti-modèles sont adoptés pour réduire les coûts, comme la désactivation des sauvegardes et du multi-AZ.
Soyez attentif aux coûts encourus : même si cette solution est développée pour être rentable, soyez attentif aux coûts encourus.
Clonez ce référentiel.
Créez une paire de clés EC2 nommée « EC2DefaultKeyPair » dans votre compte AWS.
Installez les dépendances.
npm install
cdk bootstrap
Package de la fonction Lambda et de ses dépendances.
sh prepare-lambda-package.sh
.prepare-lambda-package.ps1
Déployez les piles CDK.
cdk deploy --all --require-approval never
Il existe deux manières de télécharger des données vers le compartiment S3.
(a) Téléchargez un fichier .txt avec du contenu (sample.txt est un exemple) dans le compartiment S3 créé par l'une des piles.
(b) Démarrez la tâche de réplication DMS dans la console de gestion AWS. Les données de la base de données source seront répliquées dans le compartiment S3 et stockées dans des fichiers .csv.
La fonction Lambda créera des intégrations de texte du contenu dans des fichiers .txt/.csv et les stockera dans le magasin de vecteurs.
Connectez-vous (SSH ou connexion à une instance) à l'hôte bastion. Exécutez la commande suivante (et fournissez le mot de passe) pour vous authentifier. Les informations d'identification se trouvent dans le secret « text-embeddings-pipeline-vector-store » dans AWS Secrets Manager.
psql --port=5432 --dbname=postgres --username=postgres --host= < RDS instance DNS name >
dt
pour lister les tables de la base de données. Les tables dont les noms commencent par le préfixe « langchain » sont créées automatiquement par LangChain au fur et à mesure qu'il crée et stocke les intégrations. List of relations
Schema | Name | Type | Owner
--------+-------------------------+-------+----------
public | langchain_pg_collection | table | postgres
public | langchain_pg_embedding | table | postgres
public | upsertion_record | table | postgres
(3 rows)
Les documents et intégrations sont stockés dans la table "langchain_pg_embedding". Vous pouvez voir les valeurs tronquées (les valeurs réelles sont trop longues) en exécutant les commandes suivantes.
SELECT embedding::varchar(80) FROM langchain_pg_embedding;
embedding
----------------------------------------------------------------------------------
[-0.005340576,-0.61328125,0.13769531,0.7890625,0.4296875,-0.13671875,-0.01379394 ...
[0.59375,-0.23339844,0.45703125,-0.14257812,-0.18164062,0.0030517578,-0.00933837 ...
(2 rows)
SELECT document::varchar(80) FROM langchain_pg_embedding;
document
----------------------------------------------------------------------------------
What is text embeddings pipeline?,Text embeddings pipeline allows you to create ...
AWS Health provides improved visibility into planned lifecycle events ...
(2 rows)
cdk destroy --all
Voir CONTRIBUTION pour plus d'informations.
Cette bibliothèque est sous licence MIT-0. Voir le fichier LICENCE.