NL2SQL服务配置

查询分析服务中的NL2SQL提供将自然语言查询转换为SQL语句的能力,本文介绍如何配置查询分析-NL2SQL服务。

效果展示

Query:高一三班有哪些模范生?

image

Query:2024年结案数最多的是哪5个案由?

image

如何配置

查询分析服务中的NL2SQL提供将自然语言查询转换为SQL语句的能力,使用NL2SQL服务,需要配置以下信息:

  • 表基础信息配置:配置接入NL2SQL服务依赖的业务数据表信息,包含字段名称、字段类型、字段枚举值、字段描述信息、字段映射以及表之间的关联关系等。

  • 学习样本配置:将业务上使用的高频问法、复杂问法及其对应的SQL语句配置在此处,提升NL2SQL准确性。同时,在使用NL2SQL服务期间,如遇到生成SQL不符合预期时,也可以将对应问法和SQL语句配置在此处。

  • 自定义规则配置(业务术语、概念等知识配置):用户输入的问法中,通常会包含一些业务术语、概念等知识,为了帮助模型理解业务知识、概念,需要将术语、概念及其对应的解释配置在此处。

    如:

    • 最近一周积水治理情况如何?涉及知识:积水治理包含雨水井盖、道路积水事件。

    • 模范生是指编号小于或者等于10的学生,体育生是指编号大于11的学生。

具体步骤

  1. AI搜索开放平台选择模型服务>服务配置,然后单击创建

    服务类别、配置类型选择默认配置,输入配置名称,如xsxx(表示学生信息数据分析)。

  2. 单击保存并进入下一步,参照以下格式配置NL2SL服务所需要的数据表信息。

    • 表基础配置

      [
        {
          "table":"schools",
          "columns": [
            {
              "column": "class",
              "description": "班级",
              "type": "string",
              "example": ["高一3班", "火箭班"],
              "value_mapping": []
            }, 
            {
              "column": "school",
              "description": "学校",
              "type": "string",
              "example": ["A市B一中学", "AA五中"],
              "value_mapping": []
            }
          ]
        }, 
        {
          "table":"students",
          "columns": [
            {
              "column": "id",
              "description": "学号",
              "type": "int",
              "example": [1, 2],
              "value_mapping": [
                [1,"张三"],
                [2,"李四"]
              ]
            },
            {
              "column": "class",
              "description": "班级",
              "type": "string",
              "example": ["高一3班", "火箭班"],
              "value_mapping": []
            }
          ]
        }
      ]

      表名table以小写字母开头,仅支持小写字母、数字或下划线,且长度不超过30位。

      字段名column以小写字母开头,仅支持小写字母、数字或下划线,且长度不超过30位。

      字段类型type支持text、string、int8、uint8、int16、uint16、int32、int、uint32、int64、uint64、float、double、location、date、time、timestamp。

    • 表关联配置

      ["students.class=schools.class"]
  3. 单击下一步,配置自定义规则和学习样本,提升NL2SQL的识别效果。

    • 学习样本配置:将业务侧使用的高频问法、复杂问法及其对应的SQL语句配置在此处,提升NL2SQL准确性。同时,在使用NL2SQL服务期间,如遇到生成SQL不符合预期时,也可以将对应问法和SQL语句配置在此处。

      [
        {
          "query":"张三是哪个班的",
          "sql" : "SELECT class FROM students WHERE name = '张三'"
        }
      ]
    • 自定义规则配置(业务术语、概念等知识配置):用户输入的问法中,通常会包含一些业务术语、概念等知识,为了帮助模型理解业务知识、概念,需要将术语、概念及其对应的解释配置在此处。

      如:模范生是指学号(id)<=10的学生,体育生是指学号(id)>11的学生。

      [
        {
          "key":"模范学生",
          "value":"students.id <= 10"
        },
        {
          "key":"体育生",
          "value":"学号大于11的学生"
        }
      ]
  4. 单击下一步单击立即激活,页面跳转到服务配置列表,激活状态处于激活中,系统对上述配置信息进行格式校验。

    激活状态为已激活时,表示服务配置可正常使用,可以通过体验中心测试NL2SQL效果。

后续步骤

如果您希望在业务代码中集成NL2SQL服务,请访问NL2SQL API