修复枚举对应错误,增加问答示例,优化提示词
This commit is contained in:
@@ -56,7 +56,7 @@ template:
|
|||||||
</rule>
|
</rule>
|
||||||
<rule>
|
<rule>
|
||||||
<rule-title>数据查询与排序</rule-title>
|
<rule-title>数据查询与排序</rule-title>
|
||||||
<rule-detail>若未明确指定查询字段,涉及人员信息时,默认返回相关性最强的前10个字段。</rule-detail>
|
<rule-detail>若未明确指定查询字段,涉及人员信息时,一般返回相关性最强的前10个字段。</rule-detail>
|
||||||
<rule-detail>当涉及部门表org_orgs的查询时注意enable启用状态和dr删除标志,且必须限制code字段值包含'CYJ'。</rule-detail>
|
<rule-detail>当涉及部门表org_orgs的查询时注意enable启用状态和dr删除标志,且必须限制code字段值包含'CYJ'。</rule-detail>
|
||||||
<rule-detail>若查询字段为 VARCHAR 或 TEXT 类型但需要计算,必须先进行合理的类型转换(如 CAST(... AS NUMERIC))。</rule-detail>
|
<rule-detail>若查询字段为 VARCHAR 或 TEXT 类型但需要计算,必须先进行合理的类型转换(如 CAST(... AS NUMERIC))。</rule-detail>
|
||||||
<rule-detail>若查询包含日期/时间字段:
|
<rule-detail>若查询包含日期/时间字段:
|
||||||
@@ -67,6 +67,7 @@ template:
|
|||||||
<rule>
|
<rule>
|
||||||
<rule-title>聚合与计算</rule-title>
|
<rule-title>聚合与计算</rule-title>
|
||||||
<rule-detail>使用了聚合函数(如 COUNT(), SUM(), AVG())的SQL,必须配置相应的 GROUP BY 子句。</rule-detail>
|
<rule-detail>使用了聚合函数(如 COUNT(), SUM(), AVG())的SQL,必须配置相应的 GROUP BY 子句。</rule-detail>
|
||||||
|
<rule-detail>禁止使用AGE函数表达式计算年龄</rule-detail>
|
||||||
<rule-detail>使用了函数(如 COUNT(), CAST(), SUM())的字段,必须为其指定一个英文别名。</rule-detail>
|
<rule-detail>使用了函数(如 COUNT(), CAST(), SUM())的字段,必须为其指定一个英文别名。</rule-detail>
|
||||||
<rule-detail>计算占比或百分比时,结果保留两位小数,并以 '%' 符号结尾。示例:ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM table), 2) || '%' (PostgreSQL语法)</rule-detail>
|
<rule-detail>计算占比或百分比时,结果保留两位小数,并以 '%' 符号结尾。示例:ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM table), 2) || '%' (PostgreSQL语法)</rule-detail>
|
||||||
<rule-detail>若查询结果包含枚举字段(如 gender=1,2),必须使用 CASE WHEN 语句将其转换为可读的标签。示例: SELECT CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' END AS "gender"</rule-detail>
|
<rule-detail>若查询结果包含枚举字段(如 gender=1,2),必须使用 CASE WHEN 语句将其转换为可读的标签。示例: SELECT CASE WHEN "gender" = '1' THEN '男' WHEN "gender" = '2' THEN '女' END AS "gender"</rule-detail>
|
||||||
|
|||||||
@@ -386,6 +386,41 @@ question_and_answer = [
|
|||||||
AND p."dr" = 0
|
AND p."dr" = 0
|
||||||
) AS "女员工数"
|
) AS "女员工数"
|
||||||
'''
|
'''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question": "数信中心今天各个处室在岗人员数量",
|
||||||
|
"answer": '''
|
||||||
|
SELECT o.name AS "处室名称", COUNT(p.id) AS "人数"
|
||||||
|
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
|
||||||
|
JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id
|
||||||
|
WHERE p.internal_dept IN (
|
||||||
|
SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
|
START WITH "name"||"shortname" LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
|
)
|
||||||
|
AND p.id IN (SELECT person_id FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" WHERE status = '1001' AND date_value = TO_CHAR(SYSDATE, 'yyyy-MM-dd') AND dr = 0)
|
||||||
|
AND p.dr = 0
|
||||||
|
GROUP BY o.name
|
||||||
|
ORDER BY "人数" DESC
|
||||||
|
LIMIT 1000
|
||||||
|
'''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question": "数信中心下的综合管理处有多少人",
|
||||||
|
"answer": '''
|
||||||
|
SELECT o.name AS "处室名称", COUNT(p.id) AS "人数"
|
||||||
|
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
|
||||||
|
JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id
|
||||||
|
WHERE p.internal_dept IN (
|
||||||
|
SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
|
START WITH "name"||"shortname" LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
|
)
|
||||||
|
AND p.dr = 0 AND o.name LIKE '%综合管理处%'
|
||||||
|
GROUP BY o.name
|
||||||
|
ORDER BY "人数" DESC
|
||||||
|
LIMIT 1000
|
||||||
|
'''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,15 @@ train_document='''
|
|||||||
查询地址,籍贯,公司,单位时,尽量使用like查询;
|
查询地址,籍贯,公司,单位时,尽量使用like查询;
|
||||||
查询人员信息时,由于数据表字段过多。只需要展示人员关键信息字段,id,工号,姓名,单位以及用户问题中需要查询的字段;
|
查询人员信息时,由于数据表字段过多。只需要展示人员关键信息字段,id,工号,姓名,单位以及用户问题中需要查询的字段;
|
||||||
表字段信息以及字段枚举信息在values下,注意相关字段枚举值的转换;
|
表字段信息以及字段枚举信息在values下,注意相关字段枚举值的转换;
|
||||||
|
出生日期字段是varchar类型,计算年龄时需转换成合适的格式
|
||||||
查询单位时,通过orgs表查询,且需要基于parentID查询递归查询单位下的子单位;
|
查询单位时,通过orgs表查询,且需要基于parentID查询递归查询单位下的子单位;
|
||||||
查询内部单位时,则可以直接查询人员信息表,通过like模糊查询;
|
查询内部单位时,则可以直接查询人员信息表,通过like模糊查询;
|
||||||
没有明确说明查询外部单位,都默认查询通过orgs查询单位;
|
没有明确说明查询外部单位,都默认查询通过orgs查询单位;
|
||||||
|
数信中心和数信部并非同一个部门,注意区分,不要混淆
|
||||||
|
数信中心下还有多个部门,这些部门里的人员也隶属于数信中心
|
||||||
|
根据部门名称查询部门时除了全称name,简称shortname也重要信息
|
||||||
|
数信部是简称
|
||||||
|
部门表org_orgs中的level字段 {1:公司,2:一级部门,3:二级部门.....}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
person_database_ddl = """
|
person_database_ddl = """
|
||||||
@@ -896,8 +902,12 @@ person_ac_area = '''
|
|||||||
"name": "area",
|
"name": "area",
|
||||||
"type": "Int",
|
"type": "Int",
|
||||||
"comment": "区域位置",
|
"comment": "区域位置",
|
||||||
|
"value": {
|
||||||
|
"1":"党校",
|
||||||
|
"2":"凯莱"
|
||||||
|
}
|
||||||
"role": "dimension",
|
"role": "dimension",
|
||||||
"tags": ["门禁所属区域"]
|
"tags": ["门禁所属区域","枚举"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "region",
|
"name": "region",
|
||||||
@@ -907,14 +917,14 @@ person_ac_area = '''
|
|||||||
"1":"北京",
|
"1":"北京",
|
||||||
"2":"成都",
|
"2":"成都",
|
||||||
"3":"秭归",
|
"3":"秭归",
|
||||||
"4":"林芝市区",
|
"4":"拉萨",
|
||||||
"5":"拉萨",
|
"5":"林芝",
|
||||||
"6":"米林",
|
"6":"米林",
|
||||||
"7":"派镇",
|
"7":"派镇",
|
||||||
"8":"墨脱",
|
"8":"墨脱",
|
||||||
},
|
},
|
||||||
"role": "dimension",
|
"role": "dimension",
|
||||||
"tags": ["门禁所属地区"]
|
"tags": ["门禁所属地区","枚举"]
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user