AI_EMBED

本文为您介绍如何使用AI_EMBED通过AI大模型进行向量生成。

使用限制

  • 仅实时计算引擎VVR 11.4及以上版本支持。

  • AI_EMBED语句相关的Flink算子的吞吐量受到模型平台限流的限制。当触及平台允许的访问流量上限时,Flink作业会表现出以该算子为瓶颈的反压现象。在限流情况严重时,可能会触发相关算子的超时报错及作业重启。

语法

AI_EMBED(
  MODEL => MODEL <MODEL NAME>, 
  INPUT => <INPUT COLUMN NAME>
)

入参

参数

数据类型

说明

MODEL <MODEL NAME>

MODEL

注册的模型服务名字。详情请参见模型设置注册模型服务。

注意:目前需要该模型的输出类型为 ARRAY<FLOAT> 类型。

<INPUT COLUMN NAME>

STRING

模型待分析的原始文本。

输出

参数

数据类型

说明

embedding

ARRAY<FLOAT>

生成的1024维向量。

示例

测试数据

id

content

1

Flink

测试语句

示例SQL创建text-embedding-v3模型,使用AI_EMBED生成向量。

CREATE TEMPORARY MODEL embedding_model
INPUT (`input` STRING)
OUTPUT (`embedding` ARRAY<FLOAT>)
WITH (
    'provider' = 'openai-compat',
    'endpoint'='<YOUR ENDPOINT>',
    'apiKey' = '<YOUR KEY>',
    'model' = 'text-embedding-v3',
    'dimension' = '1024'
);

CREATE TEMPORARY VIEW infos(id, content)
AS VALUES (1, 'Flink');

-- Use positional argument to call AI_EMBED
SELECT id, embedding
FROM infos,
LATERAL TABLE(
  AI_EMBED(
    MODEL embedding_model, 
    content
    )); 

-- Use named argument to call AI_MASK
SELECT id, embedding
FROM infos,
LATERAL TABLE(
  AI_EMBED(
    MODEL => MODEL embedding_model, 
    INPUT => content
    )); 

输出结果

id

embedding

1

[-0.13219477, 0.054332353, -0.033010617, -0.0039787884, ...]