Bei dieser Lösung handelt es sich um eine Pipeline, um in Dokumenten und Datenbanken gespeichertes Kontextwissen in Texteinbettungen umzuwandeln und diese in einem Vektorspeicher zu speichern. Mit Large Language Models (LLMs) erstellte Anwendungen können eine Ähnlichkeitssuche im Vektorspeicher durchführen, um das Kontextwissen abzurufen, bevor eine Antwort generiert wird. Diese Technik ist als Retrieval Augmented Generation (RAG) bekannt und wird häufig verwendet, um die Qualität und Genauigkeit der Antworten zu verbessern.
Überprüfen und ändern Sie die Konfigurationen, bevor Sie sie für die Produktion verwenden : Die aktuelle Konfiguration sollte nicht ohne weitere Überprüfung und Anpassung für die Produktion verwendet werden. Um Kosten zu sparen, werden viele Anti-Patterns eingesetzt, beispielsweise die Deaktivierung von Backups und Multi-AZ.
Berücksichtigen Sie die anfallenden Kosten : Obwohl diese Lösung kosteneffektiv entwickelt wurde, sollten Sie die anfallenden Kosten im Auge behalten.
Klonen Sie dieses Repository.
Erstellen Sie in Ihrem AWS-Konto ein EC2-Schlüsselpaar mit dem Namen „EC2DefaultKeyPair“.
Abhängigkeiten installieren.
npm install
cdk bootstrap
Verpacken Sie die Lambda-Funktion und ihre Abhängigkeiten.
sh prepare-lambda-package.sh
.prepare-lambda-package.ps1
Stellen Sie die CDK-Stacks bereit.
cdk deploy --all --require-approval never
Es gibt zwei Möglichkeiten, Daten in den S3-Bucket hochzuladen.
(a) Laden Sie eine TXT-Datei mit etwas Inhalt (sample.txt ist ein Beispiel) in den S3-Bucket hoch, der von einem der Stacks erstellt wurde.
(b) Starten Sie die DMS-Replikationsaufgabe in der AWS-Verwaltungskonsole. Die Daten aus der Quelldatenbank werden in den S3-Bucket repliziert und in CSV-Dateien gespeichert.
Die Lambda-Funktion erstellt Texteinbettungen des Inhalts in .txt-/.csv-Dateien und speichert sie im Vektorspeicher.
Stellen Sie eine Verbindung (SSH oder Instanzverbindung) zum Bastion-Host her. Führen Sie zur Authentifizierung den folgenden Befehl aus (und geben Sie das Kennwort ein). Die Anmeldeinformationen finden Sie im Secret „text-embeddings-pipeline-vector-store“ im AWS Secrets Manager.
psql --port=5432 --dbname=postgres --username=postgres --host= < RDS instance DNS name >
dt
aus, um die Datenbanktabellen aufzulisten. Tabellen mit Namen, die mit dem Präfix „langchain“ beginnen, werden von LangChain automatisch erstellt, wenn die Einbettungen erstellt und gespeichert werden. 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)
Die Dokumente und Einbettungen werden in der Tabelle „langchain_pg_embedding“ gespeichert. Sie können die abgeschnittenen Werte anzeigen (die tatsächlichen Werte sind zu lang), indem Sie die folgenden Befehle ausführen.
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
Weitere Informationen finden Sie unter BEITRAGEN.
Diese Bibliothek ist unter der MIT-0-Lizenz lizenziert. Siehe die LICENSE-Datei.