查詢分析服務中的NL2SQL提供將自然語言查詢轉換為SQL語句的能力,本文介紹如何配置查詢分析-NL2SQL服務。
效果展示
Query:高一三班有哪些模范生? | Query:2024年結案數最多的是哪5個案由? |
如何配置
查詢分析服務中的NL2SQL提供將自然語言查詢轉換為SQL語句的能力,使用NL2SQL服務,需要配置以下信息:
表基礎信息配置:配置接入NL2SQL服務依賴的業務數據表信息,包含字段名稱、字段類型、字段枚舉值、字段描述信息、字段映射以及表之間的關聯關系等。
學習樣本配置:將業務上使用的高頻問法、復雜問法及其對應的SQL語句配置在此處,提升NL2SQL準確性。同時,在使用NL2SQL服務期間,如遇到生成SQL不符合預期時,也可以將對應問法和SQL語句配置在此處。
自定義規則配置(業務術語、概念等知識配置):用戶輸入的問法中,通常會包含一些業務術語、概念等知識,為了幫助模型理解業務知識、概念,需要將術語、概念及其對應的解釋配置在此處。
如:
最近一周積水治理情況如何?涉及知識:積水治理包含雨水井蓋、道路積水事件。
模范生是指編號小于或者等于10的學生,體育生是指編號大于11的學生。
具體步驟
在AI搜索開放平臺選擇模型服務>服務配置,然后單擊創建。
服務類別、配置類型選擇默認配置,輸入配置名稱,如xsxx(表示學生信息數據分析)。
單擊保存并進入下一步,參照以下格式配置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"]
單擊下一步,配置自定義規則和學習樣本,提升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的學生" } ]
單擊下一步,單擊立即激活,頁面跳轉到服務配置列表,激活狀態處于激活中,系統對上述配置信息進行格式校驗。
激活狀態為已激活時,表示服務配置可正常使用,可以通過體驗中心測試NL2SQL效果。
后續步驟
如果您希望在業務代碼中集成NL2SQL服務,請訪問NL2SQL API。