修复枚举对应错误,增加问答示例,优化提示词
This commit is contained in:
		| @@ -88,7 +88,7 @@ template: | |||||||
|           <rule-detail>若问题与图表展示相关,根据查询意图推荐最合适的图表类型,参考以下原则: |           <rule-detail>若问题与图表展示相关,根据查询意图推荐最合适的图表类型,参考以下原则: | ||||||
|             - **折线图**:展示数据随时间(或其他连续维度)的**趋势**。 |             - **折线图**:展示数据随时间(或其他连续维度)的**趋势**。 | ||||||
|             - **柱状图/条形图**:展示不同**分类**之间的**数值对比**。柱状图常用于分类较少,条形图常用于分类较多或分类名较长。 |             - **柱状图/条形图**:展示不同**分类**之间的**数值对比**。柱状图常用于分类较少,条形图常用于分类较多或分类名较长。 | ||||||
|             - **饼图**:展示单一维度各部分占**整体的比例**,且分类不宜过多(建议少于7个)。 |             - **饼图**:展示单一维度各部分占**整体的比例**,且分类不宜过多(建议少于7个),展示男女比例例外,禁用饼图。 | ||||||
|             - **表格**:用于展示**详细的原始数据**,或用户明确要求查表的场景。 |             - **表格**:用于展示**详细的原始数据**,或用户明确要求查表的场景。 | ||||||
|           </rule-detail> |           </rule-detail> | ||||||
|           <rule-detail>返回的chart-type值必须是 table, column, bar, line, pie 中的一个。</rule-detail> |           <rule-detail>返回的chart-type值必须是 table, column, bar, line, pie 中的一个。</rule-detail> | ||||||
| @@ -228,6 +228,9 @@ template: | |||||||
|         <rule> |         <rule> | ||||||
|           你需要在JSON内生成一个图表的标题,放在"title"字段内,这个标题需要尽量精简 |           你需要在JSON内生成一个图表的标题,放在"title"字段内,这个标题需要尽量精简 | ||||||
|         </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(有别名用别名,去掉外层的反引号、双引号、方括号)"}}]}} | ||||||
| @@ -276,11 +279,19 @@ template: | |||||||
|             <input> |             <input> | ||||||
|               <sql>SELECT `u`.`email` AS `邮箱`, `u`.`id` AS `ID`, `u`.`account` AS `账号`, `u`.`enable` AS `启用状态`, `u`.`create_time` AS `创建时间`, `u`.`language` AS `语言`, `u`.`default_oid` AS `所属组织id`, `u`.`name` AS `姓名`, `u`.`phone` AS `电话`, FROM `per_user` `u` LIMIT 1000</sql> |               <sql>SELECT `u`.`email` AS `邮箱`, `u`.`id` AS `ID`, `u`.`account` AS `账号`, `u`.`enable` AS `启用状态`, `u`.`create_time` AS `创建时间`, `u`.`language` AS `语言`, `u`.`default_oid` AS `所属组织id`, `u`.`name` AS `姓名`, `u`.`phone` AS `电话`, FROM `per_user` `u` LIMIT 1000</sql> | ||||||
|               <user-question>查询所有用户信息</user-question> |               <user-question>查询所有用户信息</user-question> | ||||||
|               <chart-type></chart-type> |               <chart-type>table</chart-type> | ||||||
|             </input> |             </input> | ||||||
|             <output> |             <output> | ||||||
|               {{"type":"table","title":"所有用户信息","columns":[{{"name":"邮箱","value":"email"}},{{"name":"ID","value":"id"}},{{"name":"账号","value":"account"}},{{"name":"启用状态","value":"enable"}},{{"name":"创建时间","value":"create_time"}},{{"name":"语言","value":"language"}},{{"name":"所属组织id","value":"default_oid"}},{{"name":"姓名","value":"name"}},{{"name":"电话","value":"phone"}}]}} |               {{"type":"table","title":"所有用户信息","columns":[{{"name":"邮箱","value":"email"}},{{"name":"ID","value":"id"}},{{"name":"账号","value":"account"}},{{"name":"启用状态","value":"enable"}},{{"name":"创建时间","value":"create_time"}},{{"name":"语言","value":"language"}},{{"name":"所属组织id","value":"default_oid"}},{{"name":"姓名","value":"name"}},{{"name":"电话","value":"phone"}}]}} | ||||||
|             </output> |             </output> | ||||||
|  |             <input> | ||||||
|  |               <sql>SELECT 'XX中心' AS "部门名称" 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 '%数信中心%' AND "dr" = 0 AND "enable" = 1 AND "code" LIKE '%CYJ%' CONNECT BY PRIOR "id" = "parentid") AND p."dr" = 0 LIMIT 1000;</sql> | ||||||
|  |               <user-question>XX中心男女人数</user-question> | ||||||
|  |               <chart-type>table</chart-type> | ||||||
|  |             </input> | ||||||
|  |             <output> | ||||||
|  |               {{'type': 'table', 'title': 'XX中心男女员工统计', 'columns': [{{'name': '部门名称', 'value': '部门名称'}}, {{'name': '男员工数', 'value': '男员工数'}}, {{'name': '女员工数', 'value': '女员工数'}}]}} | ||||||
|  |             </output> | ||||||
|           </example> |           </example> | ||||||
|           <example> |           <example> | ||||||
|             <input> |             <input> | ||||||
|   | |||||||
| @@ -421,7 +421,132 @@ question_and_answer = [ | |||||||
|                     ORDER BY "人数" DESC  |                     ORDER BY "人数" DESC  | ||||||
|                     LIMIT 1000 |                     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也重要信息 |                 根据部门名称查询部门时除了全称name,简称shortname也重要信息 | ||||||
|                 数信部是简称 |                 数信部是简称 | ||||||
|                 部门表org_orgs中的level字段 {1:公司,2:一级部门,3:二级部门.....} |                 部门表org_orgs中的level字段 {1:公司,2:一级部门,3:二级部门.....} | ||||||
|  |                 internal_dept和internal_unit是部门编号不是名称,注意区分 | ||||||
|  |                 查询部门信息时尽量使用internal_dept而非internal_unit<UNK> | ||||||
|         ''' |         ''' | ||||||
|  |  | ||||||
| person_database_ddl = """ | person_database_ddl = """ | ||||||
| @@ -63,9 +65,9 @@ person_database_ddl = """ | |||||||
|     { |     { | ||||||
|       "name": "external_unit", |       "name": "external_unit", | ||||||
|       "type": "VARCHAR(600)", |       "type": "VARCHAR(600)", | ||||||
|       "comment": "外部单位", |       "comment": "外部单位名称", | ||||||
|       "role": "dimension", |       "role": "dimension", | ||||||
|       "tags": ["组织信息", "外部单位"] |       "tags": ["组织信息", "外部单位","外部单位名称"] | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "name": "photo", |       "name": "photo", | ||||||
| @@ -472,13 +474,6 @@ person_database_ddl = """ | |||||||
|       "type": "foreign_key", |       "type": "foreign_key", | ||||||
|       "comment": "关联部门表" |       "comment": "关联部门表" | ||||||
|     }, |     }, | ||||||
|     { |  | ||||||
|       "from": "internal_unit", |  | ||||||
|       "to_table": "IUAP_APDOC_BASEDOC.org_orgs", |  | ||||||
|       "to_field": ["id","parentid"], |  | ||||||
|       "type": "foreign_key", |  | ||||||
|       "comment": "关联部门表" |  | ||||||
|     }, |  | ||||||
|   ], |   ], | ||||||
|  |  | ||||||
|   "tags": ["人员管理", "人力资源", "审批流程", "基本信息", "工作信息"], |   "tags": ["人员管理", "人力资源", "审批流程", "基本信息", "工作信息"], | ||||||
| @@ -695,9 +690,9 @@ person_attendance_ddl = ''' | |||||||
|       "type": "INT", |       "type": "INT", | ||||||
|       "comment": "状态", |       "comment": "状态", | ||||||
|       "value": { |       "value": { | ||||||
|         "0": "在岗", |         "1": "在岗", | ||||||
|         "1": "出差", |         "2": "出差", | ||||||
|         "2": "休假" |         "3": "休假" | ||||||
|       }, |       }, | ||||||
|       "role": "dimension", |       "role": "dimension", | ||||||
|       "tags": ["状态标识", "人员在岗状态","枚举"] |       "tags": ["状态标识", "人员在岗状态","枚举"] | ||||||
| @@ -738,8 +733,8 @@ person_attendance_ddl = ''' | |||||||
|       "type": "INT", |       "type": "INT", | ||||||
|       "comment": "进出类型", |       "comment": "进出类型", | ||||||
|       "value": { |       "value": { | ||||||
|         "0": "进", |         "1": "进", | ||||||
|         "1": "出" |         "2": "出" | ||||||
|       }, |       }, | ||||||
|       "role": "dimension", |       "role": "dimension", | ||||||
|       "tags": ["进出标识", "打卡方向"] |       "tags": ["进出标识", "打卡方向"] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 yujj128
					yujj128