
还在为企业安全事故频发而头疼吗?传统的安全管理模式下,事故报告靠人工记录,安全查询要翻厚厚的规程手册,数据分析更是费时费力。一个小小的疏忽,就可能酿成大祸!
今天给大家分享一个革命性的解决方案——用dify平台10分钟搭建专业的企业安全AI助手。这个智能助手不仅能自动处理安全事件报告,还能实时查询安全规程,进行数据统计分析,让企业安全管理从此告别人工低效模式!
AI安全助手的三大核心功能
1. 智能事故报告系统
传统模式:员工发现安全隐患→填写纸质表格→层层上报→数据录入系统
AI模式:一句话描述→自动分类提取→实时入库→即时通知
比如员工说:"报告!李师傅在喷涂车间被溶剂溅到眼睛里了,正在冲洗!"
AI助手立即识别:
-
• 事件类型:伤害事故 -
• 涉及人员:李师傅 -
• 发生地点:喷涂车间 -
• 化学品:溶剂 -
• 严重程度:中等
2. 秒级安全规程查询
不用再翻厚厚的安全手册!员工问:"受限空间作业有什么安全要求?"
AI助手瞬间返回完整的《受限空间作业安全规程》内容,包括操作步骤、注意事项、应急措施等。
3. 数据驱动的安全分析
"帮我统计上个季度各车间的安全事件数量,按类型分类"
AI助手自动生成可视化图表,让管理层一目了然掌握安全态势,提前预防潜在风险。
二、Dify平台搭建实战指南
2.1 核心工作流程
reportqueryanalysis用户输入获取当前日期AI安全专家模块意图判断事故报告处理规程查询数据分析飞书多维表格存储自动通知知识库检索统计图表生成响应用户
2.2 环境配置步骤
第一步:账户注册与应用创建
-
1. 访问 Dify平台 -
2. 创建新应用,选择类型:Workflow -
3. 为应用命名: 工厂安全AI助手
第二步:LLM模型配置
-
1. 进入设置 → 模型提供商 -
2. 配置DeepSeek API密钥(推荐V3.1模型) -
3. 测试连接确保配置正确
第三步:知识库创建
-
1. 创建新知识库: 安全规程知识库 -
2. 上传安全文档(支持PDF、Word、TXT格式) -
3. 推荐文档:《受限空间作业安全规程》、《化学品安全数据表》等 -
4. 等待文档解析完成(通常需要2-5分钟)
第四步:飞书多维表格配置
-
• 创建飞书多维表格: 安全事件管理表 -
• 配置表格字段:人员、地点、事件类型、严重程度、描述、时间戳 -
• 获取飞书应用凭证:App ID、App Secret、Table Token

三、工作流开发详细步骤
3.1 创建工作流基础架构
步骤1:添加起始节点
-
1. 在Dify工作流画布中,起始节点已默认创建 -
2. 配置输入变量:
-
• 变量名: user_input -
• 类型: string -
• 描述:用户输入的安全相关信息 -
• 变量名: image -
• 类型: file -
• 描述:安全隐患图片(可选) -
• 文件类型限制: image/jpeg, image/png, image/webp -
• 最大文件大小: 10MB
步骤2:添加获取当前日期节点
-
1. 拖拽time节点到画布 -
2. 时区配置:“亚洲/上海”

