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 許可證獲得許可。請參閱許可證文件。