开源项目
AutoGenInspection
项目地址:https://gitee.com/wendgit/auto-gen-inspection。我们诚挚邀请感兴趣的伙伴下载试用该项目,并参与优化工作。
第一部分 项目背景
在最近的工作中,我观察到随着项目数量的增加,我们团队在节假日或定期对各城市服务器进行系统巡检的任务也在不断增多。然而我意识到,像系统巡检报告这种类型的文档,其本身的内容其实相对固定,主要是对服务器各项数据进行检查并生成报告。考虑到这种是类无聊的重复性工作,我想到可以利用现有的AI技术,通过编写一个简单的python 程序来自动化处理生成各城市的系统巡检文档。
经过三天的开发,我成功开源了一个基于Python的AI自动生成系统巡检报告的项目,名为
AutoGenInspection
。该项目利用基于规则的系统架构和AI智能分析技术,能够自动生成针对不同服务器的巡检报告,从而显著降低人工成本。
第二部分 架构介绍
在介绍
AutoGenInspection架构前,
我想先简要提及基于规则的系统架构(Rule-Based System Architecture)。在软考系统架构师的学习内容中,包含有基于规则的系统架构的学习,于是我也简单对此架构风格拓展学习了下。
基于规则的系统架构是一种以规则集为核心,通过规则引擎来执行和处理业务逻辑的系统设计方法。在这种架构中,规则通常以明确的、可执行的语句形式定义,这些规则可以被系统中的规则引擎解释和执行。基于规则的系统架构广泛应用于决策支持系统、业务流程自动化、知识管理系统等领域。本次的项目就是一个基于业务流程自动化场景的比较简单的基于规则的系统架构实例。
auto-gen-inspection 系统架构图
AutoGenInspection系统采用基于配置文件的流程处理架构,其主体结构如上图所示。系统表现层提供编辑配置文件和选择配置文件的功能,用户可以在这里编辑、选择配置文件内容,并点击生成最终系统巡检模板。AutoGenInspection系统主要处理五个配置文件,包括SSH连接配置、command命令配置、固定参数配置、AI提示配置和docx文档配置,对这些配置文件的处理过程即封装成为了自动生成系统巡检报告的流程引擎。
该系统的优点在于其高度的灵活性。通过定义配置文件的内容,系统能够自动生成不同内容的系统巡检报告,无需手动操作。此外,系统利用智谱AI大模型对系统巡检结果进行深入分析和整合,从而生成内容详尽的巡检报告。尽管AI处理结果存在一定的不确定性,但系统生成的文档是基于docx模板生成的,因此可以保证巡检文档的生成结果基本稳定。
第三部分 项目结构
项目结构
ai调用AI 的逻辑方法command调用系统命令查询结果的方法docxgen文档组装和生成方法env环境变量和初始化脚本fileconfig配置文件存放和处理逻辑log系统日志处理方法sshcon建立SSH 连接的方法web封装了面向前端的接口
项目结构整体上逻辑清晰,且由于Python的简洁性,代码量少,很适合新手Python 玩家学习。其中不少代码编写逻辑后,即可由github copilot直接给出源码直接使用。在AI 开发环境的加持下,我得以在3天内完成一个简单Python项目的开发工作。
第四部分 关键技术栈
关键技术栈
flaskPython 著名前端框架pydocxPython 处理.docx 文档的工具pymysqlPython 连接mysql 的工具zhipuAIAI 大模型选择的智谱AIlangchainAI想使用别的AI 大模型的同学可以使用 langchainAIparamikoPython 处理SSH 连接的工具jsonPython 处理json 的工具
Python 的工具使用起来都相当简单,一个.py 文件即可完成整个的数据库连接工作,或者AI 大模型的处理工作。且Python在AIGC领域的支持尤为出色,可以说是所有编程语言中对AIGC支持最为精确的。因此,Python 编码过程中遇到任何疑问,直接向AI求助即可获得解答。
第四部分 项目页面
巡检报告参数配置页
巡检报告的配置流程设计得非常直观,通过简单的上传和下载配置文件即可完成。对于开源项目的使用者来说,只需在项目目录下创建或修改配置文件即可满足需求。本页面的主要目的是为了简化非开发者身份的系统运维人员处理配置的操作,使其更加便捷高效。
巡检报告查询生成页
巡检报告处理主页提供了便捷的报告生成体验。在选择了合适的配置文件后,点击“提交”按钮,页面的日志记录区域将实时显示最新的操作日志。报告生成过程采用并发处理机制,因此初始状态下日志可能会显示为“生成中”或“待生成”。当状态更新为“生成完成”时,用户即可通过页面下方的“下载”按钮,获取最新的系统巡检报告。
第五部分 自生成巡检报告展示
鉴于巡检报告的保密性质,我在此仅展示部分内容以供参考,以体现自动生成的巡检报告的效果。这些报告通常是由查询结果与AI分析结果相结合而成的。每一条巡检结果都会对应一条AI分析,但报告也可能仅包含巡检结果或仅包含AI分析。对于报告中的一些特定内容,如程序信息列表,我们需要对查询结果进行特殊处理,并将其格式化为列表形式进行展示。项目中还有一些特殊的设定比如:若项目未启用Spring的健康检查功能,我们在此默认所有检测到的项目状态均为健康状态。
第六部分 总结陈述
AutoGenInspection项目虽然结构简洁,但本次的架构设计让我感到很满意。通过这个项目的研发,我探索出了一条新的思路:结合基于规则的系统架构与AI处理能力,可以有效解决如生成系统巡检报告这类重复性工作,进而实现流程的自动化。我对未来的努力充满期待,希望能够继续开发出更多实用的系统。最后感谢智谱清言对我文章语言表述的优化工作哈。
版权归原作者 找了一圈尾巴 所有, 如有侵权,请联系我们删除。