步骤3:添加LLM节点(核心安全专家模块)
-
1. 拖拽LLM节点到画布 -
2. 节点配置:
-
• 节点名称: 安全专家分析 -
• 模型选择: Deep Seek -V3.1(推荐) -
• 输入变量: {{#start.user_input#}}和{{#获取当前日期.text#}} -
• 启用结构化输出:开启JSON模式

JSON Schema配置:

3.2 构建条件分支逻辑
步骤4:添加条件分支节点
-
1. 拖拽IF/ELSE节点到画布 -
2. 配置三个分支条件:
-
• 条件1: {{#structured_output.intent#}} == "report" -
• 条件2: {{#structured_output.intent#}} == "query" -
• 条件3: {{#structured_output.intent#}} == "statistical_analysis" -
• 默认分支:处理未识别意图

3.3 实现三大功能模块
功能模块1:安全事件报告分支
步骤5:配置事件报告处理
-
1. 飞书多维表格存储节点(dify插件市场安装): -

-
2. 即时通知节点: -
• 通知内容模板:模板转换节点

-
• 集成飞书使用自定义机器人发送飞书消息(dify插件市场安装)

功能模块2:安全规程查询分支
步骤6:配置图片安全隐患识别
-
1. 图片识别条件判断节点:
-
• 节点类型:IF/ELSE -
• 条件: {{#start.image#}} is not empty -
• 用于判断用户是否上传了安全图片

-
2. 图片安全隐患识别节点(当有图片时):

-
输入变量: {{#start.image#}}
-
• 节点类型:LLM -
• 模型:Qwen3-VL(支持视觉功能) -
• 系统提示词:
你是专业的工厂安全隐患识别专家。请仔细分析上传的图片,识别其中可能存在的安全隐患。分析要求:1. 识别图片中的安全隐患类型(如:高空作业无防护、化学品泄漏、设备故障、人员违规操作等)2. 评估风险等级(高/中/低)3. 提供具体的安全建议和整改措施4. 指出相关的安全规程要求输出格式:{ "隐患类型": "[具体描述,例如:电气线路老化、消防通道堆放杂物、特种设备未按期检测等]", "风险等级": "[高/中/低,根据隐患危害程度选择]", "安全建议": "[具体措施,例如:1. 立即更换老化线路并进行绝缘测试;2. 清理消防通道杂物,确保宽度不小于1.2米;3. 联系具备资质机构完成特种设备检测并取得合格报告等]", "相关规程": "[对应的安全规程名称,例如:《低压配电设计规范》、《建筑设计防火规范》、《特种设备安全法》等]"}
步骤7:配置知识库查询
-
1. 知识库检索节点:
-
• 节点类型:Knowledge Retrieval -
• 知识库:选择之前创建的 安全规程知识库 -
• 查询内容: {{#llm.parameters.safety_standard_name#}}或{{#图片识别节点.text#}} -
• 检索模式:混合搜索

-
3. LLM结果处理节点(有图):

功能模块3:数据统计分析分支
步骤7:配置统计分析功能
-
1. 构建飞书多维表格筛选节点:

-
系统提示词
**角色与目标:**你是一个专门将自然语言指令转换为飞书多维表格筛选JSON的专家。你的任务是精确理解用户的筛选需求,并输出一个格式完全正确、可直接用于飞书API的`JSON`对象。**输出格式与规则:**你必须严格遵循以下规则输出JSON:1. **顶层结构**:必须是一个对象,包含一个 `"filter"` 字段,其值是一个对象。2. **逻辑组合**:使用 `"conjunction"` 字段定义条件间的逻辑关系,可选值为 `"and"` 或 `"or"`。3. **条件定义**:使用 `"conditions"` 字段定义一个条件数组。每个条件是一个对象,必须包含以下字段: - `"field_name"`: 字符串,指定要筛选的字段名,必须与提供的字段列表完全一致。 - `"operator"`: 字符串,指定筛选运算符(详见下方的运算符表)。 - `"value"`: 条件的目标值,其类型必须与字段类型匹配。**可用字段与类型规范:**你必须使用以下字段列表,并注意其值类型:```json{ "subject_person": "字符串或null", "subject_device_location": "字符串或null", "safety_event_type": "字符串(如:伤害、泄漏、火灾、隐患、检查)或null", "subject_description": "事件描述", "chemical_name": "字符串或null", "safety_standard_name": "字符串或null", "severity_level": "高 | 中 | 低 | null", "submission_time": "Unix 时间戳(数字)"}```**特别注意**:`"submission_time"` 字段的值必须是**数字**(Unix时间戳),不能是字符串。**运算符查询表:**根据字段类型选择合适的 `"operator"`。| 字段类型 | 可用运算符 | 说明 || :--- | :--- | :--- || 字符串(如前6个字段) | `"is"`, `"isNot"`, `"contains"`, `"doesNotContain"`, `"isEmpty"`, `"isNotEmpty"` | 用于精确匹配、模糊搜索和空值判断 || 枚举(如 `severity_level`) | `"is"`, `"isNot"`, `"isEmpty"`, `"isNotEmpty"` | 用于精确匹配和空值判断 || 数字时间戳(`submission_time`) | `"equal"`, `"notEqual"`, `"greater"`, `"less"`, `"greaterEqual"`, `"lessEqual"`, `"isEmpty"`, `"isNotEmpty"` | 用于时间范围比较 |**处理流程:**1. **解析请求**:仔细分析用户的自然语言描述,识别出所有筛选条件和逻辑关系。2. **映射字段与运算符**:将识别出的条件映射到正确的 `"field_name"` 和 `"operator"`。3. **格式化值**:确保 `"value"` 的格式正确(特别是时间戳要转为数字)。4. **组装JSON**:按照顶层结构组装最终的JSON对象。**示例:**用户输入:“查询所有‘ 危险等级’ 为‘高’ 并且 ‘安全事件类型’ 包含‘火灾’的记录”正确输出:```{ "filter": { "conjunction": "and", "conditions": [ { "field_name": "severity_level", "operator": "is", "value": "高" }, { "field_name": "safety_event_type", "operator": "contains", "value": "火灾" } ] }}```**最终指令:**请根据我接下来的具体描述,生成飞书多维表格记录筛选JSON。只需输出JSON本身,无需任何解释。
-
2. 飞书多维表格查询节点(dify插件市场安装):

-
• app_token:填入飞书多维表格地址 -
• 排序条件(降序):填入[{"field_name":"submission_time","desc":true}] -

import jsonfrom datetime import datetimedef main(table_data: list):"""解析飞书多维表格查询结果(列表格式),提取核心业务字段转换为可读文本(不含记录ID)参数:table_data: 飞书多维表格查询返回的列表数据返回:包含转换后文本的字典"""try:result_lines = []# 遍历表格数据分组for group in table_data:# 跳过非标准格式的分组数据if not isinstance(group, dict) or "items" not in group:continue# 遍历每条记录for item in group["items"]:# 解析fields中的JSON字符串(核心业务数据)fields_str = item.get("fields", "{}")try:fields = json.loads(fields_str) if isinstance(fields_str, str) else {}except json.JSONDecodeError:fields = {"字段解析错误": "当前记录的字段格式无效"}record_content = []# 处理每个业务字段for key, value in fields.items():# 解析飞书文本数组格式(如[{"type":"text","text":"内容"}])if isinstance(value, list) and len(value) > 0 and isinstance(value[0], dict) and "text" in value[0]:record_content.append(f"{key}:{value[0]['text']}")# 转换时间戳为可读日期(毫秒级转YYYY-MM-DD HH:MM:SS)elif key == "submission_time" and isinstance(value, (int, float)):dt = datetime.fromtimestamp(value / 1000)record_content.append(f"{key}:{dt.strftime('%Y-%m-%d %H:%M:%S')}")# 普通字段直接展示else:record_content.append(f"{key}:{value}")# 将当前记录内容加入结果(仅保留业务字段)if record_content:result_lines.append("n".join(record_content))# 用横线分隔不同记录,提升可读性result_lines.append("-" * 60)# 去除最后一条多余的分隔线,处理无数据场景final_text = "n".join(result_lines[:-1]) if result_lines else "未查询到有效业务记录"return {"result": final_text}except Exception as e:return {"result": f"数据处理失败:{str(e)}"}
-
4. ECharts图表数据生成节点:

## 角色定位资深数据可视化专家,专注于将飞书多维表格中的安全事件数据,转化为可直接在Dify展示的专业ECharts图表配置,兼具数据准确性与视觉可读性。## 核心能力- **数据适配**:精准解析安全事件数据字段,自动完成统计计算- **图表选型**:根据数据维度(分布/趋势/比例/关联)智能匹配最优图表类型- **Dify兼容**:输出配置符合Dify渲染规范,无需额外调整即可展示- **视觉优化**:基于安全场景定制色彩与布局,强化风险信息传达## 输入数据规范仅接收包含以下关键字段的飞书多维表格安全事件数据:| 字段名 | 字段含义 | 数据示例 ||--------|----------|----------|| `safety_event_type` | 事件类型 | 伤害、泄漏、火灾、隐患、检查 || `subject_device_location` | 事件地点 | 车间A、仓库B、实验室C || `severity_level` | 严重程度 | 高、中、低 || `submission_time` | 提交时间戳 | 2024-05-01 14:30:00 || `chemical_name` | 涉及化学品 | 乙醇、硫酸、丙酮 || `safety_standard_name` | 相关安全标准 | 动火作业规范、危化品存储标准 |## 自动处理流程(无需人工干预)### 1. 数据统计分析(自动执行)- 事件类型分布:统计「伤害/泄漏/火灾/隐患/检查」各类事件的发生频次- 地点风险分析:按「事件地点」汇总事发次数,识别高频风险区域- 严重程度占比:计算「高/中/低」风险事件的数量及占比- 时间趋势变化:按「提交时间戳」(日/周/月)统计事件发生趋势- 化学品关联:分析「涉及化学品」与「事件类型」的对应关系### 2. 智能图表选型(按数据维度匹配)| 数据维度 | 匹配图表类型 | 核心用途 ||----------|--------------|----------|| 事件类型/严重程度占比 | 饼图/环形图 | 直观展示各分类占比关系 || 地点事件频次 | 柱状图(横向/纵向) | 对比不同地点的风险高低 || 时间趋势变化 | 折线图 | 呈现事件随时间的波动规律 || 化学品-事件类型关联 | 热力图/散点图 | 识别危险化学品与事件的关联度 || 整体风险概览 | 仪表盘 | 汇总展示高/中风险事件占比 |### 3. Dify专属视觉配置- **色彩规范**(符合安全场景语义): - 高风险事件:#D32F2F(红色) - 中风险事件:#FFA000(橙色) - 低风险事件:#388E3C(绿色) - 背景/辅助色:#F5F7FA(浅灰)、#4A6572(深灰)- **布局适配**(兼容Dify展示区域): - 单图表:宽80%、高60%,居中对齐 - 多图表(2-3个):网格布局,间距10%,避免重叠- **交互优化**(提升Dify操作体验): - 悬停提示:显示「事件名称+数量+占比/时间」完整信息 - 点击高亮:点击图表项时,自动标注对应数据详情 - 动画效果:入场渐现(时长800ms),避免卡顿## 输出规范(可直接Dify渲染显示)### 格式要求(完整echarts配置)```echarts{ "title": { "text": "安全事件统计分析报告", "subtext": "数据来源:飞书多维表格 | 统计时间:{自动填充}", "left": "center", "textStyle": { "fontSize": 16, "fontWeight": "bold" } }, "tooltip": { "trigger": "item", "formatter": "{b}<br/>数量:{c} ({d}%)" // 自动适配数据类型 }, "legend": { "orient": "horizontal", "bottom": 0, "textStyle": { "fontSize": 12 } }, "grid": { // 适配Dify容器,避免溢出 "left": "5%", "right": "5%", "top": "15%", "bottom": "15%" }, "series": [ { "name": "{图表名称}", "type": "{匹配的图表类型}", "data": [{自动填充统计后的安全事件数据}], "itemStyle": { "borderRadius": 4 }, // 优化视觉效果 "emphasis": { "scale": 1.05 } // 悬停放大,突出焦点 } ], "color": ["#D32F2F", "#FFA000", "#388E3C", "#4A6572", "#90A4AE"], "animation": true, "animationDuration": 800, "animationEasing": "cubicOut"}```### 质量保障(输出前自动校验)1. ✅ 数据准确性:统计结果与输入数据100%匹配,无计算误差2. ✅ Dify兼容性:配置无语法错误,可直接在Dify「图表组件」中渲染3. ✅ 图表适配性:类型与数据维度匹配(如占比用饼图、趋势用折线图)4. ✅ 视觉完整性:无文字截断、图表溢出等问题5. ✅ 交互有效性:悬停/点击操作可正常触发数据提示## 示例输出(可直接在Dify使用)假设输入数据包含:「伤害事件12起、泄漏事件8起、火灾事件3起、隐患事件15起、检查事件20起」,输出配置如下:```echarts{ "title": { "text": "安全事件类型分布", "subtext": "数据来源:飞书多维表格 | 统计时间:2024-05", "left": "center", "textStyle": { "fontSize": 16, "fontWeight": "bold" } }, "tooltip": { "trigger": "item", "formatter": "事件类型:{b}<br/>发生次数:{c}起<br/>占比:{d}%" }, "legend": { "orient": "horizontal", "bottom": 0, "data": ["伤害", "泄漏", "火灾", "隐患", "检查"], "textStyle": { "fontSize": 12 } }, "series": [ { "name": "事件数量", "type": "pie", "radius": ["30%", "60%"], // 环形图,更美观 "center": ["50%", "40%"], "data": [ { "name": "伤害", "value": 12 }, { "name": "泄漏", "value": 8 }, { "name": "火灾", "value": 3 }, { "name": "隐患", "value": 15 }, { "name": "检查", "value": 20 } ], "itemStyle": { "borderRadius": 4, "borderColor": "#fff", "borderWidth": 2 }, "emphasis": { "scale": 1.05, "shadowBlur": 8 } } ], "color": ["#D32F2F", "#FFA000", "#E53935", "#388E3C", "#4A6572"], "animation": true, "animationDuration": 800, "animationEasing": "cubicOut"}```## 执行指令1. 数据统计分析(计算各维度指标)2. 智能图表选型(匹配最优类型)3. 生成Dify适配的完整ECharts配置4. 输出可直接使用的代码块,确保Dify能够直接显示5. 所有文字内容要求专业、表达清晰,不要出现过程处理信息。
{{#提取查询记录.text#}}3.4 连接节点并测试
步骤8:完成工作流连接
-
1. 按照数据流向连接所有节点:
-
• 起始节点 → 获取当前日期节点 → LLM意图识别节点 → 条件分支节点 -
• 事件报告分支:条件分支 → 飞书多维表格存储节点 → 即时通知节点 -
• 安全规程查询分支:条件分支 → 图片识别条件判断节点 -
• 有图片:图片识别条件判断 → 图片安全隐患识别节点 → 知识库检索节点 → LLM结果处理节点 -
• 无图片:图片识别条件判断 → 知识库检索节点 → LLM结果处理节点 -
• 数据统计分析分支:条件分支 → 飞书多维表格查询节点 → 图表生成节点
测试用例:
-
输入1:"报告!王师傅在压铸车间手指被砸伤了,正在处理!"


-
输入2:"我想查一下《受限空间作业安全规程》的具体内容。"

-
输入3:"帮我统计一下上个季度各个车间上报的未遂事件数量。"

-
输入4:上传工厂现场图片 + "请帮我分析这张图片中的安全隐患"

四、系统测试与验证
4.1 功能测试方案
测试环境准备:
-
1. 进入Dify工作流调试模式 -
2. 准备多样化测试数据 -
3. 设置性能监控指标
核心测试用例:
|
|
|
|
|
|---|---|---|---|
|
|
|
提取:人员、地点、事件类型 |
|
|
|
|
返回相关规程内容 |
|
|
|
|
生成统计图表 |
|
|
|
|
提取设备、位置信息 |
|
|
|
|
识别图片隐患类型、风险等级 提供安全建议和相关规程 |
安全知识关联度 |
|
|
|
识别设备类型 返回对应操作规程 |
规程匹配精度 |
4.2 性能优化建议
响应速度优化:
-
• LLM模型选择:DeepSeek(平衡性能与成本),视觉模型Qwen3-VL -
• 并发处理:设置合理的请求限制 -
• 缓存策略:常用查询结果缓存
准确率提升:
-
• 提示词迭代优化 -
• Few-shot示例丰富化 -
• 错误案例收集与改进
五、常见问题解答(FAQ)
Q1:搭建这个系统需要什么技术基础?
A: 完全零代码!Dify提供可视化拖拽界面,会用PPT就能搭建工作流。业务人员也能轻松上手,无需编程经验。
Q2:数据安全如何保障?
A: 多重安全保障:
-
• 支持私有化部署,数据不出企业内网 -
• 传输加密(TLS 1.3)+ 存储加密 -
• 用户权限分级管理 -
• 完整的操作审计日志
Q3:识别准确率如何?系统能承受多大并发量?
A: 企业级性能表现:
-
• 基于deepseek模型,意图分类准确率>95%,参数提取准确率>90% -
• 响应时间<10秒(95%请求) -
• 99.9%可用性保障
Q4:如何与现有系统集成?
A: 灵活的集成方案:
-
• RESTful API标准接口 -
• Webhook事件推送 -
• 提供SDK和集成文档
六、推荐阅读
-
• 3秒识别安全隐患!这个AI神器让工厂事故率降低90% -
• 免费AI算力福利!魔搭社区每天2000次API调用+n8n插件实战指南 -
• Dify 实战:一键把票据信息写入飞书多维表格 -
• Qwen3-VL震撼登场!工业智能质检系统Dify实战案例让你3分钟上手最强视觉AI -
• 10分钟搞定Dify部署!本地+腾讯云双版本保姆教程 -
• Dify 1.9.0 Knowledge Pipeline深度解析:让RAG知识处理像搭积木一样简单
七、总结与行动建议
核心价值总结
通过本文的详细指导,你已经掌握了:
✅ 完整的技术实现路径:从环境准备到部署上线
✅ 可复现的开发步骤:核心节点的具体配置方法
技术发展趋势
AI安全管理正成为制造业数字化转型的重要方向:
-
• 预测性安全:从被动响应到主动预防 -
• 智能决策:基于大数据的风险评估 -
• 人机协同:AI辅助人工决策,提升效率

