本页面介绍了如何使用向量辅助功能在 Cloud SQL for PostgreSQL 实例上部署和管理向量工作负载。
如需详细了解向量辅助功能是什么以及它的运作方式,请参阅向量辅助功能概览。
准备工作
- 确认您的实例使用的是正确的维护版本。向量辅助功能需要最低维护版本号
PostgreSQL_$version.R20251004.01_07。如需详细了解如何执行自助维护,请参阅执行自助维护。 - 将
cloudsql.enable_vector_assist数据库标志设置为ON。 在要使用的数据库中,使用以下命令启用向量辅助扩展程序:
CREATE EXTENSION vector_assist CASCADE;这会生成
vector_assist架构,供向量辅助功能使用。
使用向量辅助功能部署向量工作负载
如需使用向量辅助功能来部署和管理向量工作负载,您必须执行以下操作:
定义向量规范
定义向量规范是使用向量辅助功能的第一步。根据向量工作负载的类型,您用于定义向量规范的字段可能会有所不同。
例如,如果您想在表的特定列中启用语义搜索,请运行 vector_assist.define_spec 函数来定义向量规范:
SELECT vector_assist.define_spec(
table_name => 'TABLE_NAME',
vector_column_name => 'VECTOR_COLUMN_NAME',
target_recall => TARGET_RECALL,
tune_vector_index => TUNE_INDEX
);
替换以下参数:
- TABLE_NAME:您要在向量工作负载中使用的表的名称。
- VECTOR_COLUMN_NAME:要执行语义搜索的列。
- TARGET_RECALL:您希望向量辅助功能达到的目标召回率。
- TUNE_INDEX:一个布尔值,用于指定向量辅助功能是否会调整工作负载中的向量索引。
如需查看向量规范的所有可用参数的完整列表,请参阅向量辅助参考文档。
运行查询以创建向量规范后,向量辅助功能会自动生成部署向量工作负载所需的步骤(称为建议)。
查看向量辅助建议
如需查看使用向量规范通过向量辅助功能生成的建议,请运行 vector_assist.get_recommendations 函数:
SELECT vector_assist.get_recommendations(
spec_id => 'SPEC_ID'
);
替换以下参数:
- SPEC_ID:您要查看建议的向量规范的 ID。
返回一个名为 vector_assist.RECOMMENDATIONS 的表,其中包含所有建议。每项建议都存储在一个表中,并带有关联的 spec_id。每条建议通常包含您需要运行的 SQL 查询、有关建议的详细说明以及其他说明建议的相关信息。
应用向量辅助建议
您可以单独应用生成的建议,也可以全部应用。
如需应用特定建议,请运行 vector_assist.apply_recommendation 函数:
SELECT vector_assist.apply_recommendation(
recommendation_id => 'RECOMMENATION_ID',
);
替换以下参数:
- RECOMMENDATION_ID:您要从
vector_assist.RECOMMENDATIONS表中应用的向量辅助建议的 ID。
如需同时应用所有建议,请运行带有 spec_id 或 table_name 参数的 vector_assist.apply_spec 函数:
SELECT vector_assist.apply_spec(
spec_id => 'SPEC_ID',
table_name => 'TABLE_NAME'
);
替换以下参数:
- SPEC_ID:您要使用的向量规范的 ID。
- TABLE_NAME:用于定义向量规范的表的名称。
您还可以选择输入 schema_name 或 column_name 参数。
应用向量辅助功能生成的建议后,向量索引即可供您使用。
生成搜索查询
您可以使用向量辅助功能,根据已部署的向量工作负载的向量规范和生成的向量索引,帮助您为这些工作负载构建优化的搜索查询。如需生成优化后的搜索查询,请运行 vector_assist.generate_query 函数:
SELECT vector_assist.generate_query(
spec_id => 'SPEC_ID',
table_name => 'TABLE_NAME',
column_name => 'COLUMN_NAME',
search_text => 'SEARCH_TEXT',
top_k => 'TOP_K_NAME',
target_recall => TARGET_RECALL,
filter_expression => 'FILTER_EXPRESSION'
);
替换以下参数:
- SPEC_ID:您要使用的规范的 ID。
- TABLE_NAME:用于定义向量规范的表的名称。
- COLUMN_NAME:您在向量规范中定义的原始文本列的名称。
- SEARCH_TEXT:要在列中搜索的文本。
- TOP_K:要返回的最近邻数量。
- TARGET_RECALL:您希望向量辅助功能达到的目标召回率。
- FILTER_EXPRESSION:搜索查询的任何过滤条件,例如基于其他列的过滤条件。
如需查看用于生成搜索查询的所有可用参数的完整列表,请参阅向量辅助参考文档。
此函数的输出会返回包含 SQL 查询的文本。您可以根据需要运行或保存此 SQL 查询。