AI_SIMILARITY¶
基于输入嵌入向量的余弦相似度值,计算相似度分数。目前支持文本和图像相似度计算。
语法¶
将 AI_SIMILARITY 应用于字符串或图像输入:
AI_SIMILARITY( <input1>, <input2> )
指定配置对象:
AI_SIMILARITY( <input1>, <input2>, <config_object> )
实参¶
必填:
如果您要指定输入字符串:
input1
、input2
包含您正在比较的文本的字符串,用于计算相似度分数。
如果您要指定输入图像:
input1
、input2
FILE 数据类型 引用要比较的图像。
备注
AI_SIMILARITY 不支持计算文本和图像输入之间的相似度。
可选:
config_object
包含用于配置模型的键值对的 OBJECT。
键 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
对于 STRING 输入,默认为 |
用于嵌入的嵌入模型。支持的值包括:
|
返回¶
返回介于 -1 到 1 之间的浮点值,该浮点值表示使用输入的两个嵌入向量之间的向量相似度计算的相似度分数。
访问控制要求¶
用户必须使用已被授予 SNOWFLAKE.CORTEX_USER 数据库角色 的角色。有关此权限的更多信息,请参阅 所需权限。
示例¶
AI_SIMILARITY:文本¶
在此示例中,该函数计算两个语句输入 'I like this dish'
和 'This dish is very good'
之间的相似度分数。
SELECT AI_SIMILARITY('I like this dish', 'This dish is very good');
我们还可以计算文本列的相似度。
SELECT
review
FROM restaurant_reviews
ORDER BY AI_SIMILARITY(review, 'I love the food here!');
AI_SIMILARITY:图像¶
在此示例中,该函数计算存储在 Snowflake 暂存区 @file_stage
中的两个图像 cat.jpg
和 2cats.jpg
之间的相似度分数。
SELECT AI_SIMILARITY(TO_FILE('@file_stage', 'cat.jpg'), TO_FILE('@file_stage', '2cats.jpg'));
对于包含图像的暂存区,我们还可以使用 Snowflake Directory Table 计算图像之间的相似度。
SELECT
to_file('@file_stage', relative_path)
FROM directory(@file_stage)
WHERE AI_SIMILARITY(f, to_file(@file_stage, 'cat.jpg')) >= 0.5;
限制¶
Snowflake AI 函数不支持动态表增量刷新。
Snowflake AI 函数不适用于通过以下暂存区类型的暂存区文件创建的 FILEs:
具有加密模式
TYPE = 'SNOWFLAKE_FULL'
的内部暂存区使用任何客户端加密模式的外部暂存区:
TYPE = 'AWS_CSE'
TYPE = 'AZURE_CSE'
用户暂存区、表暂存区
带有双引号名称的暂存区
计费¶
AI_SIMILARITY
目前按 SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_USAGE_HISTORY 视图中的 AI_EMBED
行项目计费。