Esta solución es un canal para convertir el conocimiento contextual almacenado en documentos y bases de datos en incrustaciones de texto y almacenarlos en un almacén de vectores. Las aplicaciones creadas con modelos de lenguaje grandes (LLM) pueden realizar una búsqueda de similitud en el almacén de vectores para recuperar el conocimiento contextual antes de generar una respuesta. Esta técnica se conoce como Generación Aumentada de Recuperación (RAG) y suele utilizarse para mejorar la calidad y precisión de las respuestas.
Revise y cambie las configuraciones antes de usarla para producción : la configuración actual no debe usarse para producción sin una revisión y adaptación adicional. Se adoptan muchos antipatrones para ahorrar costos, como deshabilitar las copias de seguridad y multi-AZ.
Tenga en cuenta los costos incurridos : si bien esta solución se desarrolla para que sea rentable, tenga en cuenta los costos incurridos.
Clona este repositorio.
Cree un par de claves EC2 denominado "EC2DefaultKeyPair" en su cuenta de AWS.
Instalar dependencias.
npm install
cdk bootstrap
Paquete de función Lambda y sus dependencias.
sh prepare-lambda-package.sh
.prepare-lambda-package.ps1
Implemente las pilas de CDK.
cdk deploy --all --require-approval never
Hay dos formas de cargar datos al depósito de S3.
(a) Cargue un archivo .txt con algún contenido (sample.txt es un ejemplo) al depósito S3 creado por una de las pilas.
(b) Inicie la tarea de replicación de DMS en la consola de administración de AWS. Los datos de la base de datos de origen se replicarán en el depósito de S3 y se almacenarán en archivos .csv.
La función Lambda creará incrustaciones de texto del contenido en archivos .txt/.csv y los almacenará en el almacén de vectores.
Conéctese (SSH o conexión de instancia) al host bastión. Ejecute el siguiente comando (y proporcione la contraseña) para autenticarse. Las credenciales se pueden encontrar en el secreto "text-embeddings-pipeline-vector-store" en AWS Secrets Manager.
psql --port=5432 --dbname=postgres --username=postgres --host= < RDS instance DNS name >
dt
para enumerar las tablas de la base de datos. LangChain crea automáticamente tablas con nombres que comienzan con el prefijo "langchain" a medida que crea y almacena las incrustaciones. 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)
Los documentos y las incrustaciones se almacenan en la tabla "langchain_pg_embedding". Puede ver los valores truncados (los valores reales son demasiado largos) ejecutando los siguientes comandos.
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
Consulte CONTRIBUCIÓN para obtener más información.
Esta biblioteca tiene la licencia MIT-0. Ver el archivo de LICENCIA.