From 942f79c60bddbe98d15a6ce96ae6f37ae4fd43c0 Mon Sep 17 00:00:00 2001 From: junjun Date: Mon, 14 Jul 2025 15:07:14 +0800 Subject: [PATCH] feat: permission prompt --- backend/template.yaml | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/backend/template.yaml b/backend/template.yaml index 51172256..a2883cd5 100644 --- a/backend/template.yaml +++ b/backend/template.yaml @@ -2,7 +2,7 @@ template: sql: system: | 任务: - 根据表结构和问题生成符合{engine}数据库引擎规范的sql语句。 + 根据表结构和问题生成符合{engine}数据库引擎规范的sql语句,以及sql中所用到的表名(用数组返回)。 你必须遵守以下规则: - 生成的SQL必须符合{engine}的规范。 - 根据表结构生成SQL语句。 @@ -15,14 +15,14 @@ template: - 如数据库引擎是 Microsoft SQL Server,则在schema、表名、字段名、别名外层加方括号。 - 如果生成SQL的字段内有时间格式的字段,若提问中没有指定,则默认按时间升序排序,且格式化为yyyy-MM-dd HH:mm:ss的格式,生成的格式化语法需要适配对应的数据库引擎。 - 生成的SQL使用JSON格式返回: - {{"success":true,"sql":"生成的SQL语句"}} + {{"success":true,"sql":"生成的SQL语句","tables":["表名1","表名2",...]}} - 问题与生成SQL无关时,直接回答: {{"success":false,"message":"抱歉,我无法回答您的问题。"}} - 如果根据提供的表结构不能生成符合问题与条件的SQL,回答: {{"success":false,"message":"无法生成SQL的原因"}} - 如果问题是图表展示相关且与生成SQL查询无关时,请参考上一次回答的SQL来生成SQL - 如果问题是图表展示相关,可参考的图表类型为表格(table)、柱状图(column)、条形图(bar)、折线图(line)或饼图(pie),返回的JSON: - {{"success":true,"sql":"生成的SQL语句","chart-type":"选择的图表类型(table/column/bar/line/pie)"}} + {{"success":true,"sql":"生成的SQL语句","chart-type":"选择的图表类型(table/column/bar/line/pie)","tables":["表名1","表名2",...]}} ### 响应, 请直接返回JSON结果: ```json @@ -163,4 +163,33 @@ template: {data} ### 问题: - {question} \ No newline at end of file + {question} + permissions: + system: | + ### 说明: + 提供给你一句SQL和一组表的过滤条件,从这组表的过滤条件中找出SQL中用到的表所对应的过滤条件,将用到的表所对应的过滤条件添加到提供给你的SQL中(不要替换SQL中原有的条件),生成符合{engine}数据库引擎规范的新SQL语句(如果过滤条件为空,则直接返回原SQL)。 + 表的过滤条件json格式如下: + [{{"table":"表名","filter":"过滤条件"}},...] + 你必须遵守以下规则: + - 生成的SQL必须符合{engine}的规范。 + - 不要替换原来SQL中的过滤条件,将新过滤条件添加到SQL中,生成一个新的sql。 + - 生成SQL时,必须避免关键字冲突: + - 如数据库引擎是 PostgreSQL、Oracle,则在schema、表名、字段名、别名外层加双引号; + - 如数据库引擎是 MySQL,则在表名、字段名、别名外层加反引号; + - 如数据库引擎是 Microsoft SQL Server,则在schema、表名、字段名、别名外层加方括号。 + - 生成的SQL使用JSON格式返回: + {{"success":true,"sql":"生成的SQL语句"}} + - 如果不能生成SQL,回答: + {{"success":false,"message":"无法生成SQL的原因"}} + + ### 响应, 请直接返回JSON结果: + ```json + + user: | + ### 请使用 i18n: {lang} 对应的语言输出你的结果 + + ### sql: + {sql} + + ### 过滤条件: + {filter}