模型狀態為READY
時,您可以使用系統函數調用模型執行推理、預測、生成等任務。
前提條件
非時序類任務
語法
SELECT function_name(model_name, field1_name, field2_name, ..., params) [FROM table_name [WHERE clause]];
參數說明
function_name:系統函數名稱。取值為
ai_infer
。ai_infer
為執行非時序類任務時使用的推理函數。model_name:模型名稱。必選參數,類型為VARCHAR。
field_name:目標字段參數。可能同時具有多個。具體說明如下表所示:
任務類型
參數
是否必選
參數類型
說明
特征提取
field1_name
是
VARCHAR
需要進行特征提取(向量化)的文本常量。
文生圖
field1_name
是
VARCHAR
表(From條件中指定的表)中的文本列名或文本常量。
語義檢索
field1_name
是
VARCHAR
需要檢索的文本常量。
基礎問答
field1_name
是
VARCHAR
輸入的問題。
檢索問答
field1_name
是
VARCHAR
輸入的問題。
params:調整推理參數。可選參數。格式為:
key1=value1, [key2=value2]
。具體說明如下表所示:任務類型
參數
說明
特征提取
normalize
是否對返回的向量進行歸一化處理。取值如下:
true:默認值,是。
false:否。
文生圖
無
無。
語義檢索
score
是否返回語義相似度。取值如下:
true:是。
false:否。
topK
檢索時返回最相似的數據條數。取值范圍為[1, 10000],默認值為10。
efSearch
檢索時動態列表的長度,取值范圍為[1,1000],默認值為100。efSearch的值越大,查詢精度越高,同時會消耗更多的性能,降低查詢速度。
threshold
檢索時返回數據需滿足語義相似度的最低閾值,取值范圍為[0, 1.0],默認值為0.6。
returnChunk
是否返回文檔切片(Chunk)而不是原始語料(僅在模型創建時指定text_splitter參數為
on
時有效)。取值如下:true:是。
false:否。
extendChunk
在返回Chunk時指定進行前后擴展(根據Chunk的順序)的數量(僅在指定returnChunk參數為
true
且模型創建時指定text_splitter參數為on
時有效)。取值范圍為[1,100]。rrfK
指定混合檢索時使用的RRF算法中的常量K(僅在模型創建時混合檢索功能打開時生效),取值范圍為[1,100]。默認值為60。
verbose
是否返回詳細信息。取值如下:
true:是。
false:否。
基礎問答
無
無。
檢索問答
topK
檢索時返回最相似的數據條數。取值范圍為[1, 10000],默認值為10。
efSearch
檢索時動態列表的長度。取值范圍為[1,1000],默認值為100。efSearch的值越大,查詢精度越高,同時會消耗更多的性能,降低查詢速度。
threshold
檢索時返回數據需滿足語義相似度的最低閾值。取值范圍為[0, 1.0],默認值為0.6。
extendChunk
在檢索獲取Chunk時指定進行前后擴展(根據Chunk順序)的數量(僅在模型創建時指定text_splitter參數為
on
時有效)。取值范圍為[1,100]。verbose
是否返回詳細信息。取值如下:
true:是。
false:否。
返回值說明
任務類型 | 返回值類型 | 返回值說明 |
特征提取 | VARCHAR | 返回文本對應的向量。 |
文生圖 | VARCHAR | 圖片在Lindorm S3兼容協議中的地址。 |
語義檢索 | VARCHAR | 以JSON格式表示的相似文本列表。 |
基礎問答 | VARCHAR | 問答的答案。 |
檢索問答 | VARCHAR | 問答的答案。 |
示例
使用ai_infer
函數進行模型推理。
SELECT `design_desc`, ai_infer('interior_design', `design_desc`) as 'design_image' FROM design_desc;
返回值取決于任務類型,即模型創建時設置的TASK參數。
時序類任務
語法
SELECT function_name(field_name, model_name, params) FROM table_name [WHERE clause] SAMPLE BY time_interval;
參數說明
function_name:系統函數名稱,取值如下:
FORECAST:時序預測函數。如何配置FORECAST函數中的field_name、model_name和params,請參見FORECAST函數(時序預測)。
ANOMALY_DETECT:時序異常檢測函數。如何配置ANOMALY_DETECT函數中的field_name、model_name和params,請參見ANOMALY_DETECT函數(時序異常檢測)。
返回值說明
任務類型 | 返回值類型 | 返回值說明 |
時序預測 | DOUBLE | 時序預測結果。 |
時序異常檢測 | BOOLEAN | 時序異常檢測結果。具體說明如下:
|
示例
SELECT device_id, region, `time`, raw(temperature) as temperature, anomaly_detect(temperature, ad_model) as detect_result from sensor WHERE time >= '2022-01-01 00:00:00' and time < '2022-01-01 00:01:00' SAMPLE BY 0;