一、案例背景与目标
背景:
企业网络中存在多厂商(华为、H3C、思科等)设备,传统巡检需人工逐台登录,效率低且易出错。
目标:
开发基于自然语言的智能巡检系统,实现:
- 自然语言指令解析
- 多厂商设备自动化巡检
- 结构化报告生成
技术栈:
Python
+ Ollama
+ Netmiko
+ FastAPI
二、分步指南
Step 1:环境准备
目标:搭建本地AI与开发环境
操作:
# 1. 安装Ollama(Windows/Mac通用)
curl -fsSL https://ollama.com/install.sh | sh
# 2. 拉取专用模型
ollama run deepseek-coder
# 3. 创建Python虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 4. 安装依赖库
pip install netmiko fastapi uvicorn requests ollama regex
验证:
ollama list # 应显示deepseek-coder
python -c "import netmiko; print(netmiko.__version__)" # 应输出≥4.2.0
Step 2:设备配置管理
目标:定义待巡检设备清单
操作:
- 创建
devices.json
:
{
"devices": [
{
"ip": "192.168.1.1",
"vendor": "huawei",
"device_type": "huawei",
"username": "admin",
"password": "Admin@123"
},
{
"ip": "192.168.1.2",
"vendor": "cisco",
"device_type": "cisco_ios",
"username": "cisco",
"password": "Cisco@123"
}
]
}
关键点:
vendor
字段需与代码中的厂商映射一致device_type
参考Netmiko支持的设备类型列表
Step 3:MCP服务器开发
目标:实现设备巡检API
操作:
- 创建
mcp_server.py
:
from fastapi import FastAPI
from netmiko import ConnectHandler
import json
app = FastAPI()
with open('devices.json') as f:
devices = json.load(f)['devices']
VENDOR_COMMANDS = {
"huawei": "display health",
"cisco": "show processes cpu",
"h3c": "display device"
}
@app.post("/mcp")
async def check_devices(data: dict):
vendor = data.get("params", {
})