Compare commits
4 Commits
039b15341e
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
66dc268cd5 | ||
|
|
e6756c74da | ||
|
|
e72b24e7f7 | ||
|
|
7837b95766 |
@@ -58,9 +58,10 @@ def create_vana():
|
|||||||
def init_vn(vn):
|
def init_vn(vn):
|
||||||
logger.info("--------------init vana-----connect to datasouce db----")
|
logger.info("--------------init vana-----connect to datasouce db----")
|
||||||
connect_database(vn)
|
connect_database(vn)
|
||||||
load_ddl_doc.add_ddl(vn)
|
|
||||||
load_ddl_doc.add_documentation(vn)
|
|
||||||
if config('IS_FIRST_LOAD', default=False, cast=bool):
|
if config('IS_FIRST_LOAD', default=False, cast=bool):
|
||||||
|
load_ddl_doc.add_ddl(vn)
|
||||||
|
load_ddl_doc.add_documentation(vn)
|
||||||
load_train_data_ddl(vn)
|
load_train_data_ddl(vn)
|
||||||
return vn
|
return vn
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,9 @@ template:
|
|||||||
<rule-detail>生成的SQL必须避免与数据库关键字冲突。</rule-detail>
|
<rule-detail>生成的SQL必须避免与数据库关键字冲突。</rule-detail>
|
||||||
<rule-detail>注意列名定义和使用的先后顺序,例如:SELECT阶段定义了列名,如果GROUP BY阶段先与SELECT阶段执行时,是不许在GROUP BY阶段引用列名的。</rule-detail>
|
<rule-detail>注意列名定义和使用的先后顺序,例如:SELECT阶段定义了列名,如果GROUP BY阶段先与SELECT阶段执行时,是不许在GROUP BY阶段引用列名的。</rule-detail>
|
||||||
<rule-detail>在ORDER BY、GROUP BY、WHERE子句中不要使用SELECT中定义的别名</rule-detail>
|
<rule-detail>在ORDER BY、GROUP BY、WHERE子句中不要使用SELECT中定义的别名</rule-detail>
|
||||||
|
<rule-detail>当SELECT中同时包含聚合列和非聚合列时,需要在GROUP BY中指定所有非聚合列</rule-detail>
|
||||||
|
<rule-detail>递归 WITH 子句必须具有列别名列表</rule-detail>
|
||||||
|
<rule-detail>CONNECT BY子查询是独立的,无法访问外部查询的表别名,因此涉及CONNECT BY子查询时,里面禁止使用表别名</rule-detail>
|
||||||
</rule>
|
</rule>
|
||||||
<rule>
|
<rule>
|
||||||
<rule-title>数据查询与排序</rule-title>
|
<rule-title>数据查询与排序</rule-title>
|
||||||
@@ -115,6 +118,10 @@ template:
|
|||||||
<rule-detail>若用户提问中提及参考SQL,需先判断该SQL是否为一个合法的、只读的查询语句。</rule-detail>
|
<rule-detail>若用户提问中提及参考SQL,需先判断该SQL是否为一个合法的、只读的查询语句。</rule-detail>
|
||||||
<rule-detail>忽略问题中提到的“数据源名称”或“数据源描述”等无关信息,聚焦于核心的业务需求。</rule-detail>
|
<rule-detail>忽略问题中提到的“数据源名称”或“数据源描述”等无关信息,聚焦于核心的业务需求。</rule-detail>
|
||||||
</rule>
|
</rule>
|
||||||
|
<rule>
|
||||||
|
<rule-title>图表字段注意事项</rule-title>
|
||||||
|
<rule-detail>基于参考SQL的查询结果,请确保图表配置中的value字段与SQL结果字段别名完全一致。例如SELECT "external_unit" AS "外部单位" 图表配置的value应为“外部单位”而非“external_unit”。</rule-detail>
|
||||||
|
</rule>
|
||||||
</Rules>
|
</Rules>
|
||||||
### 以下 <example> 块帮助你理解问题及返回格式,**请勿将此块内的任何表结构用于回答用户的问题**。
|
### 以下 <example> 块帮助你理解问题及返回格式,**请勿将此块内的任何表结构用于回答用户的问题**。
|
||||||
<example>
|
<example>
|
||||||
@@ -185,10 +192,6 @@ template:
|
|||||||
<words><word>数信中心</word><word>建设处</word><word>规划发展部</word><word>综合处</word></words>
|
<words><word>数信中心</word><word>建设处</word><word>规划发展部</word><word>综合处</word></words>
|
||||||
<description>这些都可能是单位的名称,属于内部部门</description>
|
<description>这些都可能是单位的名称,属于内部部门</description>
|
||||||
</terminology>
|
</terminology>
|
||||||
<terminology>
|
|
||||||
<words><word>external_unit</word><word>external_dept</word></words>
|
|
||||||
<description>这些直接是外部单位和外部部门的字段,值是名称,非编号</description>
|
|
||||||
</terminology>
|
|
||||||
</terminologies>
|
</terminologies>
|
||||||
<!-- [RAG 集成区] -->
|
<!-- [RAG 集成区] -->
|
||||||
<!-- 将从向量数据库/知识库中检索到的最相关的N个问答对放在这里 -->
|
<!-- 将从向量数据库/知识库中检索到的最相关的N个问答对放在这里 -->
|
||||||
@@ -247,9 +250,15 @@ template:
|
|||||||
<rule>
|
<rule>
|
||||||
你需要在JSON内生成一个图表的标题,放在"title"字段内,这个标题需要尽量精简
|
你需要在JSON内生成一个图表的标题,放在"title"字段内,这个标题需要尽量精简
|
||||||
</rule>
|
</rule>
|
||||||
|
<rule>
|
||||||
|
基于参考SQL的查询结果,请确保图表配置中的value字段与SQL结果字段别名完全一致。例如SELECT "external_unit" AS "外部单位" 图表配置的value应为“外部单位”而非“external_unit”
|
||||||
|
</rule>
|
||||||
<rule>
|
<rule>
|
||||||
涉及查询男女性别比例时建议采用表格或者柱状图展示,禁止采用饼状图
|
涉及查询男女性别比例时建议采用表格或者柱状图展示,禁止采用饼状图
|
||||||
</rule>
|
</rule>
|
||||||
|
<rule>
|
||||||
|
表格作为保底配置,当生成某中图表配置有困难时一律用表格
|
||||||
|
</rule>
|
||||||
<rule>
|
<rule>
|
||||||
如果需要表格,JSON格式应为:
|
如果需要表格,JSON格式应为:
|
||||||
{{"type":"table", "title": "标题", "columns": [{{"name":"{lang}字段名1", "value": "SQL 查询列 1(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, {{"name": "{lang}字段名 2", "value": "SQL 查询列 2(有别名用别名,去掉外层的反引号、双引号、方括号)"}}]}}
|
{{"type":"table", "title": "标题", "columns": [{{"name":"{lang}字段名1", "value": "SQL 查询列 1(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, {{"name": "{lang}字段名 2", "value": "SQL 查询列 2(有别名用别名,去掉外层的反引号、双引号、方括号)"}}]}}
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ org_and_attend_q_a = [
|
|||||||
COUNT(ps.id) AS "late_count"
|
COUNT(ps.id) AS "late_count"
|
||||||
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
||||||
JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id
|
JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id
|
||||||
JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps ON p.id = ps.person_id
|
JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps ON p.code = ps.person_id
|
||||||
WHERE p.dr = 0
|
WHERE p.dr = 0
|
||||||
AND ps.dr = 0
|
AND ps.dr = 0
|
||||||
AND ps.status = '1006'
|
AND ps.status = '1006'
|
||||||
@@ -217,6 +217,24 @@ org_and_attend_q_a = [
|
|||||||
''',
|
''',
|
||||||
"tags": ["员工", "部门", "考勤", "迟到","人数","最值"],
|
"tags": ["员工", "部门", "考勤", "迟到","人数","最值"],
|
||||||
"category": "考勤管理"
|
"category": "考勤管理"
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"question": "XX中心在藏最长时间的人是谁",
|
||||||
|
"answer": '''
|
||||||
|
SELECT p."name" AS "姓名", p."code" AS "工号", COUNT(ps."id") AS "在藏天数"
|
||||||
|
FROM YJOA_APPSERVICE_DB."t_yj_person_status" ps
|
||||||
|
JOIN YJOA_APPSERVICE_DB."t_pr3rl2oj_yj_person_database" p ON ps."person_id" = p."code"
|
||||||
|
WHERE ps."is_in_tibet" = 1
|
||||||
|
AND ps."dr" = 0
|
||||||
|
AND p."dr" = 0
|
||||||
|
and p.internal_dept in (SELECT "id"
|
||||||
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
||||||
|
WITH "name"||"shortname" LIKE '%xx中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
|
)
|
||||||
|
GROUP BY p."name", p."code"
|
||||||
|
ORDER BY COUNT (ps."id") DESC LIMIT 1
|
||||||
|
'''
|
||||||
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -468,54 +468,53 @@ question_and_answer = [
|
|||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
||||||
WITH "name"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
WITH "name"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid"
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
)
|
)
|
||||||
AND p.id IN (
|
AND p.code IN (
|
||||||
SELECT person_id
|
SELECT person_id
|
||||||
FROM "YJOA_APPSERVICE_DB"."t_yj_person_status"
|
FROM "YJOA_APPSERVICE_DB"."t_yj_person_status"
|
||||||
WHERE status = '1001'
|
WHERE status = '1001'
|
||||||
AND date_value = TO_CHAR(SYSDATE
|
AND date_value = TO_CHAR(SYSDATE, 'yyyy-MM-dd')
|
||||||
, 'yyyy-MM-dd')
|
AND dr = 0)
|
||||||
AND dr = 0)
|
AND p.dr = 0
|
||||||
AND p.dr = 0
|
|
||||||
GROUP BY o.name
|
GROUP BY o.name
|
||||||
ORDER BY "人数" DESC
|
ORDER BY "人数" DESC
|
||||||
LIMIT 1000
|
LIMIT 1000
|
||||||
''',
|
''',
|
||||||
"tags": ["员工", "部门", "考勤", "在岗人数"],
|
"tags": ["员工", "部门", "考勤", "在岗人数"],
|
||||||
"category": "考勤管理"
|
"category": "考勤管理"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"question": "XX部门昨天在岗人员数量",
|
"question": "XX部门昨天在岗人员数量",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT COUNT(p.id) AS "人数"
|
SELECT COUNT(p.id) AS "人数"
|
||||||
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
||||||
JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id
|
JOIN "IUAP_APDOC_BASEDOC"."org_orgs" o ON p.internal_dept = o.id
|
||||||
JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" s ON p.id = s.person_id
|
JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" s ON p.code = s.person_id
|
||||||
WHERE o.id IN (SELECT id
|
WHERE o.id IN (SELECT id
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
WITH "name" || "shortname" LIKE '%XX%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
START WITH "name" || "shortname" LIKE '%XX%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid")
|
CONNECT BY PRIOR "id" = "parentid")
|
||||||
AND s.status = '1001'
|
AND s.status = '1001'
|
||||||
AND s.date_value = TO_CHAR(SYSDATE - 1
|
AND s.date_value = TO_CHAR(SYSDATE - 1,
|
||||||
, 'yyyy-MM-dd')
|
'yyyy-MM-dd')
|
||||||
AND s.dr = 0
|
AND s.dr = 0
|
||||||
AND p.dr = 0 LIMIT 1000
|
AND p.dr = 0 LIMIT 1000
|
||||||
''',
|
''',
|
||||||
"tags": ["员工", "部门", "考勤", "在岗人数"],
|
"tags": ["员工", "部门", "考勤", "在岗人数"],
|
||||||
"category": "考勤管理"
|
"category": "考勤管理"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"question": "XX中心的李四十月份休息了多少天",
|
"question": "XX中心的李四十月份休息了多少天",
|
||||||
"answer": """
|
"answer": """
|
||||||
SELECT COUNT(*) AS rest_days
|
SELECT COUNT(*) AS rest_days
|
||||||
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
||||||
INNER JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps
|
INNER JOIN "YJOA_APPSERVICE_DB"."t_yj_person_status" ps
|
||||||
ON p."code" = ps."person_id"
|
ON p."code" = ps."person_id"
|
||||||
WHERE p."name" = '谭杰明'
|
WHERE p."name" = '谭杰明'
|
||||||
AND p."internal_dept" IN (SELECT "id"
|
AND p."internal_dept" IN (
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
WITH ("name" LIKE '%xx中心%' OR "shortname" LIKE '%xx中心%')
|
START WITH ("name" LIKE '%数信中心%' OR "shortname" LIKE '%数信中心%')
|
||||||
AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%'
|
AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid"
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
)
|
)
|
||||||
AND ps."status" = '1003'
|
AND ps."status" = '1003'
|
||||||
@@ -935,3 +934,4 @@ question_and_answer = [
|
|||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user