Esta solução é um pipeline para converter conhecimento contextual armazenado em documentos e bancos de dados em incorporações de texto e armazená-los em um armazenamento vetorial. Aplicativos construídos com Large Language Models (LLMs) podem realizar uma pesquisa de similaridade no armazenamento de vetores para recuperar o conhecimento contextual antes de gerar uma resposta. Essa técnica é conhecida como Geração Aumentada de Recuperação (RAG) e é frequentemente usada para melhorar a qualidade e precisão das respostas.
Revise e altere as configurações antes de usá-la para produção : a configuração atual não deve ser usada para produção sem revisão e adaptação adicionais. Muitos antipadrões são adotados para economizar custos, como desabilitar backups e multi-AZ.
Esteja atento aos custos incorridos : embora esta solução tenha sido desenvolvida para ser econômica, esteja atento aos custos incorridos.
Clone este repositório.
Crie um par de chaves EC2 chamado "EC2DefaultKeyPair" em sua conta AWS.
Instale dependências.
npm install
cdk bootstrap
Função do pacote Lambda e suas dependências.
sh prepare-lambda-package.sh
.prepare-lambda-package.ps1
Implante as pilhas CDK.
cdk deploy --all --require-approval never
Existem duas maneiras de fazer upload de dados para o bucket S3.
(a) Faça upload de um arquivo .txt com algum conteúdo (sample.txt é um exemplo) para o bucket S3 criado por uma das pilhas.
(b) Inicie a tarefa de replicação do DMS no console de gerenciamento da AWS. Os dados do banco de dados de origem serão replicados para o bucket S3 e armazenados em arquivos .csv.
A função Lambda criará embeddings de texto do conteúdo em arquivos .txt/.csv e os armazenará no armazenamento de vetores.
Conecte-se (SSH ou conexão de instância) ao host bastião. Execute o seguinte comando (e forneça a senha) para autenticar. As credenciais podem ser encontradas no segredo "text-embeddings-pipeline-vector-store" no AWS Secrets Manager.
psql --port=5432 --dbname=postgres --username=postgres --host= < RDS instance DNS name >
dt
para listar as tabelas do banco de dados. Tabelas com nomes começando com o prefixo "langchain" são criadas pelo LangChain automaticamente à medida que ele cria e armazena os embeddings. 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)
Os documentos e embeddings são armazenados na tabela "langchain_pg_embedding". Você pode ver os valores truncados (os valores reais são muito longos) executando os comandos a seguir.
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 CONTRIBUINDO para obter mais informações.
Esta biblioteca está licenciada sob a licença MIT-0. Veja o arquivo LICENÇA.