Hologres自V3. 2版本起正式支持AI Function,并提供了Embedding、Rank和LLM等算子。您可通过标准SQL直接调用AI Function,无需额外推理服务,实现企业级知识库构建与推理等AI场景。
前提条件
AI Function汇总表
当前Hologres支持AI Function如下表:
每个AI Function会根据部署的模型,默认分配一个最佳的模型,可以通过系统表查看AI Function默认分配的模型。
调用AI Function时可以不需要填写模型名称,系统会自动使用默认的模型。如果需要更换AI Function对应的模型,需要通过系统表更改,详情请参见修改AI Function对应的模型。
每个模型部署时需要的AI资源不同,请根据业务需要购买合适的规格。
Function名称 | 描述 | 支持的模型 | 支持的版本 |
将一个URL转成FILE类型。 | 无需模型,通常适配Object Table一起使用。 | V4.0及以上版本支持 | |
拼装大模型提示词,可以包装多模态提示词。 | 无需模型。 | ||
将非结构化PDF、图片等数据解析成文本。 | ds4sd/docling-models。 | ||
对给定的文本、图片计算一个固定维度的连续向量。 | 文本类:
图片类:clip-ViT-B系列。 |
| |
对给定的文本进行相关性打分。 | Qwen3系列大模型,推荐使用Qwen/Qwen3-32B。 | V3.2.2及以上版本 | |
长文本分段。 | recursive-character-text-splitter。 | ||
通过提示词调用大语言模型对文本、图片进行推理并输出结果。 | 文本类:Qwen3系列大模型,推荐使用Qwen/Qwen3-32B。 图片类:Qwen/Qwen2.5-VL-xB类型。 |
| |
根据提供的分类标签对输入文本进行分类。 | Qwen3系列大模型,推荐使用Qwen/Qwen3-32B。 | V3.2及以上版本 | |
从输入文本中提取指定的标签信息。 | Qwen3系列大模型,推荐使用Qwen/Qwen3-32B。 | ||
从输入文本中将指定的标签信息脱敏,信息脱敏后用 | Qwen3系列大模型,推荐使用Qwen/Qwen3-32B。 | ||
用于修复输入文本的语法错误。 | Qwen3系列大模型,推荐使用Qwen/Qwen3-32B。 | ||
生成一段文本的摘要。 | Qwen3系列大模型,推荐使用Qwen/Qwen3-32B。 | ||
将输入文本翻译成指定的语言。 | Qwen3系列大模型,推荐使用Qwen/Qwen3-32B。 | ||
计算两个输入文本的相似度。 | Qwen3系列大模型,推荐使用Qwen/Qwen3-32B。 | ||
对输入的文本进行情感分析。 |
|
AI Function使用
ai_embed
描述:对输入的文本、图片计算一个固定维度的连续向量
--计算文本向量 select ai_embed([model,] content); --计算图片向量 select ai_embed([model,] file);参数说明
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
content:必填,输入的文本,支持字符类型(CHAR、VARCHAR、TEXT)。
file:必填,FILE类型,一般是输入IMAGE的FILE对象。仅Hologres V4.0及之后版本支持该类型。
返回值说明
若content参数值为NULL或者空字符串,则返回NULL。
如果FILE是NULL,则返回NULL。
根据调用的模型,返回对应的向量维度。支持的模型和返回向量维度如下:
模型名称
分类
返回的向量维度
支持的Hologres版本
图片向量
图像分块 patch size:32 * 32
参数量:88 M
返回向量维度:512
V4.0及以上版本
说明输入不支持图片,图片需继续使用clip-ViT-B-32。
文本向量
图像分块 patch size:32 * 32
参数量:88 M
返回向量维度:512
图片向量
图像分块 patch size:16 * 16
参数量:88 M
返回向量维度:512
图片向量
图像分块 patch size:14 * 14
参数量:304 M
返回向量维度:768
文本向量
512
V3.2及以上版本
文本向量
768
文本向量
1024
文本向量
1024
文本向量
2560
文本向量
4096
使用示例
文本Embeding
SELECT ai_embed('Hologres是阿里巴巴自主研发的一站式实时数仓引擎,支持海量数据实时写入、实时更新、实时加工、实时分析.');返回结果如下。
ai_embed ------- {-0.020090256, -0.009496426, -0.01584659, ..., -0.057956327}图片Embedding
--图片embedding,示例将一张oss上的图片embedding SELECT ai_embed('clip-ViT-B-32', to_file('oss://****', 'oss-cn-hangzhou-internal.aliyuncs.com', 'roleran'));
ai_rank
描述:对给定的文档进行相关性打分。
SELECT ai_rank([model,] source_sentence, sentence_to_compare);参数说明
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
source_sentence:必填,文本内容,支持字符类型(CHAR、VARCHAR、TEXT)。
sentence_to_compare:必填,与source_sentence参数值进行对比的语句,支持字符类型(CHAR、VARCHAR、TEXT)。
返回值说明
返回FLOAT类型的相关性Score,取值区间:[0, 1],值越大相关性越高。
若source_sentence和sentence_to_compare参数其中一个值为NULL时,返回0。
使用示例
SELECT knowledge, ai_rank('阿里巴巴2024年营收是多少?', knowledge) AS score FROM ( VALUES ('Amazon 2024年营收6380亿美元'), ('Alibaba 2024年营收9411.68亿元'), ('阿里巴巴2023年的营收8686.87亿元') ) AS knowledge_table(knowledge) ORDER BY score DESC;返回结果如下。
knowledge | score -----------------------------|------- Alibaba 2024年营收9411.68亿元 |0.899999976 阿里巴巴2023年的营收8686.87亿元 |0.200000003 Amazon 2024年营收6380亿美元 |0.100000001
ai_chunk
描述:对长文本进行分段(切片)。
SELECT ai_chunk([model,] long_sentence[, chunk_size, chunk_overlap, separators])参数说明
参数名称
说明
model
可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
long_sentence
必填,需要分段的源文本,支持字符类型(CHAR、VARCHAR、TEXT)。
chunk_size
可选,每个分段的Chunk长度,支持INT类型, 默认值是300。
chunk_overlap
可选,相邻Chunk的Overlap长度,避免句子切到不同Chunk破坏语义,支持INT类型,默认值是50。
separators
可选,切分Chunk的分隔符,TEXT[]类型。默认值是
["\n\n", "\n", " ", ""], 适用于处理英文文本。如果是中文文本建议使用中文分隔符["\n\n", "\n", "。", "!", "?", ";", ",", " "]。返回值说明
返回TEXT[]类型,表示分割好的Chunks列表。
若long_sentence参数值为None时,则返回None。
使用示例
SELECT ai_chunk('Hologres是阿里巴巴自主研发的一站式实时数仓引擎(Real-Time Data Warehouse),支持海量数据实时写入、实时更新、实时加工、实时分析,支持标准SQL(兼容PostgreSQL协议和语法,支持大部分PostgreSQL函数),支持PB级数据多维分析(OLAP)与即席分析(Ad Hoc),支持高并发低延迟的在线数据服务(Serving),支持多种负载的细粒度隔离与企业级安全能力,与MaxCompute、Flink、DataWorks深度融合,提供企业级离在线一体化全栈数仓解决方案。',40,10);返回结果如下。
ai_chunk --- "{"Hologres是阿里巴巴自主研发的一站式实时数仓引擎(Real-Time Data","Warehouse),支持海量数据实时写入、实时更新、实时加工、实时分析,支持标","工、实时分析,支持标准SQL(兼容PostgreSQL协议和语法,支持大部分Po","语法,支持大部分PostgreSQL函数),支持PB级数据多维分析(OLAP)与","维分析(OLAP)与即席分析(Ad","Hoc),支持高并发低延迟的在线数据服务(Serving),支持多种负载的细粒度","支持多种负载的细粒度隔离与企业级安全能力,与MaxCompute、Flink、D","te、Flink、DataWorks深度融合,提供企业级离在线一体化全栈数仓解","线一体化全栈数仓解决方案。"}"
ai_gen
描述:通过提示词调用大语言模型对文本、图片进行推理并输出结果。
--文本推理 SELECT ai_gen([model,] text) --图片推理 SELECT ai_gen([model,] text, file) --封装提示词 SELECT ai_gen([model,] prompt)参数说明
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
text:必填,待输入的提示词,支持字符类型(CHAR、VARCHAR、TEXT)。
file:必填,FILE类型,如图片通过Object Table转成FILE类型,仅Hologres V4.0及以上版本支持该参数。
prompt:必填,JSON类型,prompt()函数的返回值。
返回值说明
返回大模型对该问题的回答。
若text参数值为NULL时,则返回NULL;
若text参数值为空字符串("")时,则返回空字符串("")。
当 prompt参数值为NULL,则报错。
使用示例
文本推理
CREATE TABLE questions ( question TEXT ); INSERT INTO questions (question) VALUES ('什么是人工智能?'), ('如何提高英语口语水平?'), ('健康饮食有哪些注意事项?'); SELECT question, ai_gen('请用 20 个字回答如下问题: ' || question) AS answer FROM questions;返回结果如下。
question | answer --------------------|------- 如何提高英语口语水平? |多说多练,模仿发音,积累词汇,勇于开口。 健康饮食有哪些注意事项? |均衡搭配,控制油盐糖,多蔬果,少加工,适量饮水,规律饮食。 什么是人工智能? |人工智能是模拟人类智能的计算机系统,能学习、推理、感知和解决问题。图片推理
SELECT ai_gen('jpg_llm','这张图片中有什么?', to_file('oss://****/bd****k/val/images/b9b53753-91a5****.jpg','oss-cn-hangzhou-internal.aliyuncs.com','acs:ram::****' ) )返回结果如下。
ai_gen ----- 这张图片显示了一条城市街道的场景。可以看到一辆白色的车停在路边,车牌号是BTB-9784。街道上有几辆汽车,包括一辆黄色的出租车。背景中有建筑物和树木,天气看起来有些阴沉,可能是下雨天。街道上还有行人和交通信号灯。
ai_classify
描述:根据提供的分类标签对输入文本进行分类。
SELECT ai_classify([model,] content, labels)参数说明
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
content:必填,需要分类的文本,支持字符类型(CHAR、VARCHAR、TEXT)。
labels:必填,表示期望输出的分类标签列表,标签数量须在2~20之间,支持ARRAY类型。
返回值说明
返回分类结果,即匹配的标签。返回值类型为TEXT。
若content参数值为NULL时,则返回NULL。
若content是空字符串("")时,则返回NULL。
若labels参数值数量不正确时,将报错。
使用示例
CREATE TABLE product_detail( product_name TEXT, product_desc TEXT ); INSERT INTO product_detail VALUES ('iphone','苹果手机'), ('p50','华为手机'), ('x200','vivo手机'), ('aaa','Dior连衣裙'), ('bbb','Dior裤子'), ('声声乌龙','茶颜悦色的奶茶'), ('夹心饼干','奥利奥的饼干'); --用ai_classify对文本分类 SELECT product_name, ai_classify(product_desc, ARRAY['电子产品', '服装', '食品']) AS category FROM product_detail LIMIT 10;返回结果如下。
product_name |category --------------|------ aaa |服装 iphone |电子产品 声声乌龙 |食品 p50 |电子产品 x200 |电子产品 bbb |服装 夹心饼干 |食品
ai_extract
描述:从输入文本中提取指定的标签信息。
SELECT ai_extract([model,] content, labels)参数说明
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
content:必填,需输入的文本信息,支持字符类型(CHAR、VARCHAR、TEXT)。
labels:必填,指定的标签信息,标签数量须在1~20之间,支持ARRAY类型。
返回值说明
返回每个Label对应的提取信息,为JSON格式。
若content参数值为NULL或空字符串("")时,则返回NULL。
若labels参数值数量不正确时,将报错。
使用示例
CREATE TABLE users ( user_id TEXT, resume TEXT ); INSERT INTO users (user_id, resume) VALUES ('u001', '姓名:张三,男,28岁。邮箱:zhangsan@example.com,电话:1380013****。工作经验丰富。'), ('u002', '姓名:李四,女,35岁。电话:1390013****,邮箱:lisi@example.com。具有管理经验。'), ('u003', '姓名:王五,男,25岁。邮箱:wangwu@example.com。电话:1370013****。'); SELECT user_id, ai_extract(resume, ARRAY['姓名','邮箱','电话','性别','年龄']) AS user_desc_obj FROM users;返回结果如下。
user_id |user_desc_obj --------|------------- u002 |"{"姓名":"李四","年龄":"35岁","性别":"女","电话":"1390013****","邮箱":"lisi@example.com"}" u003 |"{"姓名":"王五","年龄":"25岁","性别":"男","电话":"1370013****","邮箱":"wangwu@example.com"}" u001 |"{"姓名":"张三","年龄":"28岁","性别":"男","电话":"1380013****","邮箱":"zhangsan@example.com"}"
ai_mask
描述:从输入文本中将指定的标签信息脱敏,信息脱敏后用
[MASKED]做占位符。SELECT ai_mask([model,] content, labels)参数说明:
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
content:必填,需要脱敏的输入文本,支持字符类型(CHAR、VARCHAR、TEXT)。
labels:必填,需要脱敏的标签信息,标签数量须在1~20之间,支持ARRAY类型。
返回值说明
返回脱敏后的文本内容。
若content参数值为NULL时,则返回NULL。
若content参数值为空字符串("")时,则返回空字符串。
当labels参数值数量不正确,将报错。
使用示例
SELECT ai_mask( '用户王小明,身份证号:23030611111111,手机号:1388888****。', ARRAY['身份证', '手机号']);返回结果如下。
ai_mask ------- 用户王小明,身份证号:[MASKED],手机号:[MASKED]。
ai_fix_grammar
描述:用于修复输入文本的语法错误。
SELECT ai_fix_grammar([model,] content)参数说明
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
content:必填,需要修复语法的输入文本,支持字符类型(CHAR、VARCHAR、TEXT)。
返回值说明
返回修正后的文本内容。
若content参数值为NULL时,则返回NULL。
若content参数值为空字符串("")时,则返回空字符串("")。
使用示例
SELECT ai_fix_grammar('He dont know what to did.');返回结果如下。
ai_fix_grammar -------------- He doesn't know what to do.
ai_summarize
描述:根据输入的文本,生成一段文本的摘要。
SELECT ai_summarize([model,] content[, max_words])参数说明
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
content:必填,输入文本,支持字符类型(CHAR、VARCHAR、TEXT)。
max_words:可选,大模型最多输出的字数,模型将依据该值尽量接近输出结果。默认值为50,若设置为0,则表示不做任何限制。
返回值说明
返回文本的摘要。
若content参数值为NULL时,则返回NULL。
若content参数值为空字符串("")时,则返回空字符串("")。
若max_words若取值小于0时,将报错。
使用示例
SELECT ai_summarize('Hologres是阿里巴巴自主研发的一站式实时数仓引擎(Real-Time Data Warehouse),支持海量数据实时写入、实时更新、实时加工、实时分析,支持标准SQL(兼容PostgreSQL协议和语法,支持大部分PostgreSQL函数),支持PB级数据多维分析(OLAP)与即席分析(Ad Hoc),支持高并发低延迟的在线数据服务(Serving),支持多种负载的细粒度隔离与企业级安全能力,与MaxCompute、Flink、DataWorks深度融合,提供企业级离在线一体化全栈数仓解决方案。', 15);返回结果如下。
ai_summarize ------------ Hologres是阿里自主研发的实时数仓引擎,支持海量数据实时处理与多维分析。
ai_translate
描述:将输入文本翻译成指定的语言。
SELECT ai_translate([model,] content, to_lang)参数说明
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
content:必填,输入需翻译的文本,支持字符类型(CHAR、VARCHAR、TEXT)。
to_lang: 必填,目标语言Code。详情,请参见ISO-639。
返回值说明
返回翻译后的文本。
若content参数值为NULL时,则返回NULL。
若content参数值为空字符串("")时,则返回空字符串("")。
若to_lang参数值非法时,则报错。
使用示例
SELECT ai_translate('Hologres是阿里巴巴自主研发的一站式实时数仓引擎(Real-Time Data Warehouse),支持海量数据实时写入、实时更新、实时加工、实时分析,支持标准SQL(兼容PostgreSQL协议和语法,支持大部分PostgreSQL函数),支持PB级数据多维分析(OLAP)与即席分析(Ad Hoc),支持高并发低延迟的在线数据服务(Serving),支持多种负载的细粒度隔离与企业级安全能力,与MaxCompute、Flink、DataWorks深度融合,提供企业级离在线一体化全栈数仓解决方案。', 'en');返回结果如下。
ai_translate ----------- Hologres is a self-developed one-stop real-time data warehouse engine by Alibaba, supporting real-time writing, real-time updating, real-time processing, and real-time analysis of massive data. It supports standard SQL (compatible with PostgreSQL protocol and syntax, supporting most PostgreSQL functions), supports multi-dimensional analysis (OLAP) and ad-hoc analysis at the PB-level, supports high-concurrency, low-latency online data services (Serving), supports fine-grained isolation for multiple workloads and enterprise-level security capabilities, and is deeply integrated with MaxCompute, Flink, and DataWorks, providing an enterprise-level fully stacked data warehouse solution that integrates online and offline processing.
ai_similarity
描述:计算两个输入文本的相似度。
SELECT ai_similarity([model,] text1, text2)参数说明
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
text1和text2:需要对比相似度的两个文本,支持字符类型(CHAR、VARCHAR、TEXT)。
返回值说明
返回区间
[0, 1]之间的FLOAT类型的数值,值越大相似度越高。0表示完全不相似,1表示两个文本相等。若text1和text2参数中有一个值为NULL时,则返回0。
若text1和text2参数值均为空字符串("")时,则返回1。
若text1和text2参数中一个值为空字符串(""),另外一个为非空字符串时,则返回0。
使用示例
CREATE TABLE products2 ( product_name TEXT ); INSERT INTO products2 (product_name) VALUES ('白色衬衫'), ('黑色西装裤'), ('休闲上衣'), ('运动外套'), ('白色连衣裙'), ('蓝牙耳机'), ('牛奶巧克力'), ('白色上衣'), ('男士T恤'), ('羽绒服'); SELECT product_name FROM products2 ORDER BY ai_similarity(product_name, '白色上衣') DESC LIMIT 5;返回结果如下。
product_name ---------- 白色上衣 白色衬衫 休闲上衣 白色连衣裙 男士T恤
ai_analyze_sentiment
描述:对输入的文本进行情感分析。
select ai_analyze_sentiment([model,] content);参数说明
model:可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
content:必填,输入的文本,支持字符类型(CHAR、VARCHAR、TEXT)。
返回值说明
返回分析之后的情感Labels,为字符类型。 不同的模型,返回的Labels内容有区别。
Qwen3系列大模型,返回标签是: positive/negative/neutral/mixed中的一种,输入为空时返回 NULL。
iic/nlp_structbert_sentiment-classification_chinese-base模型:返回概率最高的标签:正面/负面/NULL 中的一种, 输入为空时返回 NULL。
若content参数值为NULL或者空字符串("")时,则返回NULL。
使用示例
--大语言模型: SELECT ai_analyze_sentiment('洞房花烛夜,金榜提名时。'); -- output example: positive --使用iic/nlp_structbert_sentiment-classification_chinese-base模型 SELECT ai_analyze_sentiment('清明时节雨纷纷,路上行人欲断魂。'); -- output example: 负面
ai_parse_document
描述:支持将非结构化数据(PDF、图片、Word、PPT、TXT、Markdown)等多种格式的数据解析成文本。
SELECT ai_parse_document([model,] input_bytes , input_format [, output_format]); SELECT ai_parse_document([model,] file [, input_format, output_format]);参数说明
参数名称
说明
model
可选,AI Function使用的模型名称。默认由系统根据已部署的模型自动分配最佳模型。如需更换模型,应先完成目标模型的部署,再修改系统表配置。具体操作,请参见修改AI Function对应的模型。
input_bytes
必填,BYTEA类型,需要解析文件的BINARY。
file
必填,File类型,通常建议配合Object Table一起使用。
input_format
可选,默认值为auto,TEXT类型。支持的文件格式PDF、Word、PPT、TXT、IMAGE、AUTO等格式。
图片格式支持:
["jpg", "jpeg", "png", "tif", "tiff", "bmp"]。当一个OSS目录有多种不同类型的文档时,可以设置
input_format=auto, 模型将根据文件扩展名来自动判断文件类型。
output_format
可选,默认值 JSON。解析结果的格式,text类型,支持 JSON、markdown等格式。
返回值说明
返回text类。会根据output_format的设置返回对应的格式。
如果 output_format=JSON, 输出是 text 类型JSON 字符串, 需要使用时显示 cast 成 JSON
当解析失败时,返回错误的text,而不是报错。
使用示例
将OSS中的单个PDF文件转成文本。
SELECT object_uri, etag, ai_parse_document(to_file ('oss://xxxx-hangzhou/bs_challenge_financial_14b_dataset/pdf', 'oss-cn-hangzhou-internal.aliyuncs.com', 'acs:ram::18xxx:role/xxx'), 'auto', 'markdown') AS doc FROM pdf_bs_challenge_financial_14b_dataset limit 1);将Object Table的非结构化数据转成文本,详细使用见非结构化数据(Object Table)。
prompt
描述:此工具函数是AI Function的辅助函数,用于拼装大模型提示词,可以包含多模态的提示词。
SELECT prompt('<template_string>', <expr_1> [ , <expr_2>, ... ]) FROM <table>;使用说明
不支持标量字符串。若仅有一条字符串,应直接传递给大模型,避免使用prompt函数,一般是FROM表使用。
参数说明
template_string:必填,TEXT类型, 提示词模板STRING, 变量使用
{0},{1}做占位符。<expr_1> [ , <expr_2>, ... ]:多个表达式参数。支持TEXT、NUMBERIC、FILE等类型。
返回值说明
通常情况下返回JSON类型,格式如下:
{ "prompt": "<template_string>", "args": ARRAY(<value_1>, <value_2>, ...) }特殊情况下:
若template_string参数值为NULL,则报错。
expr返回NULL的时候,template_string中以字符串None代替。
返回结果中某一行全为NULL,将不会过滤该行,而是Args中全部填充None。
使用示例
create table customer_service_konwledge_detail( question text, question_summarize text ); insert into customer_service_konwledge_detail values ('实例突然出现很多OOM的SQL', '后台排查到是由于客户的访问量增加,现有的资源不足以支撑该访问流量,客户已经扩容解决'), ('Dataworks连接不上hologres了', '这不是我们的问题,请联系Dataworks值班'); -- prompt SELECT question, question_summarize, ai_gen( prompt('客户提的工单内容:{0}, 阿云客服给的回答: {1},请问该回答是否解决了客户问题?只输出是或否', question, question_summarize)) from customer_service_konwledge_detail;返回结果如下。
question | question_summarize | ai_gen -----------------------------+------------------------------------------------------------------------------------+-------- Dataworks连接不上hologres了 | 这不是我们的问题,请联系Dataworks值班 | 否 实例突然出现很多OOM的SQL | 后台排查到是由于客户的访问量增加,现有的资源不足 以支撑该访问流量,客户已经扩容解决 | 是 (2 rows)
to_file
描述:此工具函数可以将一个URL转成FILE类型。
select to_file(oss_url, oss_endpoint, oss_rolearn);使用说明
该函数是一个工具函数,无需使用模型。
参数说明
oss_url: 必填, text类型,需要解析的OSS文件路径。
oss_endpoint: 必填,text类型, 填写OSS Region域名,仅支持经典网络域名。
oss_rolearn: 必填,访问OSS的RoleARN信息。
返回值说明
返回FILE类型,如果URL文件路径非法或者文件不存在,则报错。
使用示例
select to_file('oss://****/bd****k/val/images/b9b53753-91a5****.jpg','oss-cn-hangzhou-internal.aliyuncs.com','acs:ram::****' );
AI Function与模型
查看Function与模型的映射关系
Hologres提供list_ai_function_infos系统表,用于查看AI Function与模型的映射关系。在Hologres管控台部署模型后,该系统表会自动更新每个AI Function对用的模型,您可以通过AI Function调用对应的模型。
不同AI Function需要适配特定类型的模型,例如:ai_embed适合Embedding模型、ai_classify适合大语言模型。若实例中仅部署了一种模型,可能会出现部分AI Function分配模型为空的情况。AI Function没有部署对应的模型时,将无法使用该AI function。
SELECT * FROM list_ai_function_infos();返回结果如下。
function_name | model_name
----------------------+------------------
ai_embed | my_gte_embedding
ai_classify | my_qwen32b
ai_extract | my_qwen32b修改AI Function对应的模型
AI Function与部署的模型有默认映射值,您可以通过如下方式修改AI Function对应的模型。修改后,使用AI Function时将会调用新的模型。
全局修改
SELECT set_ai_function_info('<function_name>', '<model_name>');参数说明
function_name:AI Function名称,您可以在AI Function汇总表中查看AI Function名称。
model_name:已经部署的模型名称。您可登录Hologres管理控制台在AI节点页面,查看已部署的模型名称。
说明当输入的AI Function名称和已部署模型名称不存在时,将会报错。
使用示例
SELECT set_ai_function_info('ai_embed', 'my_gte_embedding');SESSION级别修改
SESSION级别修改后,使用AI Function调用模型时,SESSION级别的配置会优先于全局修改(ai_function_info)的配置。
--仅在该连接上生效 SET hg_experimental_ai_function_name_to_model_name_mapping='<function_name>:<model_name>[,<function_name1>:<model_name1>]';
最佳实践
了解了AI Function的基础用法后,您可以通过以下真实场景的最佳实践,学习如何将它们组合应用,解决复杂的业务问题。