本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Aurora PostgreSQL 做為 Amazon Bedrock 的知識庫
您可以使用 Aurora PostgreSQL 資料庫叢集做為 Amazon Bedrock 的知識庫。如需詳細資訊,請參閱在 Amazon Aurora 中建立向量存放區。知識庫會自動擷取存放在 Amazon S3 儲存貯體中的非結構化文字資料,將其轉換為文字區塊和向量,並將其存放在 PostgreSQL 資料庫中。透過生成式 AI 應用程式,您可以使用 Amazon Bedrock 的 Agents 來查詢存放在知識庫中的資料,並使用這些查詢的結果來增強基礎模型提供的答案。此工作流程稱為擷取增強產生 (RAG)。如需 的詳細資訊RAG,請參閱擷取增強產生 (RAG)。
如需使用 Aurora PostgreSQL 使用 建置生成性 AI 應用程式的詳細資訊RAG,請參閱此部落格文章
主題
必要條件
熟悉下列先決條件,以使用 Aurora PostgreSQL 叢集做為 Amazon Bedrock 的知識庫。在高階,您需要設定下列服務以搭配 Bedrock 使用:
在下列任何版本中建立的 Amazon Aurora PostgreSQL 資料庫叢集:
16.1 和所有更高版本
15.4 和更新版本
14.9 和更新版本
13.12 和更新版本
12.16 和更新版本
注意
您必須在目標資料庫中啟用
pgvector
延伸模組,並使用 0.5.0 版或更新版本。如需詳細資訊,請參閱具有HNSW索引的 pgvector v0.5.0。RDS 資料 API
在 中受管的使用者 AWS Secrets Manager。如需詳細資訊,請參閱使用 Aurora 和 進行密碼管理 AWS Secrets Manager。
準備 Aurora PostgreSQL 做為 Amazon Bedrock 的知識庫
請遵循以下各節中說明的步驟,準備將 Aurora PostgreSQL 用作 Amazon Bedrock 的知識庫。
建立和設定 Aurora PostgreSQL
若要使用 Aurora PostgreSQL 資料庫叢集設定 Amazon Bedrock,您必須先建立 Aurora PostgreSQL 資料庫叢集,並記下使用 Amazon Bedrock 設定它的重要欄位。如需建立 Aurora PostgreSQL 資料庫叢集的詳細資訊,請參閱 建立 Aurora PostgreSQL 資料庫叢集並與之連線。
在建立 Aurora PostgreSQL 資料庫叢集API時啟用資料。如需支援版本的詳細資訊,請參閱 使用 RDS Data API。
請務必記下 Aurora PostgreSQL 資料庫叢集的 Amazon Resource Names (ARN)。您需要用它來設定資料庫叢集,以便與 Amazon Bedrock 搭配使用。如需詳細資訊,請參閱 Amazon Resource Names (ARNs)。
連線至資料庫並安裝 pgvector
您可以使用任何連線公用程式連線至 Aurora PostgreSQL。如需這些公用程式的詳細資訊,請參閱 連線至 Amazon Aurora PostgreSQL 資料庫叢集。或者,您可以使用RDS主控台查詢編輯器來執行查詢。您需要API已啟用RDS資料的 Aurora 資料庫叢集,才能使用查詢編輯器。
-
使用您的主要使用者登入資料庫並設定 pgvector。如果未安裝擴充功能,請使用下列命令:
CREATE EXTENSION IF NOT EXISTS vector;
使用支援HNSW索引的
pgvector
0.5.0 和更高版本。如需詳細資訊,請參閱具有HNSW索引的 pgvector v0.5.0。 -
使用下列命令來檢查
pg_vector
已安裝的 版本:SELECT extversion FROM pg_extension WHERE extname='vector';
設定資料庫物件和權限
建立 Bedrock 可用來查詢資料的特定結構描述。使用下列命令來建立結構描述:
CREATE SCHEMA bedrock_integration;
建立 Bedrock 可用來查詢資料庫的新角色。使用下列命令來建立新的角色:
CREATE ROLE bedrock_user WITH PASSWORD '
password
' LOGIN;注意
請記下此密碼,因為稍後您需要它來建立 Secrets Manager 密碼。
如果您使用的是
psql
用戶端,請使用下列命令來建立新的角色:CREATE ROLE bedrock_user LOGIN; \PASSWORD
password
;授予管理
bedrock_integration
結構描述的bedrock_user
許可。這將提供在結構描述中建立資料表或索引的功能。GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
以 身分登入,
bedrock_user
並在 中建立資料表bedrock_integration schema
。CREATE TABLE bedrock_integration.bedrock_kb (id uuid PRIMARY KEY, embedding vector(
n
), chunks text, metadata json);此命令會在結構描述中使用 Titan
bedrock_integration
內嵌建立bedrock_kb
資料表。將
vector(
資料類型中的 n 取代為您所使用的內嵌模型的適當維度。使用以下建議來協助選取您的維度:n
)對於 Titan v2 模型,請使用
vector(1024)
、 或vector(512)
或vector (256)
。若要進一步了解,請參閱 Amazon Titan 內嵌文字。對於 Titan v1.2 模型,請使用 。
vector(1536)
若要進一步了解,請參閱 Amazon Titan Multimodal Embeddings G1。針對 Cohere 內嵌模型,請使用
vector(1024)
。若要進一步了解,請參閱 Cohere 內嵌模型。針對 Cohere 內嵌多語言 v3,請使用
vector(1024)
。
我們建議您使用餘弦運算子建立索引,底岩可用來查詢資料。
CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);
我們建議您針對使用平行索引建置
ef_construction
的 0.6.0 和更高版本,將 的值設定為pgvector
256。CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops) WITH (ef_construction=256);
在 Secrets Manager 中建立秘密
Secrets Manager 可讓您存放 Aurora 登入資料,以便安全地傳輸到應用程式。如果您在建立 Aurora PostgreSQL 資料庫叢集時未選擇 AWS 秘密管理員選項,您現在可以建立秘密。如需建立 AWS Secrets Manager 資料庫秘密的詳細資訊,請參閱 AWS Secrets Manager 資料庫秘密。
在 Bedrock 主控台中建立知識庫
準備 Aurora PostgreSQL 做為知識庫的向量存放區時,您必須收集下列詳細資訊,以便提供給 Amazon Bedrock 主控台。
Amazon Aurora 資料庫叢集 ARN – 資料庫叢集ARN的 。
Secret ARN – 資料庫叢集的 AWS Secrets Manager 金鑰ARN的 。
資料庫名稱 – 資料庫的名稱。例如,您可以使用預設資料庫
postgres
。資料表名稱 – 我們建議您在使用類似下列的命令建立資料表時,提供符合結構描述的名稱:
CREATE TABLE bedrock_integration.bedrock_kb;
此命令會在
bedrock_integration
結構描述中建立bedrock_kb
資料表。建立資料表時,請務必使用指定的資料欄和資料類型來設定資料表。您可以使用您偏好的資料欄名稱,而不是資料表中列出的名稱。請記得記下您在知識庫設定期間選擇用於參考的名稱。
欄名稱 資料類型 描述 id UUID 主索引鍵 包含每個記錄的唯一識別碼。
區塊 文字 包含來自資料來源的原始文字區塊。
內嵌項目 向量 包含資料來源的向量內嵌項目。
中繼資料 JSON 包含執行來源屬性和啟用資料擷取和查詢所需的中繼資料。
透過這些詳細資訊,您現在可以在 Bedrock 主控台中建立知識庫。如需設定向量索引和建立知識庫資訊的更多詳細資訊,請參閱在 Amazon Aurora 中建立向量存放區和在 Amazon Aurora 中建立向量存放區。
新增 Aurora 做為知識庫後,您現在可以擷取資料來源以進行搜尋和查詢。如需詳細資訊,請參閱將資料來源擷取至知識庫。