# 谈话前安全风险评估表数据设计说明 ## 一、设计概述 本文档说明"谈话前安全风险评估表"模板相关的数据字段设计,以及如何将数据存入数据库。 ## 二、数据表结构 ### 2.1 相关数据表 1. **f_polic_file_config** - 文件模板配置表 - 存储文档模板的基本信息 - 字段:id, tenant_id, parent_id, name, input_data, file_path, created_time, created_by, updated_time, updated_by, state 2. **f_polic_field** - 字段表 - 存储字段定义信息 - 字段:id, tenant_id, name, filed_code, field_type, created_time, created_by, updated_time, updated_by, state - 注意:表中字段名为 `filed_code`(拼写错误,但需保持一致) 3. **f_polic_file_field** - 文件和字段关联表 - 存储文件模板与字段的关联关系 - 字段:id, tenant_id, filed_id, file_id, created_time, created_by, updated_time, updated_by, state ### 2.2 字段类型说明 - `field_type = 1`: 输入字段(用于AI解析的原始数据) - `field_type = 2`: 输出字段(AI解析后生成的结构化数据,用于填充模板) ## 三、谈话前安全风险评估表字段设计 ### 3.1 输出字段(用于填充模板) 根据风险评估需求,设计了以下11个输出字段,所有字段都配置了默认值: | 字段名称 | 字段编码 (field_code) | 说明 | 默认值 | 示例 | |---------|---------------------|------|--------|------| | 被核查人员家庭情况 | target_family_situation | 被核查人员家庭情况 | 家庭关系和谐稳定 | 家庭关系和谐稳定 | | 被核查人员社会关系 | target_social_relations | 被核查人员社会关系 | 社会交往较多,人机关系基本正常 | 社会交往较多,人机关系基本正常 | | 被核查人员健康状况 | target_health_status | 被核查人员健康状况 | 良好 | 良好 | | 被核查人员性格特征 | target_personality | 被核查人员性格特征 | 开朗 | 开朗 | | 被核查人员承受能力 | target_tolerance | 被核查人员承受能力 | 较强 | 较强 | | 被核查人员涉及问题严重程度 | target_issue_severity | 被核查人员涉及问题严重程度 | 较轻 | 较轻 | | 被核查人员涉及其他问题的可能性 | target_other_issues_possibility | 被核查人员涉及其他问题的可能性 | 较小 | 较小 | | 被核查人员此前被审查情况 | target_previous_investigation | 被核查人员此前被审查情况 | 无 | 无 | | 被核查人员社会负面事件 | target_negative_events | 被核查人员社会负面事件 | 无 | 无 | | 被核查人员其他情况 | target_other_situation | 被核查人员其他情况 | 无 | 无 | | 风险等级 | risk_level | 风险等级 | 低 | 低 | ### 3.2 输入字段(用于AI解析) 该模板可以使用通用的输入字段: | 字段名称 | 字段编码 (field_code) | 说明 | |---------|---------------------|------| | 线索信息 | clue_info | 线索信息(用于AI解析) | | 被核查人员工作基本情况线索 | target_basic_info_clue | 被核查人员工作基本情况线索(用于AI解析) | ### 3.3 Word模板占位符映射 Word模板中使用的占位符格式为 `{{field_code}}`,与字段编码的对应关系: - `{{target_family_situation}}` → 被核查人员家庭情况 - `{{target_social_relations}}` → 被核查人员社会关系 - `{{target_health_status}}` → 被核查人员健康状况 - `{{target_personality}}` → 被核查人员性格特征 - `{{target_tolerance}}` → 被核查人员承受能力 - `{{target_issue_severity}}` → 被核查人员涉及问题严重程度 - `{{target_other_issues_possibility}}` → 被核查人员涉及其他问题的可能性 - `{{target_previous_investigation}}` → 被核查人员此前被审查情况 - `{{target_negative_events}}` → 被核查人员社会负面事件 - `{{target_other_situation}}` → 被核查人员其他情况 - `{{risk_level}}` → 风险等级 ## 四、文件配置信息 ### 4.1 文件配置记录 - **名称**: 谈话前安全风险评估表 - **模板编码 (template_code)**: `PRE_INTERVIEW_RISK_ASSESSMENT` - **业务类型 (business_type)**: `INVESTIGATION`(调查核实) - **文件路径 (file_path)**: `/templates/谈话前安全风险评估表模板.docx`(MinIO相对路径) ### 4.2 配置存储 文件配置的 `input_data` 字段存储JSON格式数据: ```json { "template_code": "PRE_INTERVIEW_RISK_ASSESSMENT", "business_type": "INVESTIGATION" } ``` ## 五、默认值机制 ### 5.1 默认值配置 所有风险评估字段都配置了默认值,存储在 `config/field_defaults.json` 配置文件中。 ### 5.2 默认值说明 **重要说明**:系统在AI提取阶段不会自动应用默认值。如果AI未提取到字段值,系统会返回空字符串。 默认值信息提供给前端开发人员,前端可以根据业务需求决定是否在界面上显示默认值或应用默认值。 ### 5.3 默认值应用规则(前端参考) 1. **AI提取阶段**:如果AI从输入文本中提取到字段值,则使用提取的值 2. **空值处理**:如果AI提取的字段值为空或未提取到,系统返回空字符串 3. **前端应用**:前端可以根据业务需求,在用户界面中显示默认值提示,或允许用户选择应用默认值 4. **默认值优先级**:AI提取的值优先于默认值 ### 5.3 默认值配置位置 默认值配置文件:`config/field_defaults.json` ```json { "field_defaults": { "target_family_situation": "家庭关系和谐稳定", "target_social_relations": "社会交往较多,人机关系基本正常", "target_health_status": "良好", "target_personality": "开朗", "target_tolerance": "较强", "target_issue_severity": "较轻", "target_other_issues_possibility": "较小", "target_previous_investigation": "无", "target_negative_events": "无", "target_other_situation": "无", "risk_level": "低" } } ``` ## 六、使用说明 ### 6.1 初始化脚本 使用 `init_pre_interview_risk_assessment_fields.py` 脚本初始化数据: ```bash python init_pre_interview_risk_assessment_fields.py ``` 脚本功能: 1. 创建11个字段记录(输出字段) 2. 创建文件配置记录 3. 建立文件和字段的关联关系 ### 6.2 接口调用示例 #### 1. AI解析接口 (`/ai/extract`) ```json { "businessType": "INVESTIGATION", "inputData": [ { "fieldCode": "clue_info", "fieldValue": "被举报用户名称是张三,年龄30岁" }, { "fieldCode": "target_basic_info_clue", "fieldValue": "张三,男,汉族,1980年5月出生,山西太原人,本科学历,2000年参加工作,2005年加入中国共产党。" } ], "outputData": [ {"fieldCode": "target_family_situation"}, {"fieldCode": "target_social_relations"}, {"fieldCode": "target_health_status"}, {"fieldCode": "target_personality"}, {"fieldCode": "target_tolerance"}, {"fieldCode": "target_issue_severity"}, {"fieldCode": "target_other_issues_possibility"}, {"fieldCode": "target_previous_investigation"}, {"fieldCode": "target_negative_events"}, {"fieldCode": "target_other_situation"}, {"fieldCode": "risk_level"} ] } ``` **返回结果**(如果AI未提取到值,返回空字符串,前端可根据需要应用默认值): ```json { "code": 0, "data": { "outData": [ { "fieldCode": "target_family_situation", "fieldValue": "" }, { "fieldCode": "target_social_relations", "fieldValue": "" }, { "fieldCode": "target_health_status", "fieldValue": "" }, { "fieldCode": "target_personality", "fieldValue": "" }, { "fieldCode": "target_tolerance", "fieldValue": "" }, { "fieldCode": "target_issue_severity", "fieldValue": "" }, { "fieldCode": "target_other_issues_possibility", "fieldValue": "" }, { "fieldCode": "target_previous_investigation", "fieldValue": "" }, { "fieldCode": "target_negative_events", "fieldValue": "" }, { "fieldCode": "target_other_situation", "fieldValue": "" }, { "fieldCode": "risk_level", "fieldValue": "" } ] }, "msg": "ok", "isSuccess": true } ``` #### 2. 文档生成接口 (`/ai/generate-document`) ```json { "templateCode": "PRE_INTERVIEW_RISK_ASSESSMENT", "businessType": "INVESTIGATION", "inputData": [ { "fieldCode": "target_family_situation", "fieldValue": "家庭关系和谐稳定" }, { "fieldCode": "target_social_relations", "fieldValue": "社会交往较多,人机关系基本正常" }, { "fieldCode": "target_health_status", "fieldValue": "良好" }, { "fieldCode": "target_personality", "fieldValue": "开朗" }, { "fieldCode": "target_tolerance", "fieldValue": "较强" }, { "fieldCode": "target_issue_severity", "fieldValue": "较轻" }, { "fieldCode": "target_other_issues_possibility", "fieldValue": "较小" }, { "fieldCode": "target_previous_investigation", "fieldValue": "无" }, { "fieldCode": "target_negative_events", "fieldValue": "无" }, { "fieldCode": "target_other_situation", "fieldValue": "无" }, { "fieldCode": "risk_level", "fieldValue": "低" } ], "fpolicFieldParamFileList": [ { "fileId": 1764656918061150, "fileName": "谈话前安全风险评估表.doc" } ] } ``` ## 七、注意事项 1. **字段编码一致性**: 确保Word模板中的占位符 `{{field_code}}` 与数据库中的 `filed_code` 字段值完全一致。 2. **默认值机制**: - 系统在AI提取阶段不会自动应用默认值 - 如果AI提取到值,则使用AI提取的值 - 如果AI未提取到值或值为空,系统返回空字符串 - 默认值信息提供给前端,前端可根据业务需求决定是否应用 3. **字段类型**: - 输入字段(field_type=1)用于接收用户输入的原始数据,供AI解析使用 - 输出字段(field_type=2)用于存储AI解析后的结构化数据,用于填充模板 4. **文件路径**: `f_polic_file_config` 表中的 `file_path` 存储的是MinIO的相对路径,不是绝对路径。 5. **状态字段**: - `state = 0` 表示未启用 - `state = 1` 表示启用 6. **数据去重**: 初始化脚本会自动检查数据是否已存在,避免重复创建。 ## 八、数据库连接信息 - **IP地址**: 152.136.177.240 - **端口**: 5012 - **用户名**: finyx - **密码**: 6QsGK6MpePZDE57Z - **数据库名称**: finyx ## 九、相关文件 - `init_pre_interview_risk_assessment_fields.py` - 数据初始化脚本 - `config/field_defaults.json` - 字段默认值配置文件 - `services/field_service.py` - 字段服务(包含默认值逻辑) - `app.py` - API接口(包含默认值应用逻辑) - `模板/谈话前安全风险评估表模板.docx` - Word模板文件