查询分析服务中的NL2SQL提供将自然语言查询转换为SQL语句的能力,本文介绍如何配置查询分析-NL2SQL服务。
效果展示
Query:高一三班有哪些模范生? | Query:2024年结案数最多的是哪5个案由? |
如何配置
查询分析服务中的NL2SQL提供将自然语言查询转换为SQL语句的能力,使用NL2SQL服务,需要配置以下信息:
表基础信息配置:配置接入NL2SQL服务依赖的业务数据表信息,包含字段名称、字段类型、字段枚举值、字段描述信息、字段映射以及表之间的关联关系等。
学习样本配置:将业务上使用的高频问法、复杂问法及其对应的SQL语句配置在此处,提升NL2SQL准确性。同时,在使用NL2SQL服务期间,如遇到生成SQL不符合预期时,也可以将对应问法和SQL语句配置在此处。
自定义规则配置(业务术语、概念等知识配置):用户输入的问法中,通常会包含一些业务术语、概念等知识,为了帮助模型理解业务知识、概念,需要将术语、概念及其对应的解释配置在此处。
如:最近一周积水治理情况如何?
涉及知识:积水治理包含雨水井盖、道路积水事件。
具体步骤
在AI搜索开放平台选择模型服务>服务配置,然后单击创建。
服务类别、配置类型选择默认配置,输入配置名称,如xsxx(表示学生信息数据分析)。
单击保存并进入下一步,参照以下格式配置NL2SL服务所需要的数据表信息。
表基础配置
[ { //每个表一个字典 "table"://表名 "schools", "columns": [ { //列集合 "column": "class",//列名 "description": "班级",//列描述,同于询问时的用法 "type": "str",//数据类型 "example": ["高一3班", "火箭班"],//样例值 "value_mapping": [] }, { "column": "school", "description": "学校", "type": "str", "example": ["A市B一中学", "AA五中"], "value_mapping": [] } ] }, { "table": "students", "columns": [{ "column": "id", "description": "学号", "type": "int", "example": [10002, 100001], "value_mapping": [//两个list 上面是值,下面是值的含义,表示值的实际对应的语义 [10002,"张三"], [100001,"李四"]] }, { "column": "class", "description": "班级", "type": "str", "example": ["高一3班", "火箭班"], "value_mapping": [] }] }]
表名
table
以小写字母开头,仅支持小写字母、数字或下划线,且长度不超过30位。字段名
column
以小写字母开头,仅支持小写字母、数字或下划线,且长度不超过30位。字段类型
type
支持text、string、int8、uint8、int16、uint16、int32、integer、uint32、int64、uint64、float、double、location、date、time、timestamp。表关联配置
["students.class=schools.class"]
单击下一步,配置自定义规则和学习样本,提升NL2SQL的识别效果。
学习样本配置:将业务侧使用的高频问法、复杂问法及其对应的SQL语句配置在此处,提升NL2SQL准确性。同时,在使用NL2SQL服务期间,如遇到生成SQL不符合预期时,也可以将对应问法和SQL语句配置在此处。
[ { "query":"张三是哪个班的", "sql" : "SELECT class FROM students WHERE name = 张三" } ]
自定义规则配置(业务术语、概念等知识配置):用户输入的问法中,通常会包含一些业务术语、概念等知识,为了帮助模型理解业务知识、概念,需要将术语、概念及其对应的解释配置在此处。
如:模范生是指学号(id)<=10009的学生,体育生是指学号(id)>100000的学生。
[ {"key":"模范学生", "value":"students.id <= 10009"}, {"key":"体育生", "value":"学号大于100000的学生"} ]
单击下一步,单击立即激活,页面跳转到服务配置列表,激活状态处于激活中,系统对上述配置信息进行格式校验。
激活状态为已激活时,表示服务配置可正常使用,可以通过体验中心测试NL2SQL效果。
后续步骤
如果您希望在业务代码中集成NL2SQL服务,请访问NL2SQL API。