GenerateSqlFromNL - 根据自然语言生成SQL

调用该API可根据用户提供的自然语言描述,自动获取相关数据库与业务信息并生成可执行的SQL语句。

接口说明

返回结果中除了生成的 SQL 语句外,还包括生成 SQL 时用到的表、引用的知识点、相似 SQL 等信息,方便您理解和使用。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用前面加 * 表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
dms:GenerateSqlFromNLnone
*全部资源
*

请求参数

名称类型必填描述示例值
DbIdstring

数据库 ID。您可调用 ListDatabases 接口获取该参数的值。

调用 API 时,系统将会在该数据库中获取相关信息。

1***
Knowledgestring

知识数据,即额外输入的业务知识。补充的知识可以帮助模型更好地理解、回答问题。

state>0代表成功
Questionstring

问题描述。

查询今天的用户访问量
Dialectstring

数据库实例类型。系统默认值为 MySQL,将为您生成标准的 SQL 语句。

MySQL
Levelstring

数据处理级别。默认为基础级别的处理。

base
Modelstring

选用的模型名称,仅可使用通义千问系列的模型。

qwen-plus

返回参数

名称类型描述示例值
object

取数

RequestIdstring

请求 ID。用于定位日志,排查问题。

0C1CB646-1DE4-4AD0-B4A4-7D47DD52E931
ErrorCodestring

错误码。

UnknownError
ErrorMessagestring

错误信息。

UnknownError
Successboolean

是否调用成功。

  • true:调用成功。
  • false:调用失败。
true
Dataobject

返回的数据信息。

Questionstring

输入的问题。

查询今天用户访问量
Tablesarray<object>

生成 SQL 时用到的表列表。每个元素代表一个表实体。

tablesobject

表实体。每个元素代表一个具体的表,包括但不限于表名、表 ID 等信息。

TableNamestring

表名,用于识别数据库中的某张表。

ins_1.db1.table1
KnowledgeReferencesarray<object>

引用的知识。

knowledgeReferencesobject

知识列表。

Namestring

知识名称。

sample_tbl
Contentstring

知识的具体内容。

{'Status': 'OK'}
Levelstring

知识等级,包括待补充(to_complete)、待确认(to_review)、待验证(to_verify)和已验证(verified)。

verified
Sqlstring

生成的 SQL 语句。

SELECT * FROM table WHERE condition;
SimilarSqlarray<object>

相似 SQL 列表。

similarSQLobject

SQL 信息。

Questionstring

问题描述。

实例xxx的访问量有多少?
Sqlstring

相似的 SQL 语句。

SELECT * WHERE ResourceType = 'ACS::ECS::Instance' AND ResourceGroupId != 'rg-xxx'
Thoughtstring

生成 SQL 的思考过程。

度量(指标): 用户询问了xx指标,根据上下文,需要计算xxx。 维度(筛选条件): 用户问题里提到了xx的条件,结合上下文,核心维度为xxx。 综上,需要使用xxx表,使用xxx列。其中xxx作为projection选择,xxx用于过滤条件,xxx用于分组条件。
Scorestring

该 SQL 的可信度。分数越高,可信度越高。取值范围 0~1。

0.52
Thoughtstring

生成 SQL 的思考过程。

通过分析用户的问题和提供的知识,生成了相应的SQL语句。

示例

正常返回示例

JSON格式

{
  "RequestId": "0C1CB646-1DE4-4AD0-B4A4-7D47DD52E931",
  "ErrorCode": "UnknownError",
  "ErrorMessage": "UnknownError",
  "Success": true,
  "Data": {
    "Question": "查询今天用户访问量",
    "Tables": [
      {
        "TableName": "ins_1.db1.table1"
      }
    ],
    "KnowledgeReferences": [
      {
        "Name": "sample_tbl",
        "Content": "{'Status': 'OK'}",
        "Level": "verified"
      }
    ],
    "Sql": "SELECT * FROM table WHERE condition;",
    "SimilarSql": [
      {
        "Question": "实例xxx的访问量有多少?",
        "Sql": "SELECT * WHERE ResourceType = 'ACS::ECS::Instance' AND ResourceGroupId != 'rg-xxx'",
        "Thought": "度量(指标): 用户询问了xx指标,根据上下文,需要计算xxx。\n维度(筛选条件): 用户问题里提到了xx的条件,结合上下文,核心维度为xxx。\n综上,需要使用xxx表,使用xxx列。其中xxx作为projection选择,xxx用于过滤条件,xxx用于分组条件。",
        "Score": 0.52
      }
    ],
    "Thought": "通过分析用户的问题和提供的知识,生成了相应的SQL语句。"
  }
}

错误码

访问错误中心查看更多错误码。