目录前言项目介绍项目功能项目特点项目技术项目代码项目效果项目源码总结前言工业现场的设备日志分析长期以来主要靠老师傅的经验积累和人工翻阅。面对动辄几千上万条的运行记录想快速定位故障根因并不容易。漏看几条关键告警就可能延误处理。大模型能力提升很快就琢磨着能不能把它塞进传统的工控上位机软件里做个顺手的小工具。既不用推翻现有的工作流程又能帮现场人员省点力气。本文推荐一个基于 .NET 8 WPF 的日志分析工具把日志解析、大模型调用、报告生成串成一条线主打一个能用、好用、不添乱。项目介绍一款面向工厂运维、设备操作和维修工程师的桌面工具核心任务是帮用户把杂乱的设备运行日志翻译成清晰可读的诊断报告。整个流程很直白导入日志文件 → 程序自动解析结构化字段 → 调用大模型 API结合内置的故障知识库和提示词模板→ 输出诊断结论 → 一键导出报告。没有复杂的配置打开软件就能干活。项目虽然是个工具但代码组织、配置管理、异常处理都按正经工业软件的套路来不是那种跑通就扔的验证原型。项目功能功能模块具体说明日志导入与解析支持.log/.txt/.json格式自动识别时间戳、告警级别、运行信息等关键字段AI 智能故障分析调用大模型 API结合内置诊断知识库和提示词模板输出结构化分析结论诊断报告生成自动生成 Markdown / TXT 格式报告包含故障诱因、处置建议、风险等级报告本地导出一键保存到本地方便交接、归档或打印API 密钥管理支持环境变量读取或界面加密存储DPAPI 本地加密不留明文配置热加载提示词、知识库、接口参数全部外置为文件修改后无需重新编译项目特点场景落地不玩虚的不是拿大模型随便聊两句而是真正贴合工控上位机的工作习惯——解析、分析、出报告每一步都有明确的输入输出现场人员拿到就能用。用知识库和提示词管住大模型内置了针对工业设备的故障诊断知识库配合强约束的提示词模板要求模型按固定字段输出故障代码、诱因、建议等有效减少 AI 胡编乱造的情况。说白了就是让大模型当个严谨的分析员而不是天马行空的聊天机器人。交互响应很跟手所有网络请求都走异步UI 线程不会被卡死。导入大文件时界面照常响应分析过程中有进度提示按钮状态会根据当前操作自动禁用/启用防止用户误操作。这些细节在工业软件里特别重要——现场可没人愿意对着一个未响应的窗口干瞪眼。密钥存储讲究安全API Key 不走明文要么用系统环境变量要么通过 DPAPI 加密后存在配置文件里。界面输入时用密码框遮挡保存后也不再回显明文兼顾了易用性和安全性。配置全外置改起来方便提示词、知识库、接口地址、模型名称全在config/目录下用文本编辑器就能改。想对接不同的模型或者适配不同的设备类型改配置文件就行不用动代码。项目技术技术项选型与说明运行时.NET 8跨平台基础库实际部署在 Windows开发语言C# 12桌面框架WPFMVVM 模式但本例采用 Code-Behind 简化实现UI 组件库MaterialDesignThemes / MaterialDesignColors界面风格统一自带暗色主题支持JSON 处理System.Text.Json配置读写时强制使用 UTF-8 BOM兼容中文不乱码HTTP 请求原生 HttpClient配合ConfigureAwait(false)避免死锁密钥加密DPAPIProtectedData类用户级加密绑定当前 Windows 账户异步编程async/await模式所有耗时操作均异步执行项目代码日志解析模块按行读取文件用正则匹配时间戳和告警级别遇到 JSON 格式则反序列化。解析结果存放到ObservableCollection中界面列表自动更新。AI 调用模块读取config/提示词/诊断提示词.txt作为 system prompt将解析后的日志摘要作为 user prompt 拼接构造标准的 Chat Completion 请求体。调用过程中用CancellationTokenSource支持超时取消。报告生成模块根据用户选择的导出格式.md 或 .txt将 AI 返回的 JSON 结构化内容渲染成对应格式的文本。Markdown 输出会保留标题、列表和代码块样式。配置管理自定义一个ConfigManager静态类启动时加载appsettings.json并提供SaveApiKey()/LoadApiKey()方法处理加密存储。配置变更时会触发OnPropertyChanged通知界面更新。代码整体遵循了分层思路UI 层只负责展示和用户交互业务逻辑放在 MainWindow.xaml.cs 中独立的方法里配置和工具类单独抽取。项目效果点击导入日志选择一份设备运行日志文件比如来自 PLC 或 SCADA 系统的导出文件程序自动解析并在左侧表格中展示每条记录的时间、级别和内容摘要状态栏会显示已导入 XX 条日志。接着点击AI 故障分析按钮变为禁用状态右侧区域显示分析中...同时状态栏提示进度。等待几秒到十几秒取决于网络和模型响应速度右侧会刷新出结构化的诊断报告——包括故障概述、诱因分析、处置建议、风险等级等内容格式和提示词模板里约束的一致。如果对结果满意点击导出报告选择保存路径一份 .md 文件就生成了直接用 Typora 或其他 Markdown 编辑器打开就能看也可以转成 PDF 发给同事。整个过程从打开软件到拿到报告不超过两分钟。对比以前人工翻日志再写分析记录效率提升非常明显。项目源码项目源码包含完整的项目文件、配置文件模板和示例日志。GitHubhttps://github.com/qqlif/IndustrialEquipmentLogAIAnalyzer总结这个小工具算不上多复杂但确实把大模型能力拧进了工业桌面软件的日常流程里。从最终效果来看它在设备巡检、故障初判、交接班记录这几个场景下能帮现场人员节省不少重复性劳动。技术层面收获也不少DPAPI 加密、异步 IO 和网络请求的配合、WPF 界面响应式的处理这些都是实打实的工程经验。最重要的是它验证了一个思路——传统工业软件不必推倒重来通过合理地外挂 AI 能力完全可以用较低成本提升现有工具的使用体验。后面如果有精力打算再加上日志历史对比、异常趋势图、多模型切换这几个功能让工具更好用一些。引入地址
.NET 8 + WPF 开发的工业设备日志 AI 分析工具
目录前言项目介绍项目功能项目特点项目技术项目代码项目效果项目源码总结前言工业现场的设备日志分析长期以来主要靠老师傅的经验积累和人工翻阅。面对动辄几千上万条的运行记录想快速定位故障根因并不容易。漏看几条关键告警就可能延误处理。大模型能力提升很快就琢磨着能不能把它塞进传统的工控上位机软件里做个顺手的小工具。既不用推翻现有的工作流程又能帮现场人员省点力气。本文推荐一个基于 .NET 8 WPF 的日志分析工具把日志解析、大模型调用、报告生成串成一条线主打一个能用、好用、不添乱。项目介绍一款面向工厂运维、设备操作和维修工程师的桌面工具核心任务是帮用户把杂乱的设备运行日志翻译成清晰可读的诊断报告。整个流程很直白导入日志文件 → 程序自动解析结构化字段 → 调用大模型 API结合内置的故障知识库和提示词模板→ 输出诊断结论 → 一键导出报告。没有复杂的配置打开软件就能干活。项目虽然是个工具但代码组织、配置管理、异常处理都按正经工业软件的套路来不是那种跑通就扔的验证原型。项目功能功能模块具体说明日志导入与解析支持.log/.txt/.json格式自动识别时间戳、告警级别、运行信息等关键字段AI 智能故障分析调用大模型 API结合内置诊断知识库和提示词模板输出结构化分析结论诊断报告生成自动生成 Markdown / TXT 格式报告包含故障诱因、处置建议、风险等级报告本地导出一键保存到本地方便交接、归档或打印API 密钥管理支持环境变量读取或界面加密存储DPAPI 本地加密不留明文配置热加载提示词、知识库、接口参数全部外置为文件修改后无需重新编译项目特点场景落地不玩虚的不是拿大模型随便聊两句而是真正贴合工控上位机的工作习惯——解析、分析、出报告每一步都有明确的输入输出现场人员拿到就能用。用知识库和提示词管住大模型内置了针对工业设备的故障诊断知识库配合强约束的提示词模板要求模型按固定字段输出故障代码、诱因、建议等有效减少 AI 胡编乱造的情况。说白了就是让大模型当个严谨的分析员而不是天马行空的聊天机器人。交互响应很跟手所有网络请求都走异步UI 线程不会被卡死。导入大文件时界面照常响应分析过程中有进度提示按钮状态会根据当前操作自动禁用/启用防止用户误操作。这些细节在工业软件里特别重要——现场可没人愿意对着一个未响应的窗口干瞪眼。密钥存储讲究安全API Key 不走明文要么用系统环境变量要么通过 DPAPI 加密后存在配置文件里。界面输入时用密码框遮挡保存后也不再回显明文兼顾了易用性和安全性。配置全外置改起来方便提示词、知识库、接口地址、模型名称全在config/目录下用文本编辑器就能改。想对接不同的模型或者适配不同的设备类型改配置文件就行不用动代码。项目技术技术项选型与说明运行时.NET 8跨平台基础库实际部署在 Windows开发语言C# 12桌面框架WPFMVVM 模式但本例采用 Code-Behind 简化实现UI 组件库MaterialDesignThemes / MaterialDesignColors界面风格统一自带暗色主题支持JSON 处理System.Text.Json配置读写时强制使用 UTF-8 BOM兼容中文不乱码HTTP 请求原生 HttpClient配合ConfigureAwait(false)避免死锁密钥加密DPAPIProtectedData类用户级加密绑定当前 Windows 账户异步编程async/await模式所有耗时操作均异步执行项目代码日志解析模块按行读取文件用正则匹配时间戳和告警级别遇到 JSON 格式则反序列化。解析结果存放到ObservableCollection中界面列表自动更新。AI 调用模块读取config/提示词/诊断提示词.txt作为 system prompt将解析后的日志摘要作为 user prompt 拼接构造标准的 Chat Completion 请求体。调用过程中用CancellationTokenSource支持超时取消。报告生成模块根据用户选择的导出格式.md 或 .txt将 AI 返回的 JSON 结构化内容渲染成对应格式的文本。Markdown 输出会保留标题、列表和代码块样式。配置管理自定义一个ConfigManager静态类启动时加载appsettings.json并提供SaveApiKey()/LoadApiKey()方法处理加密存储。配置变更时会触发OnPropertyChanged通知界面更新。代码整体遵循了分层思路UI 层只负责展示和用户交互业务逻辑放在 MainWindow.xaml.cs 中独立的方法里配置和工具类单独抽取。项目效果点击导入日志选择一份设备运行日志文件比如来自 PLC 或 SCADA 系统的导出文件程序自动解析并在左侧表格中展示每条记录的时间、级别和内容摘要状态栏会显示已导入 XX 条日志。接着点击AI 故障分析按钮变为禁用状态右侧区域显示分析中...同时状态栏提示进度。等待几秒到十几秒取决于网络和模型响应速度右侧会刷新出结构化的诊断报告——包括故障概述、诱因分析、处置建议、风险等级等内容格式和提示词模板里约束的一致。如果对结果满意点击导出报告选择保存路径一份 .md 文件就生成了直接用 Typora 或其他 Markdown 编辑器打开就能看也可以转成 PDF 发给同事。整个过程从打开软件到拿到报告不超过两分钟。对比以前人工翻日志再写分析记录效率提升非常明显。项目源码项目源码包含完整的项目文件、配置文件模板和示例日志。GitHubhttps://github.com/qqlif/IndustrialEquipmentLogAIAnalyzer总结这个小工具算不上多复杂但确实把大模型能力拧进了工业桌面软件的日常流程里。从最终效果来看它在设备巡检、故障初判、交接班记录这几个场景下能帮现场人员节省不少重复性劳动。技术层面收获也不少DPAPI 加密、异步 IO 和网络请求的配合、WPF 界面响应式的处理这些都是实打实的工程经验。最重要的是它验证了一个思路——传统工业软件不必推倒重来通过合理地外挂 AI 能力完全可以用较低成本提升现有工具的使用体验。后面如果有精力打算再加上日志历史对比、异常趋势图、多模型切换这几个功能让工具更好用一些。引入地址