使用NL2SQL得到SQL语句后,通常希望得到这个SQL查询出的结果,同时能够展示一些更直观的结果,比如柱状图、饼图、折线图等。PolarDB的NL2Chart方案能够将SQL语句的查询结果转化为动态报表,帮助您更高效地理解和分析数据。
方案概述
NL2Chart其核心流程包含两大阶段:首先基于NL2SQL技术将自然语言转义为SQL查询语句,随后使用解析的SQL语句生成可视化分析报表。
假设您在NL2SQL中的语句如下:
/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2sql, select '商户类型统计') WITH (basic_index_name='schema_index',pattern_index_name='pattern_index');
生成的SQL语句如下:
SELECT merchtype AS 商户类型,COUNT(*) AS 商品数量 FROM hkrt_merchant_info GROUP BY merchtype;
使用NL2Chart功能:
语法说明
/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart, <SQL语句>) WITH (usr_query = <usr_query>, result_type = <result_type>);
参数说明
参数名称
参数说明
示例值
usr_query
用户输入的问题描述,用于明确统计图表的生成需求。
'2023年各季度销售额统计'
result_type
指定返回结果的类型,当前仅支持
'IMAGE'
。'IMAGE'
SQL语句
由 NL2SQL 模块生成的 SQL 查询语句,用于获取数据。
SELECT quarter, sales FROM sales_data WHERE year = 2023
示例:将SQL语句的查询结果转化为图表。
/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart, SELECT merchtype AS 商户类型, COUNT(*) AS 商户数量 FROM hkrt_merchant_info GROUP BY merchtype) WITH (usr_query = '商户类型统计', result_type='IMAGE');
返回结果如下:
http://db4ai-xxx-.aliyuncs.com/pc-xxx/OSSAccessKeyId=xxx&Expires=1716130199&Signature=KvPFzxxx
说明返回的链接为PNG图片地址。该地址不存在权限限制,仅存在时效限制,有效时间为90分钟,过时将失效。具体失效时间请查看地址中的Expires字段。
图表类型选择与强制选择
模型会基于对用户问题和数据的理解选择合适的图表,推荐选择用户问题引导模型画图。
以下是问题类型与图表类型对应参考表:
问题类型 | 图表类型 | 用户问题示例 | 说明 |
数量统计 | 柱状图 | "请统计各城市销售额" | 展示不同类别之间的数值对比,如数量、总量、频次等。 |
趋势变化 | 折线图 | "请展示过去一年的用户增长趋势" | 展示数据随时间或有序类别变化的趋势,强调连续性。 |
占比分布 | 饼状图 | "请展示各产品线的销售占比" | 适用于展示整体中各部分的比例关系,需数据为分类且总和明确。 |
通过修改usr_query
参数强制指定图表类型,在usr_query
参数末尾加上补充命令即可:
-- 将输出的sql输入 nl2chart 画折线图
/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart,
SELECT merchtype AS 商户类型, COUNT(*) AS 商户数量 FROM hkrt_merchant_info GROUP BY merchtype
) WITH (usr_query = '商户类型统计,画折线图', result_type='IMAGE');
-- 将输出的sql输入 nl2chart 画饼状图
/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_nl2chart,
SELECT merchtype AS 商户类型, COUNT(*) AS 商户数量 FROM hkrt_merchant_info GROUP BY merchtype
) WITH (usr_query = '商户类型统计,画饼状图', result_type='IMAGE');
使用建议
通过联合使用NL2Chart和NL2SQL功能,可以实现从自然语言到图表的自动化生成。
数据与图表类型匹配,确保数据与图表类型兼容,例如:饼图需要占比数据。折线图需要有序时间序列数据。
图表类型自动匹配:系统优先根据问题中的关键词(如“数量”“趋势”“占比”)自动推荐合适的图表类型。
手动指定图表类型:若默认推荐不满足需求,可通过修改
usr_query
明确指定图表类型。
通过以上流程,您可以高效生成符合需求的统计图表。