内网运维助手
一个基于FastAPI和DeepSeek API的智能内网运维助手,支持自然语言和Linux命令两种输入方式,可用于服务器管理和监控。

功能特性
- 混合模式输入:支持自然语言和Linux命令两种输入方式
- 智能命令转换:通过DeepSeek API将自然语言转换为Linux命令
- 安全策略:内置危险命令检测和安全检查机制
- 服务器管理:支持多服务器管理和状态监控
- 快捷操作:提供CPU、内存、磁盘、负载等系统信息的快捷查询
- 命令执行:支持在远程服务器上执行命令并返回结果
- 系统监控:实时监控服务器状态和性能
技术栈
- 后端:FastAPI、Python 3.8+
- 前端:HTML5、CSS3、JavaScript
- 数据库:SQLite
- API:DeepSeek API
- 网络:SSH
安装说明
1. 环境要求
- Python 3.8 或更高版本
- pip 包管理器
- 网络连接(用于访问DeepSeek API)
2. 安装步骤
克隆仓库 git clone https://github.com/322dfs/intranet-ops-assistant.git cd intranet-ops-assistant
安装依赖 pip install -r requirements.txt
配置服务器信息编辑
config.py文件,添加服务器信息:服务器配置
SERVERS = [
{ "id": 1, "name": "默认服务器", "host": "192.168.108.131", "port": 22, "username": "beeplux", "password": "Bp20220726;" }]
DeepSeek API 配置
DEEPSEEK_API_KEY = “sk-bc3bf884dc2f44518881924ce2af870c” DEEPSEEK_API_URL = “https://api.deepseek.com/v1/chat/completions“
启动服务
使用方法
访问前端界面打开浏览器,访问:http://localhost:9002/static/index.html
使用自然语言在输入框中输入自然语言,例如:
- “查看CPU使用率”
- “ping一下百度官网”
- “检查内存使用情况”
使用Linux命令切换到”Linux命令”模式,直接输入Linux命令,例如:
ls -laps aux | grep pythondf -h
使用快捷操作点击左侧的快捷操作按钮,快速查看系统信息:
- 查看CPU使用情况
- 查看内存使用情况
- 查看磁盘使用情况
- 查看系统负载
安全策略
系统内置了安全策略机制,防止危险命令的执行:
- 危险命令黑名单:阻止已知的危险命令
- 危险命令组合检查:防止危险命令组合
- 关键文件保护:保护系统关键文件
- 管道和命令替换限制:对复杂命令进行严格检查
详细的安全策略说明请参考 安全策略.md 文件。
项目结构
intranet-ops-assistant/
├── app.py # 主应用文件
├── ai_client.py # DeepSeek API 客户端
├── ssh_client.py # SSH 客户端
├── database.py # 数据库操作
├── config.py # 配置文件
├── requirements.txt # 依赖文件
├── static/ # 前端文件
│ └── index.html # 前端界面
├── 一键启动.bat # Windows 启动脚本
├── 一键启动.ps1 # PowerShell 启动脚本
├── 操作命令手册.md # 操作命令手册
├── 技术博客.md # 技术博客
├── 多机器管理功能规划.md # 多机器管理功能规划
└── 安全策略.md # 安全策略文档
API 接口
1. AI 聊天接口
URL:
/api/chat方法:POST
参数:
{ "messages": [ { "role": "user", "content": "查看CPU使用率" } ], "server_id": 1 }返回:
{ "reply": "CPU使用率:10.5%", "server_id": 1, "server_name": "默认服务器" }
2. 服务器列表接口
URL:
/api/servers方法:GET
返回:
{ "servers": [ { "id": 1, "name": "默认服务器", "host": "192.168.108.131", "port": 22, "status": "online" } ] }
常见问题
启动失败:检查端口9002是否被占用,使用一键启动脚本会自动停止占用端口的进程。
DNS解析失败:检查服务器的DNS配置,确保网络连接正常。
命令被安全策略阻止:检查命令是否包含危险操作,或调整安全策略配置。
DeepSeek API 调用失败:检查API密钥是否正确,网络连接是否正常。
故障排查
查看日志:启动服务时,控制台会显示详细的日志信息。
测试API:使用
test_api.py脚本测试API接口。检查网络:确保服务器网络连接正常,DNS配置正确。
检查权限:确保用户有足够的权限执行命令。
贡献
欢迎贡献代码和提出建议!请提交Pull Request或Issue。
许可证
本项目采用 MIT 许可证。
联系方式
- 作者:[subencai]
- 邮箱:[2080981057@qq.com]
- GitHub:[322dfs (subencai) · GitHub