全部產品
Search
文件中心

OpenSearch:NL2SQL服務配置

更新時間:Aug 22, 2025

查詢分析服務中的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