修复枚举对应错误,增加问答示例,优化提示词,优化问答示例结构增强检索效果

This commit is contained in:
yujj128
2025-10-23 16:52:25 +08:00
parent 75af77cf4a
commit a02f637994
5 changed files with 897 additions and 72 deletions

View File

@@ -59,7 +59,8 @@ question_and_answer = [
AND "dr" = '0'
ORDER BY "最高学位", "姓名" LIMIT 1000
'''
}, {
},
{
"question": "8月份在藏,超过10天的有哪些员工",
"answer": '''
SELECT DISTINCT p."code" AS "工号",
@@ -112,7 +113,7 @@ question_and_answer = [
'''
},
{
{
"question": "在研发基地工作的有哪些员工",
"answer": '''
SELECT "id" AS "id",
@@ -134,9 +135,9 @@ question_and_answer = [
a."attendance_time" AS "考勤时间",
a."attendance_address" AS "考勤地址",
CASE
WHEN a."status" = 0 THEN '在岗'
WHEN a."status" = 1 THEN '出差'
WHEN a."status" = 2 THEN '休假' END AS "状态",
WHEN a."status" = 1 THEN '在岗'
WHEN a."status" = 2 THEN '出差'
WHEN a."status" = 3 THEN '休假' END AS "状态",
CASE
WHEN a."enter_or_exit" = 0 THEN ''
WHEN a."enter_or_exit" = 1
@@ -145,6 +146,7 @@ question_and_answer = [
WHEN b."region" = 1 THEN '北京'
WHEN b."region" = 2 THEN '成都'
WHEN b."region" = 3 THEN '秭归'
WHEN b."region" = 4 THEN '拉萨'
WHEN b."region" = 5 THEN '林芝' END AS "地区", AS "门禁点"
FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a
JOIN "YJOA_APPSERVICE_DB"."t_yj_person_ac_area" b
@@ -157,7 +159,8 @@ question_and_answer = [
AND a."dr" = 0
ORDER BY a."attendance_time" DESC LIMIT 1000
'''
}, {
},
{
"question": "查询张三9月份有多少天在岗",
"answer": '''
SELECT p."code" AS "工号",
@@ -179,7 +182,8 @@ question_and_answer = [
ELSE p."external_unit"
END LIMIT 1000
'''
}, {
},
{
"question": "XX中心下有多少员工",
"answer": '''
select count(*)
@@ -220,7 +224,8 @@ question_and_answer = [
ORDER BY "人数" DESC
LIMIT 1000
'''
}, {
},
{
"question": "张三9月在林芝工作有多少天",
"answer": '''
SELECT count(distinct (TO_CHAR(a."attendance_time", 'yyyy-MM-dd'))) as count
@@ -269,46 +274,30 @@ question_and_answer = [
{
"question": "XX中心员工年龄段分布图",
"answer": '''
SELECT CASE
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND
CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND
CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND
CAST(SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND
CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后'
ELSE '其他年龄段'
END AS "age_group",
COUNT(*) AS "person_count"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
WHERE "dr" = 0
AND "birthday" IS NOT NULL
AND "birthday" != ''
AND internal_dept IN (
SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
WHERE "parentid" IN (
SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
WHERE name || shortname LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
) OR id IN (SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
WHERE name || shortname LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%')
)
GROUP BY
CASE
WHEN CAST (SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后'
WHEN CAST (SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND CAST (SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后'
WHEN CAST (SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST (SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后'
WHEN CAST (SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND CAST (SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后'
WHEN CAST (SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST (SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后'
ELSE '其他年龄段'
END
ORDER BY "age_group" ASC LIMIT 1000
SELECT CASE
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后'
ELSE '其他年龄段' END AS "age_group", COUNT(*) AS "person_count"
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
WHERE p."dr" = 0 AND p."birthday" IS NOT NULL AND p."birthday" != ''
AND 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"
)
GROUP BY CASE WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 2000 THEN '00后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1990 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 2000 THEN '90后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1980 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1990 THEN '80后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1970 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1980 THEN '70后'
WHEN CAST(SUBSTR("birthday", 1, 4) AS INT) >= 1960 AND CAST(SUBSTR("birthday", 1, 4) AS INT) < 1970 THEN '60后'
ELSE '其他年龄段' END ORDER BY "age_group" ASC LIMIT 1000
'''
}, {
},
{
"question": "查询XX部下面的员工以及他们的年龄",
"answer": '''
SELECT p."id" AS "员工ID",
@@ -544,7 +533,8 @@ question_and_answer = [
AND p."highest_degree" = '3'
LIMIT 1000
'''
}, {
},
{
"question": "XX中心在藏最长时间的人是谁",
"answer": '''
SELECT p."name" AS "姓名", p."code" AS "工号", COUNT(ps."id") AS "在藏天数"
@@ -561,7 +551,8 @@ question_and_answer = [
GROUP BY p."name", p."code"
ORDER BY COUNT (ps."id") DESC LIMIT 1
'''
}, {
},
{
"question": "XX中心员工在林芝工作的天数",
"answer": '''
SELECT DISTINCT p."code" AS "工号",