修复枚举对应错误,增加问答示例,优化提示词
This commit is contained in:
		| @@ -421,7 +421,132 @@ question_and_answer = [ | ||||
|                     ORDER BY "人数" DESC  | ||||
|                     LIMIT 1000 | ||||
|                   ''' | ||||
|     } | ||||
|  | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX中心男女各多少人", | ||||
|         "answer": ''' | ||||
|                     SELECT  | ||||
|                       SUM(CASE WHEN p."gender" = '1' THEN 1 ELSE 0 END) AS "男员工数", | ||||
|                       SUM(CASE WHEN p."gender" = '2' THEN 1 ELSE 0 END) AS "女员工数" | ||||
|                     FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||
|                     WHERE p."internal_dept" IN ( | ||||
|                       SELECT "id" | ||||
|                       FROM "IUAP_APDOC_BASEDOC"."org_orgs" | ||||
|                       START WITH "name" LIKE '%XX中心%' AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' | ||||
|                       CONNECT BY PRIOR "id" = "parentid" | ||||
|                     ) | ||||
|                       AND p."dr" = 0 | ||||
|                     LIMIT 1000; | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX中心在藏最长时间的人是谁,待了多少天了", | ||||
|         "answer": ''' | ||||
|                     SELECT p."name" 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 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") | ||||
|                       AND ps."dr" = 0 | ||||
|                       AND p."dr" = 0 | ||||
|                     GROUP BY p."name" | ||||
|                     ORDER BY "在藏天数" DESC | ||||
|                     LIMIT 1 | ||||
|                   ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "张三今天早上9点半之前,今天早上0点之后,有打卡记录吗", | ||||
|         "answer": ''' | ||||
|                     SELECT a."person_name" AS "姓名", a."attendance_time" AS "考勤时间", a."attendance_address" AS "考勤地址", | ||||
|                            CASE | ||||
|                                WHEN a."status" = 1 THEN '在岗' | ||||
|                                WHEN a."status" = 2 THEN '出差' | ||||
|                                WHEN a."status" = 3 THEN '休假' | ||||
|                            END AS "状态", | ||||
|                            CASE | ||||
|                                WHEN a."enter_or_exit" = 1 THEN '进' | ||||
|                                WHEN a."enter_or_exit" = 2 THEN '出' | ||||
|                            END AS "进出类型" | ||||
|                       FROM "YJOA_APPSERVICE_DB"."t_yj_person_attendance" a | ||||
|                       WHERE a."person_name" = '张三' | ||||
|                         AND a."attendance_time" >= '2025-10-16 00:00:00' | ||||
|                         AND a."attendance_time" < '2025-10-16 09:30:00' | ||||
|                         AND a."dr" = 0 | ||||
|                       ORDER BY a."attendance_time" DESC LIMIT 1000 | ||||
|                  ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX中心正式人员有多少,各个处室有多少?", | ||||
|         "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.person_type = 'YG'  | ||||
|                       AND p.dr = 0  | ||||
|                       AND o.enable = 1  | ||||
|                       AND o.dr = 0  | ||||
|                       AND (  | ||||
|                         o.id IN (  | ||||
|                           SELECT "id"  | ||||
|                           FROM "IUAP_APDOC_BASEDOC"."org_orgs"  | ||||
|                           START WITH ("name" LIKE '%XX中心%' OR "shortname" LIKE '%XX中心%')  | ||||
|                             AND "enable" = 1  | ||||
|                             AND "dr" = 0  | ||||
|                           CONNECT BY PRIOR "id" = "parentid"  | ||||
|                         )  | ||||
|                       )  | ||||
|                     GROUP BY o.name  | ||||
|                     ORDER BY "正式员工数量" DESC  | ||||
|                     LIMIT 1000; | ||||
|                  ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX部门年龄最小的员工是谁,多少岁?", | ||||
|         "answer": ''' | ||||
|                     SELECT p."name" AS "姓名",  | ||||
|                            CAST(p."birthday" AS DATE) AS "出生日期", | ||||
|                            EXTRACT(YEAR FROM CURRENT_DATE) - EXTRACT(YEAR FROM CAST(p."birthday" AS DATE)) AS "年龄" | ||||
|                       FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p | ||||
|                       WHERE 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" | ||||
|                           ) | ||||
|                         AND p."dr" = 0 | ||||
|                         AND p."birthday" IS NOT NULL | ||||
|                         AND p."birthday" != '' | ||||
|                       ORDER BY "年龄" ASC | ||||
|                       LIMIT 1 | ||||
|              ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "有多少人外部单位是XX公司的", | ||||
|         "answer": ''' | ||||
|                   SELECT "external_unit" AS "外部单位", COUNT(*) AS "人数"  | ||||
|                   FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database"  | ||||
|                   WHERE "external_unit" LIKE '%XX%' AND "dr" = 0  | ||||
|                   GROUP BY "external_unit" LIMIT 1000 | ||||
|          ''' | ||||
|     }, | ||||
|     { | ||||
|         "question": "XX部门博士多少人", | ||||
|         "answer": ''' | ||||
|                     SELECT COUNT(*) 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 '%XX%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%' | ||||
|                         CONNECT BY PRIOR "id" = "parentid" | ||||
|                     ) | ||||
|                       AND p."dr" = 0 | ||||
|                       AND p."highest_degree" = '3' | ||||
|                     LIMIT 1000 | ||||
|      ''' | ||||
|     }, | ||||
|  | ||||
| ] | ||||
|   | ||||
| @@ -12,6 +12,8 @@ train_document=''' | ||||
|                 根据部门名称查询部门时除了全称name,简称shortname也重要信息 | ||||
|                 数信部是简称 | ||||
|                 部门表org_orgs中的level字段 {1:公司,2:一级部门,3:二级部门.....} | ||||
|                 internal_dept和internal_unit是部门编号不是名称,注意区分 | ||||
|                 查询部门信息时尽量使用internal_dept而非internal_unit<UNK> | ||||
|         ''' | ||||
|  | ||||
| person_database_ddl = """ | ||||
| @@ -63,9 +65,9 @@ person_database_ddl = """ | ||||
|     { | ||||
|       "name": "external_unit", | ||||
|       "type": "VARCHAR(600)", | ||||
|       "comment": "外部单位", | ||||
|       "comment": "外部单位名称", | ||||
|       "role": "dimension", | ||||
|       "tags": ["组织信息", "外部单位"] | ||||
|       "tags": ["组织信息", "外部单位","外部单位名称"] | ||||
|     }, | ||||
|     { | ||||
|       "name": "photo", | ||||
| @@ -472,13 +474,6 @@ person_database_ddl = """ | ||||
|       "type": "foreign_key", | ||||
|       "comment": "关联部门表" | ||||
|     }, | ||||
|     { | ||||
|       "from": "internal_unit", | ||||
|       "to_table": "IUAP_APDOC_BASEDOC.org_orgs", | ||||
|       "to_field": ["id","parentid"], | ||||
|       "type": "foreign_key", | ||||
|       "comment": "关联部门表" | ||||
|     }, | ||||
|   ], | ||||
|  | ||||
|   "tags": ["人员管理", "人力资源", "审批流程", "基本信息", "工作信息"], | ||||
| @@ -695,9 +690,9 @@ person_attendance_ddl = ''' | ||||
|       "type": "INT", | ||||
|       "comment": "状态", | ||||
|       "value": { | ||||
|         "0": "在岗", | ||||
|         "1": "出差", | ||||
|         "2": "休假" | ||||
|         "1": "在岗", | ||||
|         "2": "出差", | ||||
|         "3": "休假" | ||||
|       }, | ||||
|       "role": "dimension", | ||||
|       "tags": ["状态标识", "人员在岗状态","枚举"] | ||||
| @@ -738,8 +733,8 @@ person_attendance_ddl = ''' | ||||
|       "type": "INT", | ||||
|       "comment": "进出类型", | ||||
|       "value": { | ||||
|         "0": "进", | ||||
|         "1": "出" | ||||
|         "1": "进", | ||||
|         "2": "出" | ||||
|       }, | ||||
|       "role": "dimension", | ||||
|       "tags": ["进出标识", "打卡方向"] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 yujj128
					yujj128