diff --git a/main_service.py b/main_service.py
index 7e0f3cc..2989c43 100644
--- a/main_service.py
+++ b/main_service.py
@@ -111,6 +111,7 @@ def generate_sql_2():
         data["type"]="success"
         return jsonify(data)
     except Exception as e:
+        logger.error("generate sql failed:{e}")
         return jsonify({"type": "error", "error": str(e)})
 
 
@@ -156,9 +157,9 @@ def run_sql_2(id: str, sql: str):
         df = vn.run_sql(sql=sql)
         logger.info("")
         app.cache.set(id=id, field="df", value=df)
-        x = df.to_dict(orient='records')
-        logger.info("df ---------------{0}   {1}".format(x,type(x)))
-        result = util.utils.deal_result(data=x)
+        result = df.to_dict(orient='records')
+        logger.info("df ---------------{0}   {1}".format(result,type(result)))
+        # result = util.utils.deal_result(data=result)
 
         return jsonify(
             {
@@ -169,6 +170,7 @@ def run_sql_2(id: str, sql: str):
         )
 
     except Exception as e:
+        logger.error("run sql failed:{e}")
         return jsonify({"type": "sql_error", "error": str(e)})
 
 if __name__ == '__main__':
diff --git a/template.yaml b/template.yaml
index 4c8611f..6e7ffc9 100644
--- a/template.yaml
+++ b/template.yaml
@@ -307,6 +307,9 @@ template:
         
           用户提问的内容只是参考,主要以内的SQL为准
         
+        
+          遇到枚举字段时,返回的信息不要为key,而是枚举key对应的值
+        
         
           若用户提问内就是参考SQL,则以内的SQL为准进行推测,选择合适的图表类型展示
         
diff --git a/util/train_ddl.py b/util/train_ddl.py
index 23adb04..d386a79 100644
--- a/util/train_ddl.py
+++ b/util/train_ddl.py
@@ -1,124 +1,983 @@
 ddl_sql = """
-          create table YJOA_APPSERVICE_DB."t_pr3rl2oj_yj_person_database"
-          (
-              "person_status"                     VARCHAR(108) default 'NULL' comment '人员状态',
-              "gender"                            VARCHAR(108) default 'NULL' comment '性别(1:男,2:女)',
-              "id_card"                           VARCHAR(600) default 'NULL' comment '身份证号码',
-              "input_time"                        DATETIME(39) default NULL comment '录入时间',
-              "external_unit"                     VARCHAR(600) default 'NULL' comment '外部单位',
-              "photo"                             TEXT(max) default NULL comment '照片(二进制文本)',
-              "input_user"                        VARCHAR(108) default 'NULL' comment '录入人',
-              "is_internal"                       VARCHAR(108) default 'NULL' comment '是否内部员工(1代表是,0代表否)',
-              "phone_number"                      VARCHAR(600) default 'NULL' comment '手机号',
-              "external_dept"                     VARCHAR(600) default 'NULL' comment '福建亿榕信息技术有限公司',
-              "pass_type"                         VARCHAR(108) default 'NULL' comment '通行证类型',
-              "expire_time"                       DATETIME(39) default NULL comment '失效时间',
-              "internal_dept"                     VARCHAR(108) default 'NULL' comment '内部部门',
-              "input_dept"                        VARCHAR(108) default 'NULL' comment '录入部门',
-              "name"                              VARCHAR(600) default 'NULL' comment '姓名',
-              "internal_unit"                     VARCHAR(108) default 'NULL' comment '内部单位',
-              "person_type"                       VARCHAR(108) default 'NULL' comment '人员类型',
-              "id"                                VARCHAR(22) not null comment 'id',
-              "pubts"                             DATETIME(39) default CURRENT_TIMESTAMP,
-              "dr"                                INT          default 0 comment '逻辑删除,1代表已删除',
-              "code"                              VARCHAR(600) default 'NULL' comment '编码',
-              "ytenant_id"                        VARCHAR(64) not null
-                  constraint T_PR3RL2OJ_YJ_PERSON_DATABASE_I_I_YTENANT_ID
-                      unique comment '租户ID',
-              "sourcegrand_id"                    VARCHAR(108) default 'NULL' comment '来源表id',
-              "first_id"                          VARCHAR(108) default 'NULL' comment '来源单据主表id',
-              "firstchild_id"                     VARCHAR(108) default 'NULL' comment '来源单据子表id',
-              "firstbusiobj"                      VARCHAR(108) default 'NULL' comment '来源业务对象',
-              "firstcode"                         VARCHAR(600) default 'NULL' comment '来源单据号',
-              "verifystate"                       INT          default NULL comment '单据状态',
-              "auditor"                           VARCHAR(180) default 'NULL' comment '终审审批人',
-              "audit_time"                        DATETIME(39) default NULL comment '审批日期',
-              "auditnote"                         VARCHAR(600) default 'NULL' comment '当前审批人',
-              "procinst_id"                       VARCHAR(108) default 'NULL' comment '流程实例ID',
-              "bizflow_id"                        VARCHAR(108) default 'NULL' comment '业务流id',
-              "bizflowname"                       VARCHAR(600) default 'NULL' comment '流程名称',
-              "source_id"                         VARCHAR(108) default 'NULL' comment '上游单据主表id',
-              "sourcechild_id"                    VARCHAR(108) default 'NULL' comment '上游单据子表id',
-              "bizflowinstance_id"                VARCHAR(108) default 'NULL' comment '业务流实例id',
-              "sourcebusiobj"                     VARCHAR(108) default 'NULL' comment '上游业务对象',
-              "sourcecode"                        VARCHAR(600) default 'NULL' comment '上游单据号',
-              "bizflow_makebillcode"              VARCHAR(600) default 'NULL' comment '单据转换规则编码',
-              "create_time"                       DATETIME(39) default NULL comment '创建时间',
-              "modify_time"                       DATETIME(39) default NULL comment '修改时间',
-              "creator"                           VARCHAR(180) default 'NULL' comment '创建人',
-              "modifier"                          VARCHAR(180) default 'NULL' comment '修改人',
-              "worker_id"                         VARCHAR(200) default 'NULL' comment '工号',
-              "to_dept"                           VARCHAR(600) default 'NULL' comment '所属处室',
-              "id_card_type"                      VARCHAR(108) default 'NULL' comment '身份证件类型',
-              "native_place"                      VARCHAR(600) default 'NULL' comment '籍贯',
-              "nation"                            VARCHAR(600) default 'NULL' comment '民族',
-              "country"                           VARCHAR(600) default 'NULL' comment '国籍',
-              "residence_address"                 VARCHAR(600) default 'NULL' comment '户籍地址',
-              "highest_education"                 VARCHAR(108) default 'NULL' comment '最高学历',
-              "highest_degree"                    VARCHAR(108) default 'NULL' comment '最高学位',
-              "graduate_school"                   VARCHAR(600) default 'NULL' comment '毕业院校',
-              "birthday"                          VARCHAR(30)  default 'NULL' comment '出生日期',
-              "work_date"                         VARCHAR(30)  default 'NULL' comment '参加工作日期',
-              "political_status"                  VARCHAR(600) default 'NULL' comment '政治面貌',
-              "work_unit"                         VARCHAR(600) default 'NULL' comment '工作单位全称',
-              "post"                              VARCHAR(600) default 'NULL' comment '职务',
-              "engage_post"                       VARCHAR(600) default 'NULL' comment '现从事岗位',
-              "work_content"                      TEXT(max) default NULL comment '工作内容',
-              "engage_contract_no"                VARCHAR(600) default 'NULL' comment '从事项目合同编号',
-              "engage_contract_name"              VARCHAR(600) default 'NULL' comment '从事项目合同名称',
-              "is_subcontractor"                  VARCHAR(108) default 'NULL' comment '是否分包商',
-              "general_contractor_unit"           VARCHAR(600) default 'NULL' comment '总包单位全称',
-              "entry_date"                        VARCHAR(30)  default 'NULL' comment '入场日期',
-              "expected_departure_date"           VARCHAR(30)  default 'NULL' comment '预计离场日期',
-              "office_city"                       VARCHAR(600) default 'NULL' comment '办公城市',
-              "office_address"                    VARCHAR(600) default 'NULL' comment '办公地点',
-              "is_sign_confidentiality_agreement" VARCHAR(108) default 'NULL' comment '是否签署保密协议(1:是,0:否)',
-              "email"                             VARCHAR(600) default 'NULL' comment '电子邮箱',
-              DHDATASTA                           INT          default 0 comment '推送状态(0新增,1更新)',
-              "auditor1"                          VARCHAR(36) comment '处室负责人'
-          )
-          """
-
+[
+{
+  "db_name":"YJOA_APPSERVICE_DB",
+  "table_name": "t_pr3rl2oj_yj_person_database",
+  "table_comment": "人员信息主表,记录人员基本信息、工作信息、审批流程信息等",
+  "columns": [
+    {
+      "name": "person_status",
+      "type": "VARCHAR(108)",
+      "comment": "人员状态",
+      "values":{
+        "1":"草稿",
+        "2":"审批中",
+        "3":"制卡中",
+        "4":"已入库",
+        "5":"停用"
+      },
+      "role": "dimension",
+      "tags": ["状态信息"]
+    },
+    {
+      "name": "gender",
+      "type": "VARCHAR(108)",
+      "comment": "性别",
+      "values": {
+        "1": "男",
+        "2": "女"
+      },
+      "role": "dimension",
+      "tags": ["基本信息", "人口属性"]
+    },
+    {
+      "name": "id_card",
+      "type": "VARCHAR(600)",
+      "comment": "身份证号码",
+      "role": "dimension",
+      "tags": ["证件信息", "身份标识"]
+    },
+    {
+      "name": "input_time",
+      "type": "DATETIME(39)",
+      "comment": "录入时间",
+      "role": "dimension",
+      "tags": ["时间信息", "操作记录"]
+    },
+    {
+      "name": "external_unit",
+      "type": "VARCHAR(600)",
+      "comment": "外部单位",
+      "role": "dimension",
+      "tags": ["组织信息", "外部单位"]
+    },
+    {
+      "name": "photo",
+      "type": "TEXT(max)",
+      "comment": "照片(二进制文本)",
+      "role": "dimension",
+      "tags": ["多媒体信息"]
+    },
+    {
+      "name": "input_user",
+      "type": "VARCHAR(108)",
+      "comment": "录入人",
+      "role": "dimension",
+      "tags": ["操作人信息"]
+    },
+    {
+      "name": "is_internal",
+      "type": "VARCHAR(108)",
+      "comment": "是否内部员工",
+      "values": {
+        "1": "是",
+        "0": "否"
+      },
+      "role": "dimension",
+      "tags": ["员工类型", "身份标识"]
+    },
+    {
+      "name": "phone_number",
+      "type": "VARCHAR(600)",
+      "comment": "手机号",
+      "role": "dimension",
+      "tags": ["联系方式", "通讯信息"]
+    },
+    {
+      "name": "external_dept",
+      "type": "VARCHAR(600)",
+      "comment": "外部部门",
+      "role": "dimension",
+      "tags": ["组织信息", "外部部门"]
+    },
+    {
+      "name": "pass_type",
+      "type": "VARCHAR(108)",
+      "comment": "通行证类型",
+      "value":{
+        "1": "集团公司员工",
+        "2": "借调人员",
+        "3":"借用人员",
+        "4":"外部监管人员",
+        "5":"外协服务人员",
+        "6":"工勤人员",
+        "7":"来访人员",
+      },
+      "role": "dimension",
+      "tags": ["证件信息", "通行权限"]
+    },
+    {
+      "name": "expire_time",
+      "type": "DATETIME(39)",
+      "comment": "失效时间",
+      "role": "dimension",
+      "tags": ["时间信息", "有效期"]
+    },
+    {
+      "name": "internal_dept",
+      "type": "VARCHAR(108)",
+      "comment": "内部部门",
+      "role": "dimension",
+      "tags": ["组织信息", "内部架构"]
+    },
+    {
+      "name": "input_dept",
+      "type": "VARCHAR(108)",
+      "comment": "录入部门",
+      "role": "dimension",
+      "tags": ["操作部门", "组织信息"]
+    },
+    {
+      "name": "name",
+      "type": "VARCHAR(600)",
+      "comment": "姓名",
+      "role": "dimension",
+      "tags": ["基本信息", "身份标识"]
+    },
+    {
+      "name": "internal_unit",
+      "type": "VARCHAR(108)",
+      "comment": "内部单位",
+      "role": "dimension",
+      "tags": ["组织信息", "内部架构"]
+    },
+    {
+      "name": "person_type",
+      "type": "VARCHAR(108)",
+      "comment": "人员类型",
+      "value":{
+        "YG":"正式员工",
+        "PQ":"劳务派遣人员",
+        "QT":"其他柔性引进人员",
+        "WHZ":"合作单位",
+        "WLS":"临时访客",
+        "WQT":"其他外部人员"
+      },
+      "role": "dimension",
+      "tags": ["分类信息", "人员分类"]
+    },
+    {
+      "name": "id",
+      "type": "VARCHAR(22)",
+      "comment": "主键ID",
+      "role": "dimension",
+      "tags": ["主键", "ID标识"]
+    },
+    {
+      "name": "pubts",
+      "type": "DATETIME(39)",
+      "comment": "发布时间",
+      "role": "dimension",
+      "tags": ["时间信息", "系统字段"]
+    },
+    {
+      "name": "dr",
+      "type": "INT",
+      "comment": "逻辑删除标志",
+      "values": {
+        "0": "正常",
+        "1": "已删除"
+      },
+      "role": "dimension",
+      "tags": ["系统状态", "数据状态"]
+    },
+    {
+      "name": "code",
+      "type": "VARCHAR(600)",
+      "comment": "编码",
+      "role": "dimension",
+      "tags": ["编码信息", "业务编码"]
+    },
+    {
+      "name": "ytenant_id",
+      "type": "VARCHAR(64)",
+      "comment": "租户ID",
+      "role": "dimension",
+      "tags": ["租户信息", "系统隔离"]
+    },
+    {
+      "name": "sourcegrand_id",
+      "type": "VARCHAR(108)",
+      "comment": "来源表id",
+      "role": "dimension",
+      "tags": ["数据来源", "关联信息"]
+    },
+    {
+      "name": "first_id",
+      "type": "VARCHAR(108)",
+      "comment": "来源单据主表id",
+      "role": "dimension",
+      "tags": ["数据来源", "关联信息"]
+    },
+    {
+      "name": "firstchild_id",
+      "type": "VARCHAR(108)",
+      "comment": "来源单据子表id",
+      "role": "dimension",
+      "tags": ["数据来源", "关联信息"]
+    },
+    {
+      "name": "firstbusiobj",
+      "type": "VARCHAR(108)",
+      "comment": "来源业务对象",
+      "role": "dimension",
+      "tags": ["业务对象", "数据来源"]
+    },
+    {
+      "name": "firstcode",
+      "type": "VARCHAR(600)",
+      "comment": "来源单据号",
+      "role": "dimension",
+      "tags": ["单据信息", "业务编码"]
+    },
+    {
+      "name": "verifystate",
+      "type": "INT",
+      "comment": "单据状态",
+      "role": "dimension",
+      "tags": ["审批状态", "业务流程"]
+    },
+    {
+      "name": "auditor",
+      "type": "VARCHAR(180)",
+      "comment": "终审审批人",
+      "role": "dimension",
+      "tags": ["审批信息", "操作人"]
+    },
+    {
+      "name": "audit_time",
+      "type": "DATETIME(39)",
+      "comment": "审批日期",
+      "role": "dimension",
+      "tags": ["时间信息", "审批流程"]
+    },
+    {
+      "name": "auditnote",
+      "type": "VARCHAR(600)",
+      "comment": "当前审批人",
+      "role": "dimension",
+      "tags": ["审批信息", "操作人"]
+    },
+    {
+      "name": "procinst_id",
+      "type": "VARCHAR(108)",
+      "comment": "流程实例ID",
+      "role": "dimension",
+      "tags": ["流程信息", "实例标识"]
+    },
+    {
+      "name": "bizflow_id",
+      "type": "VARCHAR(108)",
+      "comment": "业务流id",
+      "role": "dimension",
+      "tags": ["业务流程", "流标识"]
+    },
+    {
+      "name": "bizflowname",
+      "type": "VARCHAR(600)",
+      "comment": "流程名称",
+      "role": "dimension",
+      "tags": ["业务流程", "名称描述"]
+    },
+    {
+      "name": "source_id",
+      "type": "VARCHAR(108)",
+      "comment": "上游单据主表id",
+      "role": "dimension",
+      "tags": ["数据关联", "上游信息"]
+    },
+    {
+      "name": "sourcechild_id",
+      "type": "VARCHAR(108)",
+      "comment": "上游单据子表id",
+      "role": "dimension",
+      "tags": ["数据关联", "上游信息"]
+    },
+    {
+      "name": "bizflowinstance_id",
+      "type": "VARCHAR(108)",
+      "comment": "业务流实例id",
+      "role": "dimension",
+      "tags": ["业务流程", "实例标识"]
+    },
+    {
+      "name": "sourcebusiobj",
+      "type": "VARCHAR(108)",
+      "comment": "上游业务对象",
+      "role": "dimension",
+      "tags": ["业务对象", "上游信息"]
+    },
+    {
+      "name": "sourcecode",
+      "type": "VARCHAR(600)",
+      "comment": "上游单据号",
+      "role": "dimension",
+      "tags": ["单据信息", "业务编码"]
+    },
+    {
+      "name": "bizflow_makebillcode",
+      "type": "VARCHAR(600)",
+      "comment": "单据转换规则编码",
+      "role": "dimension",
+      "tags": ["业务流程", "规则编码"]
+    },
+    {
+      "name": "create_time",
+      "type": "DATETIME(39)",
+      "comment": "创建时间",
+      "role": "dimension",
+      "tags": ["时间信息", "系统记录"]
+    },
+    {
+      "name": "modify_time",
+      "type": "DATETIME(39)",
+      "comment": "修改时间",
+      "role": "dimension",
+      "tags": ["时间信息", "系统记录"]
+    },
+    {
+      "name": "creator",
+      "type": "VARCHAR(180)",
+      "comment": "创建人",
+      "role": "dimension",
+      "tags": ["操作人信息", "系统记录"]
+    },
+    {
+      "name": "modifier",
+      "type": "VARCHAR(180)",
+      "comment": "修改人",
+      "role": "dimension",
+      "tags": ["操作人信息", "系统记录"]
+    },
+    {
+      "name": "worker_id",
+      "type": "VARCHAR(200)",
+      "comment": "工号",
+      "role": "dimension",
+      "tags": ["员工信息", "身份标识"]
+    },
+    {
+      "name": "to_dept",
+      "type": "VARCHAR(600)",
+      "comment": "所属处室",
+      "role": "dimension",
+      "tags": ["组织信息", "部门架构"]
+    },
+    {
+      "name": "id_card_type",
+      "type": "VARCHAR(108)",
+      "comment": "身份证件类型",
+      "value":{
+        "1":"身份证",
+        "2":"护照",
+        "3":"港澳通行证"
+      },
+      "role": "dimension",
+      "tags": ["证件信息", "身份标识"]
+    },
+    {
+      "name": "native_place",
+      "type": "VARCHAR(600)",
+      "comment": "籍贯",
+      "role": "dimension",
+      "tags": ["基本信息", "籍贯信息"]
+    },
+    {
+      "name": "nation",
+      "type": "VARCHAR(600)",
+      "comment": "民族",
+      "role": "dimension",
+      "tags": ["基本信息", "民族信息"]
+    },
+    {
+      "name": "country",
+      "type": "VARCHAR(600)",
+      "comment": "国籍",
+      "role": "dimension",
+      "tags": ["基本信息", "国籍信息"]
+    },
+    {
+      "name": "residence_address",
+      "type": "VARCHAR(600)",
+      "comment": "户籍地址",
+      "role": "dimension",
+      "tags": ["地址信息", "户籍信息"]
+    },
+    {
+      "name": "highest_education",
+      "type": "VARCHAR(108)",
+      "comment": "最高学历",
+      "value":{
+        "1":"初中",
+        "2":"高中",
+        "3":"中专",
+        "4":"技校",
+        "5":"职高",
+        "6":"大专",
+        "7":"本科",
+        "8":"硕士",
+        "9":"博士 "
+      },
+      "role": "dimension",
+      "tags": ["教育信息", "学历背景"]
+    },
+    {
+      "name": "highest_degree",
+      "type": "VARCHAR(108)",
+      "comment": "最高学位",
+      "value":{
+        "1":"学士学位",
+        "2":"硕士学位",
+        "3":"博士学位",
+        "4":"无"
+      },
+      "role": "dimension",
+      "tags": ["教育信息", "学位背景"]
+    },
+    {
+      "name": "graduate_school",
+      "type": "VARCHAR(600)",
+      "comment": "毕业院校",
+      "role": "dimension",
+      "tags": ["教育信息", "院校背景"]
+    },
+    {
+      "name": "birthday",
+      "type": "VARCHAR(30)",
+      "comment": "出生日期",
+      "role": "dimension",
+      "tags": ["时间信息", "个人资料"]
+    },
+    {
+      "name": "work_date",
+      "type": "VARCHAR(30)",
+      "comment": "参加工作日期",
+      "role": "dimension",
+      "tags": ["时间信息", "工作经历"]
+    },
+    {
+      "name": "political_status",
+      "type": "VARCHAR(600)",
+      "comment": "政治面貌",
+      "role": "dimension",
+      "tags": ["政治信息", "个人属性"]
+    },
+    {
+      "name": "work_unit",
+      "type": "VARCHAR(600)",
+      "comment": "工作单位全称",
+      "role": "dimension",
+      "tags": ["工作信息", "单位信息"]
+    },
+    {
+      "name": "post",
+      "type": "VARCHAR(600)",
+      "comment": "职务",
+      "role": "dimension",
+      "tags": ["工作信息", "职务信息"]
+    },
+    {
+      "name": "engage_post",
+      "type": "VARCHAR(600)",
+      "comment": "现从事岗位",
+      "role": "dimension",
+      "tags": ["工作信息", "岗位信息"]
+    },
+    {
+      "name": "work_content",
+      "type": "TEXT(max)",
+      "comment": "工作内容",
+      "role": "dimension",
+      "tags": ["工作信息", "职责描述"]
+    },
+    {
+      "name": "engage_contract_no",
+      "type": "VARCHAR(600)",
+      "comment": "从事项目合同编号",
+      "role": "dimension",
+      "tags": ["合同信息", "项目信息"]
+    },
+    {
+      "name": "engage_contract_name",
+      "type": "VARCHAR(600)",
+      "comment": "从事项目合同名称",
+      "role": "dimension",
+      "tags": ["合同信息", "项目信息"]
+    },
+    {
+      "name": "is_subcontractor",
+      "type": "VARCHAR(108)",
+      "comment": "是否分包商",
+      "role": "dimension",
+      "tags": ["供应商类型", "合作模式"]
+    },
+    {
+      "name": "general_contractor_unit",
+      "type": "VARCHAR(600)",
+      "comment": "总包单位全称",
+      "role": "dimension",
+      "tags": ["合作单位", "总包信息"]
+    },
+    {
+      "name": "entry_date",
+      "type": "VARCHAR(30)",
+      "comment": "入场日期",
+      "role": "dimension",
+      "tags": ["时间信息", "项目参与"]
+    },
+    {
+      "name": "expected_departure_date",
+      "type": "VARCHAR(30)",
+      "comment": "预计离场日期",
+      "role": "dimension",
+      "tags": ["时间信息", "项目参与"]
+    },
+    {
+      "name": "office_city",
+      "type": "VARCHAR(600)",
+      "comment": "办公城市",
+      "role": "dimension",
+      "tags": ["地址信息", "办公地点"]
+    },
+    {
+      "name": "office_address",
+      "type": "VARCHAR(600)",
+      "comment": "办公地点",
+      "role": "dimension",
+      "tags": ["地址信息", "办公地点"]
+    },
+    {
+      "name": "is_sign_confidentiality_agreement",
+      "type": "VARCHAR(108)",
+      "comment": "是否签署保密协议",
+      "values": {
+        "1": "是",
+        "0": "否"
+      },
+      "role": "dimension",
+      "tags": ["协议状态", "合规信息"]
+    },
+    {
+      "name": "email",
+      "type": "VARCHAR(600)",
+      "comment": "电子邮箱",
+      "role": "dimension",
+      "tags": ["联系方式", "通讯信息"]
+    },
+    {
+      "name": "DHDATASTA",
+      "type": "INT",
+      "comment": "推送状态",
+      "values": {
+        "0": "新增",
+        "1": "更新"
+      },
+      "role": "dimension",
+      "tags": ["数据同步", "系统状态"]
+    },
+    {
+      "name": "auditor1",
+      "type": "VARCHAR(36)",
+      "comment": "处室负责人",
+      "role": "dimension",
+      "tags": ["审批信息", "负责人信息"]
+    },
+    {
+      "name": "person_count",
+      "type": "INT",
+      "comment": "人员数量",
+      "role": "metric",
+      "aggregation": "count",
+      "tags": ["统计指标", "数量统计"]
+    }
+  ],
+  "relationships": [
+    {
+      "from": "ytenant_id",
+      "to_table": "租户表",
+      "to_field": "id",
+      "type": "foreign_key",
+      "comment": "关联租户信息"
+    }
+  ],
+  "examples": [
+    {
+      "question": "查询内部员工的数量",
+      "sql": "SELECT COUNT(*) as person_count FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database WHERE is_internal = '1' AND dr = 0"
+    },
+    {
+      "question": "按性别统计人员分布情况",
+      "sql": "SELECT gender, COUNT(*) as person_count FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database WHERE dr = 0 GROUP BY gender"
+    },
+    {
+      "question": "查询最近一个月新增的人员信息",
+      "sql": "SELECT * FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database WHERE create_time >= ADD_MONTHS(TRUNC(SYSDATE), -1) AND dr = 0"
+    }
+  ],
+  "tags": ["人员管理", "人力资源", "审批流程", "基本信息", "工作信息"],
+},
+{
+  "db_name":"YJOA_APPSERVICE_DB",
+  "table_name": "t_yj_person_attendance",
+  "table_comment": "人员考勤记录表,记录人员的考勤打卡信息",
+  "columns": [
+    {
+      "name": "person_name",
+      "type": "VARCHAR(50)",
+      "comment": "人员姓名",
+      "role": "dimension",
+      "tags": ["基本信息", "身份标识"]
+    },
+    {
+      "name": "id",
+      "type": "VARCHAR(200)",
+      "comment": "主键ID",
+      "role": "dimension",
+      "tags": ["主键", "ID标识"]
+    },
+    {
+      "name": "person_id",
+      "type": "VARCHAR(200)",
+      "comment": "人员ID",
+      "role": "dimension",
+      "tags": ["人员标识", "关联信息"]
+    },
+    {
+      "name": "phone_number",
+      "type": "VARCHAR(50)",
+      "comment": "手机号码",
+      "role": "dimension",
+      "tags": ["联系方式", "通讯信息"]
+    },
+    {
+      "name": "attendance_time",
+      "type": "DATETIME(39)",
+      "comment": "考勤时间",
+      "role": "dimension",
+      "tags": ["时间信息", "考勤记录"]
+    },
+    {
+      "name": "attendance_address",
+      "type": "VARCHAR(200)",
+      "comment": "考勤地点",
+      "role": "dimension",
+      "tags": ["位置信息", "考勤记录"]
+    },
+    {
+      "name": "status",
+      "type": "INT",
+      "comment": "状态",
+      "value":{
+        "1":"在岗",
+        "2":"出差",
+        "3":"休假"
+      },
+      "role": "dimension",
+      "tags": ["状态信息", "考勤状态"]
+    },
+    {
+      "name": "original_id",
+      "type": "VARCHAR(200)",
+      "comment": "原数据ID",
+      "role": "dimension",
+      "tags": ["数据来源", "原始标识"]
+    },
+    {
+      "name": "source",
+      "type": "VARCHAR(50)",
+      "comment": "数据来源",
+      "role": "dimension",
+      "tags": ["数据来源", "系统标识"]
+    },
+    {
+      "name": "dr",
+      "type": "INT",
+      "comment": "逻辑删除标志",
+      "role": "dimension",
+      "tags": ["系统状态", "数据状态"]
+    },
+    {
+      "name": "create_time",
+      "type": "DATETIME(39)",
+      "comment": "创建时间",
+      "role": "dimension",
+      "tags": ["时间信息", "系统记录"]
+    },
+    {
+      "name": "enter_or_exit",
+      "type": "INT",
+      "comment": "进出类型",
+      "value":{
+        "1":"进",
+        "2":"出"
+      },
+      "role": "dimension",
+      "tags": ["考勤类型", "进出标识"]
+    },
+    {
+      "name": "access_control_point",
+      "type": "VARCHAR(50)",
+      "comment": "门禁点",
+      "role": "dimension",
+      "tags": ["位置信息", "门禁设备"]
+    },
+    {
+      "name": "bv_st",
+      "type": "VARCHAR(20)",
+      "comment": "上午打卡时间",
+      "role": "dimension",
+      "tags": ["时间信息", "业务时间"]
+    },
+    {
+      "name": "bv_et",
+      "type": "VARCHAR(20)",
+      "comment": "下午打卡时间",
+      "role": "dimension",
+      "tags": ["时间信息", "业务时间"]
+    },
+    {
+      "name": "bv_st_field",
+      "type": "VARCHAR(50)",
+      "comment": "午休前打卡时间",
+      "role": "dimension",
+      "tags": ["时间信息", "业务字段"]
+    },
+    {
+      "name": "bv_et_field",
+      "type": "VARCHAR(50)",
+      "comment": "午休后打卡时间",
+      "role": "dimension",
+      "tags": ["时间信息", "业务字段"]
+    },
+    {
+      "name": "bv_go_type",
+      "type": "VARCHAR(8)",
+      "comment": "打卡类型",
+      "role": "dimension",
+      "tags": ["业务类型", "分类信息"]
+    },
+  ],
+  "relationships": [
+    {
+      "from": "person_id",
+      "to_table": "t_pr3rl2oj_yj_person_database",
+      "to_field": "id",
+      "type": "foreign_key",
+      "comment": "关联人员基本信息表"
+    }
+  ],
+  "examples": [
+    {
+      "question": "查询今日考勤总人次",
+      "sql": "SELECT COUNT(*) as attendance_count FROM YJOA_APPSERVICE_DB.t_yj_person_attendance WHERE TO_CHAR(attendance_time, 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD') AND dr = '0'"
+    },
+    {
+      "question": "按人员统计本月考勤次数",
+      "sql": "SELECT person_name, COUNT(*) as attendance_count FROM YJOA_APPSERVICE_DB.t_yj_person_attendance WHERE TO_CHAR(attendance_time, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM') AND dr = '0' GROUP BY person_name, person_id"
+    },
+    {
+      "question": "查询最近一周的考勤记录",
+      "sql": "SELECT * FROM YJOA_APPSERVICE_DB.t_yj_person_attendance WHERE attendance_time >= SYSDATE - 7 AND dr = '0' ORDER BY attendance_time DESC"
+    },
+    {
+      "question": "统计各门禁点的考勤分布",
+      "sql": "SELECT access_control_point, COUNT(*) as attendance_count FROM YJOA_APPSERVICE_DB.t_yj_person_attendance WHERE dr = '0' GROUP BY access_control_point"
+    }
+  ],
+  "tags": ["考勤管理", "人员考勤", "门禁记录", "时间统计", "考勤分析"]
+},
+{
+  "db_name":"YJOA_APPSERVICE_DB",
+  "table_name": "t_yj_person_attendance_rules",
+  "table_comment": "人员考勤规则表,定义考勤时间规则和区域设置",
+  "columns": [
+    {
+      "name": "id",
+      "type": "VARCHAR(50)",
+      "comment": "主键ID",
+      "role": "dimension",
+      "tags": ["主键", "ID标识"]
+    },
+    {
+      "name": "morning_check_time",
+      "type": "VARCHAR(50)",
+      "comment": "上午打卡时间",
+      "role": "dimension",
+      "tags": ["时间规则", "考勤设置"]
+    },
+    {
+      "name": "afternoon_check_time",
+      "type": "VARCHAR(50)",
+      "comment": "下午打卡时间",
+      "role": "dimension",
+      "tags": ["时间规则", "考勤设置"]
+    },
+    {
+      "name": "before_lunch_time",
+      "type": "VARCHAR(50)",
+      "comment": "午餐前时间",
+      "role": "dimension",
+      "tags": ["时间规则", "考勤分段"]
+    },
+    {
+      "name": "after_lunch_time",
+      "type": "VARCHAR(50)",
+      "comment": "午餐后时间",
+      "role": "dimension",
+      "tags": ["时间规则", "考勤分段"]
+    },
+    {
+      "name": "region",
+      "type": "VARCHAR(50)",
+      "comment": "区域",
+      "value":{
+        "1":"北京",
+        "2":"成都",
+        "3":"秭归",
+        "4":"拉萨",
+        "5": "林芝"
+      },
+      "role": "dimension",
+      "tags": ["区域设置", "地理信息"]
+    },
+  ],
+  "relationships": [
+    {
+      "from": "region",
+      "to_table": "区域配置表",
+      "to_field": "region_code",
+      "type": "foreign_key",
+      "comment": "关联区域配置信息"
+    }
+  ],
+  "examples": [
+    {
+      "question": "查询所有考勤规则列表",
+      "sql": "SELECT * FROM t_yj_person_attendance_rules"
+    },
+    {
+      "question": "统计各区域的考勤规则数量",
+      "sql": "SELECT region, COUNT(*) as rule_count FROM YJOA_APPSERVICE_DB.t_yj_person_attendance_rules GROUP BY region"
+    },
+    {
+      "question": "查询特定区域的考勤时间设置",
+      "sql": "SELECT morning_check_time, afternoon_check_time, before_lunch_time, after_lunch_time FROM YJOA_APPSERVICE_DB.t_yj_person_attendance_rules WHERE region = '北京'"
+    },
+    {
+      "question": "检查是否存在重复的考勤规则",
+      "sql": "SELECT region, morning_check_time, afternoon_check_time, COUNT(*) as rule_count FROM YJOA_APPSERVICE_DB.t_yj_person_attendance_rules GROUP BY region, morning_check_time, afternoon_check_time HAVING COUNT(*) > 1"
+    }
+  ],
+  "tags": ["考勤规则", "时间设置", "区域配置", "考勤管理", "规则定义"]
+},
+{
+  "db_name":"YJOA_APPSERVICE_DB",
+  "table_name": "t_yj_person_status",
+  "table_comment": "人员状态记录表,记录人员每日考勤状态信息包括西藏地区标识",
+  "columns": [
+    {
+      "name": "id",
+      "type": "BIGINT",
+      "comment": "主键ID",
+      "role": "dimension",
+      "tags": ["主键", "id标识"]
+    },
+    {
+      "name": "person_id",
+      "type": "VARCHAR(50)",
+      "comment": "人员ID",
+      "role": "dimension",
+      "tags": ["人员标识", "关联信息"]
+    },
+    {
+      "name": "status",
+      "type": "VARCHAR(10)",
+      "comment": "人员状态",
+      "value":{
+        "1001":"在岗",
+        "1002":"出差",
+        "1003":"休假",
+        "1005":"旷工",
+        "1006":"迟到早退",
+        "1007":"休息日",
+        "4001":"am在岗pm缺勤",
+        "4002":"am缺勤pm在岗",
+        "6001":"am在岗pm早退",
+        "6002":"am迟到pm在岗",
+        "6004":"am迟到pm缺勤",
+        "4006":"am缺勤pm早退"
+      },
+      "role": "dimension",
+      "tags": ["状态信息", "人员状态"]
+    },
+    {
+      "name": "date_value",
+      "type": "VARCHAR(20)",
+      "comment": "日期值",
+      "role": "dimension",
+      "tags": ["时间信息", "日期记录"]
+    },
+    {
+      "name": "dr",
+      "type": "INT",
+      "comment": "逻辑删除标志",
+      "role": "dimension",
+      "tags": ["系统状态", "数据状态"]
+    },
+    {
+      "name": "create_time",
+      "type": "DATETIME(39)",
+      "comment": "创建时间",
+      "role": "dimension",
+      "tags": ["时间信息", "系统记录"]
+    },
+    {
+      "name": "is_in_tibet",
+      "type": "INT",
+      "comment": "是否在西藏地区",
+      "role": "dimension",
+      "tags": ["地区标识", "地理位置"]
+    }
+  ],
+  "relationships": [
+    {
+      "from": "person_id",
+      "to_table": "t_pr3rl2oj_yj_person_database",
+      "to_field": "id",
+      "type": "foreign_key",
+      "comment": "关联人员基本信息表"
+    }
+  ],
+  "examples": [
+    {
+      "question": "查询今日人员状态记录数量",
+      "sql": "SELECT COUNT(*) as status_count FROM YJOA_APPSERVICE_DB.t_yj_person_status WHERE date_value = DATE_FORMAT(CURRENT_DATE(), '%Y-%m-%d') AND dr = 0"
+    },
+    {
+      "question": "统计各状态的人员分布",
+      "sql": "SELECT status, COUNT(*) as status_count FROM YJOA_APPSERVICE_DB.t_yj_person_status WHERE dr = '0' GROUP BY status"
+    },
+    {
+      "question": "查询在西藏地区的人员数量",
+      "sql": "SELECT COUNT(DISTINCT person_id) as tibet_person_count FROM YJOA_APPSERVICE_DB.t_yj_person_status WHERE is_in_tibet = 1 AND dr = 0"
+    },
+    {
+      "question": "按日期统计人员状态记录",
+      "sql": "SELECT date_value, status, COUNT(*) as status_count FROM YJOA_APPSERVICE_DB.t_yj_person_status WHERE dr = '0' GROUP BY date_value, status ORDER BY date_value DESC"
+    },
+    {
+      "question": "查询特定人员的状态历史记录",
+      "sql": "SELECT date_value, status, is_in_tibet FROM YJOA_APPSERVICE_DB.t_yj_person_status WHERE person_id = '123' AND dr = 0 ORDER BY date_value DESC"
+    }
+  ],
+  "tags": ["人员状态", "状态记录", "地区管理", "西藏标识", "每日状态"]
+}
+]
+"""
 
 train_document='''
                 语法为达梦数据库语法;
                 查询地址,籍贯,公司,单位时,尽量使用like查询;
                 查询人员信息时,由于数据表字段过多。只需要展示人员关键信息字段,id,工号,姓名,单位以及用户问题中需要查询的字段;
                 表字段信息以及字段枚举信息:
-                
-                YJOA_APPSERVICE_DB."t_pr3rl2oj_yj_person_database"(人员信息表);
-                    
-                        person_status: 人员状态 (1:草稿,2:审批中,3:制卡中,4:已入库,5:停用);
-                        pass_type: 通行证类型 (
-                            1:集团公司员工,
-                            2:借调人员,
-                            3:借用人员,
-                            4:外部监管人员,
-                            5:外协服务人员,
-                            6:工勤人员,
-                            7:来访人员
-                        );
-                        person_type: 人员类型 (
-                            YG:正式员工,
-                            PQ:劳务派遣人员,
-                            QT:其他柔性引进人员,
-                            WHZ:合作单位,
-                            WLS:临时访客,
-                            WQT:其他外部人员
-                        );
-                        id_card_type: 身份证件类型 (1:身份证,2:护照,3:港澳通行证);
-                        highest_education: 最高学历 (
-                            1:初中
-                            2:高中
-                            3:中专
-                            4:技校
-                            5:职高
-                            6:大专
-                            7:本科
-                            8:硕士
-                            9:博士
-                        );
-                        highest_degree: 最高学位 (1:学士学位,2:硕士学位,3:博士学位,4:无);
-                    
-                
         '''
\ No newline at end of file
diff --git a/util/utils.py b/util/utils.py
index b01a0f9..93c7429 100644
--- a/util/utils.py
+++ b/util/utils.py
@@ -3,7 +3,7 @@ from typing import Optional
 from orjson import orjson
 
 keywords = {
-    "gender":{"1":"男","2":"女"},
+    # "gender":{"1":"男","2":"女"},
     "person_status":{"1":"草稿","2":"审批中","3":"制卡中","4":"已入库","5":"停用"},
     "pass_type":{"1":"集团公司员工","2":"借调人员","3":"借用人员","4":"外部监管人员","5":"外协服务人员","6":"工勤人员","7":"来访人员"},
     "person_type": {"YG":"正式员工","PQ":"劳务派遣人员","QT":"其他柔性引进人员","WHZ":"合作单位","WLS":"临时访客","WQT":"其他外部人员"},
@@ -90,10 +90,12 @@ def deal_result(data: list) -> list:
             for key, map_value in keywords.items():
                 if key in item:
                     new_key = item.get(key)
-                    item[key] = map_value[new_key]
+                    if new_key in map_value:
+                        item[key] = map_value[new_key]
         print("data----------{0}".format(data))
         return data
     except Exception as e:
+        print("1111111111111111111111111111111111111111",e)
         raise Exception(f"sql执行结果处理失败:{str(e)}")