微信扫码
添加专属顾问
我要投稿
企业安全管理效率提升300%的秘诀:Dify+飞书打造AI安全大脑,10分钟搭建智能助手,让安全事故处理从人工低效变智能高效! 核心内容: 1. AI安全助手的三大核心功能:智能事故报告、秒级规程查询、数据驱动分析 2. Dify平台搭建四步配置指南:账户注册、模型配置、知识库创建、飞书对接 3. 工作流开发实战:从基础架构到完整流程的详细实现步骤
还在为企业安全事故频发而头疼吗?传统的安全管理模式下,事故报告靠人工记录,安全查询要翻厚厚的规程手册,数据分析更是费时费力。一个小小的疏忽,就可能酿成大祸!
今天给大家分享一个革命性的解决方案——用dify平台10分钟搭建专业的企业安全AI助手。这个智能助手不仅能自动处理安全事件报告,还能实时查询安全规程,进行数据统计分析,让企业安全管理从此告别人工低效模式!
传统模式:员工发现安全隐患→填写纸质表格→层层上报→数据录入系统
AI模式:一句话描述→自动分类提取→实时入库→即时通知
比如员工说:"报告!李师傅在喷涂车间被溶剂溅到眼睛里了,正在冲洗!"
AI助手立即识别:
不用再翻厚厚的安全手册!员工问:"受限空间作业有什么安全要求?"
AI助手瞬间返回完整的《受限空间作业安全规程》内容,包括操作步骤、注意事项、应急措施等。
"帮我统计上个季度各车间的安全事件数量,按类型分类"
AI助手自动生成可视化图表,让管理层一目了然掌握安全态势,提前预防潜在风险。
reportqueryanalysis用户输入获取当前日期AI安全专家模块意图判断事故报告处理规程查询数据分析飞书多维表格存储自动通知知识库检索统计图表生成响应用户
第一步:账户注册与应用创建
工厂安全AI助手
第二步:LLM模型配置
第三步:知识库创建
安全规程知识库
第四步:飞书多维表格配置
安全事件管理表
步骤1:添加起始节点
user_input
string
image
file
image/jpeg, image/png, image/webp
10MB
步骤2:添加获取当前日期节点
步骤3:添加LLM节点(核心安全专家模块)
安全专家分析
{{#start.user_input#}}
和{{#获取当前日期.text#}}
JSON Schema配置:
步骤4:添加条件分支节点
{{#structured_output.intent#}} == "report"
{{#structured_output.intent#}} == "query"
{{#structured_output.intent#}} == "statistical_analysis"
步骤5:配置事件报告处理
步骤6:配置图片安全隐患识别
{{#start.image#}} is not empty
{{#start.image#}}
你是专业的工厂安全隐患识别专家。请仔细分析上传的图片,识别其中可能存在的安全隐患。分析要求:1. 识别图片中的安全隐患类型(如:高空作业无防护、化学品泄漏、设备故障、人员违规操作等)2. 评估风险等级(高/中/低)3. 提供具体的安全建议和整改措施4. 指出相关的安全规程要求输出格式:{ "隐患类型": "[具体描述,例如:电气线路老化、消防通道堆放杂物、特种设备未按期检测等]", "风险等级": "[高/中/低,根据隐患危害程度选择]", "安全建议": "[具体措施,例如:1. 立即更换老化线路并进行绝缘测试;2. 清理消防通道杂物,确保宽度不小于1.2米;3. 联系具备资质机构完成特种设备检测并取得合格报告等]", "相关规程": "[对应的安全规程名称,例如:《低压配电设计规范》、《建筑设计防火规范》、《特种设备安全法》等]"}
步骤7:配置知识库查询
安全规程知识库
{{#llm.parameters.safety_standard_name#}}
或 {{#图片识别节点.text#}}
步骤7:配置统计分析功能
**角色与目标:**你是一个专门将自然语言指令转换为飞书多维表格筛选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本身,无需任何解释。
import json
from datetime import datetime
def 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)}"}
## 角色定位资深数据可视化专家,专注于将飞书多维表格中的安全事件数据,转化为可直接在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#}}
步骤8:完成工作流连接
测试用例:
输入1:"报告!王师傅在压铸车间手指被砸伤了,正在处理!"
输入2:"我想查一下《受限空间作业安全规程》的具体内容。"
测试环境准备:
核心测试用例:
提取:人员、地点、事件类型 | |||
返回相关规程内容 | |||
生成统计图表 | |||
提取设备、位置信息 | |||
识别图片隐患类型、风险等级 提供安全建议和相关规程 | 安全知识关联度 | ||
识别设备类型 返回对应操作规程 | 规程匹配精度 |
响应速度优化:
准确率提升:
A: 完全零代码!Dify提供可视化拖拽界面,会用PPT就能搭建工作流。业务人员也能轻松上手,无需编程经验。
A: 多重安全保障:
A: 企业级性能表现:
A: 灵活的集成方案:
通过本文的详细指导,你已经掌握了:
✅ 完整的技术实现路径:从环境准备到部署上线
✅ 可复现的开发步骤:核心节点的具体配置方法
AI安全管理正成为制造业数字化转型的重要方向:
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-09-23
专访Plaud中国区CEO:我们只做“必须做”和“不做要死”的事
2025-09-21
一款随时心理陪伴的AI硬件
2025-09-20
硬件不行,AI失灵,AI硬件创业者的第一道生死关
2025-09-19
刚刚,港版 iPhone 17 Air 抢空!eSIM+系统级AI,国行果粉实名羡慕
2025-09-15
钉钉AI硬件DingTalk A1,开会摸鱼的神
2025-09-11
手机敲三下,1秒录入客户信息:我用AI+n8n搭建的数据同步系统
2025-09-09
Rokid Glasses应用心愿单-采购清单
2025-09-05
Rokid Glasses优化设想
2025-09-19
2025-09-02
2025-07-22
2025-09-02
2025-08-25
2025-09-05
2025-09-02
2025-08-22
2025-08-28
2025-08-23
2025-09-02
2025-08-15
2025-07-08
2025-07-08
2025-05-27
2025-05-24
2025-05-17
2025-05-14