本文介绍了使用Row-oriented AI内置平台模型的操作步骤。
目前支持的内置平台模型信息如下:
函数名称 | 模型名称 | .so文件 | 返回类型 | 描述 |
polarchat | builtin_polarchat | #ailib#_builtin_polarchat.so | STRING | 基于大语言模型的交互式问答函数。 |
polarzixun | builtin_polarzixun | #ailib#_builtin_polarzixun.so | STRING | 基于Retrieval+大语言模型的咨询函数。 |
qwen | builtin_qwen | #ailib#_builtin_qwen.so | STRING | 基于通义千问的大模型函数。 |
步骤1:开启PolarDB for AI功能和冷数据归档功能
您需要在目标集群上开启PolarDB for AI功能和冷数据归档功能,具体的操作步骤请参见开启PolarDB for AI功能和开启冷数据归档。
步骤2:部署内置平台模型
连接数据库,并使用以下SQL语句来部署内置平台模型。
/*polar4ai*/ DEPLOY MODEL builtin_model_name WITH (mode = 'in_db');
部署完成后,您可以使用SHOW MODEL
脚本来查看模型状态。部署成功后的状态为serving,表示内置平台模型部署完毕。
/*polar4ai*/ SHOW MODEL builtin_model_name;
builtin_model_name
需要修改为内置平台模型名称。mode
参数需要设置为in_db
。部署内置平台模型可能需要一段时间,您需要等待模型状态变为serving后,后续操作才会生效。
步骤3:创建函数
该步骤需要使用高权限账号才能执行,或使用高权限账号为普通账号开通mysql.func
系统表权限后才能执行。高权限账号通过MySQL客户端为普通账号开通权限的具体操作方法如下:
-- root login:
mysql> grant insert on mysql.* to 'normal'@'localhost';
Query OK, 0 rows affected (0.01 sec)
mysql> grant delete on mysql.* to 'normal'@'localhost';
Query OK, 0 rows affected (0.02 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.04 sec)
mysql> select * from mysql.func;
Empty set (0.00 sec)
-- normal login:
mysql> select myfunc_int(1);
ERROR 1046 (3D000): No database selected
mysql> select * from mysql.func;
ERROR 1142 (42000): SELECT command denied to user 'normal'@'localhost' for table 'func'
mysql> create function myfunc_int returns int soname 'udf_example.so';
Query OK, 0 rows affected (0.01 sec)
mysql> select myfunc_int(1);
+---------------+
| myfunc_int(1) |
+---------------+
| 1 |
+---------------+
1 row in set (0.00 sec)
mysql> drop function myfunc_int;
Query OK, 0 rows affected (0.00 sec)
您可以使用步骤2生成的UDF(.so
文件)来创建函数。
CREATE FUNCTION function_name RETURNS return_value SONAME "soname";
参数说明如下:
参数名称 | 参数说明 |
function_name | 内置函数名称。内置函数名称是预先定义好的,需使用与步骤2中模型名称对应的函数名称。 |
return_value | 返回值。目前支持REAL、STRING和INTEGER三种返回值类型。 |
soname | .so文件。需使用与步骤2中模型名称对应的.so文件名称。 |
函数创建成功后,您可以通过查询系统表来确认函数是否创建成功。
SELECT * FROM mysql.func;
步骤4:调用函数进行模型推理
您可以使用以下SQL语句来调用函数进行模型推理。
SELECT function_name(feature1, feature2) from predict_table;
SELECT function_name("content");
参数说明如下:
参数名称 | 参数说明 |
function_name | 函数名称。 |
feature1 | 模型推理使用的列名。 |
feature2 | 模型推理使用的列名。 |
predict_table | 进行模型推理的表名。 |
content | 模型推理输入信息。 |