rag 的文本嵌入管道
1.0.0
该解决方案是将存储在文档和数据库中的上下文知识转换为文本嵌入的管道,并将其存储在向量存储中。使用大型语言模型 (LLM) 构建的应用程序可以在向量存储上执行相似性搜索,以在生成响应之前检索上下文知识。该技术称为检索增强生成 (RAG),通常用于提高响应的质量和准确性。
在将配置用于生产之前检查并更改配置:未经进一步检查和调整,当前配置不应用于生产。采用许多反模式来节省成本,例如禁用备份和多可用区。
请注意所产生的成本:虽然此解决方案的开发具有成本效益,但请注意所产生的成本。
克隆这个存储库。
在您的 AWS 账户中创建一个名为“EC2DefaultKeyPair”的 EC2 密钥对。
安装依赖项。
npm install
cdk bootstrap
打包 Lambda 函数及其依赖项。
sh prepare-lambda-package.sh
.prepare-lambda-package.ps1
部署 CDK 堆栈。
cdk deploy --all --require-approval never
有两种方法可以将数据上传到S3存储桶。
(a) 将包含一些内容的 .txt 文件(例如 example.txt)上传到由堆栈之一创建的 S3 存储桶。
(b) 在 AWS 管理控制台中启动 DMS 复制任务。源数据库中的数据将被复制到 S3 存储桶并存储在 .csv 文件中。
Lambda 函数将在 .txt / .csv 文件中创建内容的文本嵌入并将其存储在矢量存储中。
连接(SSH 或实例连接)到堡垒主机。运行以下命令(并提供密码)进行身份验证。凭证可以在 AWS Secrets Manager 的“text-embeddings-pipeline-vector-store”密钥中找到。
psql --port=5432 --dbname=postgres --username=postgres --host= < RDS instance DNS name >
dt
以列出数据库表。名称以前缀“langchain”开头的表是由 LangChain 在创建和存储嵌入时自动创建的。 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)
文档和嵌入存储在“langchain_pg_embedding”表中。您可以通过运行以下命令来查看截断的值(实际值太长)。
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
请参阅贡献以获取更多信息。
该库根据 MIT-0 许可证获得许可。请参阅许可证文件。