视频监控管理助手

基于自然语言交互的视频云平台管理助手,结合LLM和MCP技术,实现设备查询、实时视频预览和录像回放等功能。

  • by fkhzh945
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 fkhzh945/video-server-llm

使用说明

智能视频监控平台助手

基于自然语言交互的视频云平台管理助手,结合LLM和MCP技术,实现设备查询、实时视频预览和录像回放等功能。

系统架构

  • 后端:Python FastAPI(异步框架)
  • 前端:Vue 3 + Element Plus
  • LLM模型:DeepSeek-R1(兼容OpenAI API)
  • 视频流格式:RTSP/HTTP
  • 前后端通信:RESTful API
  • 数据库:SQLite(异步访问)
  • MCP服务:外部MCP服务器集成

目录结构

video-llm-system/
├── backend/             # 后端代码
│   ├── app/
│   │   ├── api/         # API路由(包含llm_router、auth_router等)
│   │   ├── models/      # 数据模型
│   │   ├── services/    # 业务服务(MCP服务、LLM服务、数据库服务等)
│   ├── .env             # 环境变量配置
│   ├── main.py          # 后端入口
│   ├── requirements.txt # Python依赖
│   ├── mcp_servers_config.json # MCP服务器配置
├── frontend/            # 前端代码
│   ├── src/
│   │   ├── assets/      # 静态资源
│   │   ├── components/  # Vue组件
│   │   ├── router/      # 路由配置
│   │   ├── services/    # API服务封装
│   │   ├── views/       # 页面视图
│   │   ├── App.vue      # 根组件
│   │   └── main.js      # 前端入口
│   ├── package.json     # NPM依赖
│   └── vite.config.js   # Vite配置
├── docker-compose.yml   # Docker部署配置
└── README.md            # 项目说明

核心功能

  • 自然语言交互:通过LLM实现智能对话和命令处理
  • 设备管理:查询设备列表、设备状态和详细信息
  • 实时视频预览:支持RTSP/HTTP格式的实时视频流播放
  • 录像回放:支持指定时间段的录像查询和回放
  • MCP工具集成:与外部MCP服务无缝集成,支持多种工具调用
  • 异步处理:全面采用异步编程,提高系统性能和并发能力

技术架构详解

后端架构

后端采用FastAPI作为核心框架,具有以下特点:

  1. 异步处理:基于Python asyncio,实现高性能异步API
  2. 类型安全:使用Pydantic进行数据验证和序列化
  3. 依赖注入:FastAPI内置的依赖注入系统,便于服务管理
  4. 事件生命周期:使用lifespan管理应用启动和关闭过程
  5. MCP集成:通过LLMMCPIntegration实现与外部MCP服务的连接管理

核心数据流:

客户端请求 → FastAPI路由 → LLM服务 → MCP服务调用 → 工具执行 → 响应返回

前端架构

前端基于Vue 3构建,采用组件化设计,主要特点:

  1. 组件化:基于Element Plus的UI组件库
  2. 路由管理:Vue Router实现页面导航
  3. API封装:统一的API服务封装,简化后端调用

部署要求

环境要求

  • Python 3.8+
  • Node.js 16+
  • 推荐使用虚拟环境管理依赖

后端部署

  1. 安装依赖

    cd backend
    pip install -r requirements.txt
    
  2. 配置环境变量 复制 .env.example 为 .env 并配置相应参数:

    cp .env.example .env
    # 编辑.env文件,设置必要的环境变量
    
  3. 配置MCP服务器 编辑 mcp_servers_config.json 文件,配置外部MCP服务器:

    {
      "mcpServers": {
        "视频系统": {
          "url": "http://127.0.0.1:5005/mcp",
          "headers": {
            "Authorization": "Bearer your_api_key_here"
          }
        }
      }
    }
    

智能视频监控平台助手

基于自然语言交互的视频云平台管理助手,结合LLM和MCP技术,实现设备查询、实时视频预览和录像回放等功能。

系统架构

  • 后端:Python FastAPI(异步框架)
  • 前端:Vue 3 + Element Plus
  • LLM模型:DeepSeek-R1(兼容OpenAI API)
  • 视频流格式:RTSP/HTTP
  • 前后端通信:RESTful API
  • 数据库:SQLite(异步访问)
  • MCP服务:外部MCP服务器集成

配套 MCP 视频服务器

本项目依赖配套的 mcp-video-server 提供底层视频能力验证。
该仓库实现了符合 MCP 协议的视频服务,支持:

  • 设备列表查询
  • 实时视频流地址获取
  • 录像片段检索与回放
  • 基于 SSE 的异步事件推送

请先 clone 并启动 mcp-video-server,再启动本系统,否则 LLM 无法调用视频相关工具。

目录结构

  1. 启动服务
    python main.py
    
    服务默认运行在 http://0.0.0.0:5003

前端部署

  1. 安装依赖

    cd frontend
    npm install
    
  2. 开发环境运行

    npm run dev
    
  3. 构建生产版本

    npm run build
    

    构建后的文件在 dist 目录中

环境变量配置

后端环境变量(.env文件)

# 服务器配置
SERVER_HOST=0.0.0.0
SERVER_PORT=5003
DATABASE_URL=sqlite:///./video_llm.db

# LLM配置 - OpenAI兼容接口
LLM_API_KEY=sk-your-api-key-here  # OpenAI风格的API密钥
LLM_BASE_URL=http://localhost:5001/v1  # OpenAI API基础URL或兼容服务URL
LLM_MODEL=deepseek-ai/DeepSeek-R1  # OpenAI模型名称或兼容模型名称

# MCP服务器配置
MCP_LOG_LEVEL=DEBUG
MCP_SERVERS_CONFIG_FILE=./mcp_servers_config.json

API文档

后端服务启动后,可以通过以下地址访问API文档:

  • Swagger UI: http://localhost:5003/docs
  • ReDoc: http://localhost:5003/redoc

关键API端点

LLM相关接口

  • POST /api/llm/query - 发送自然语言查询到LLM
  • GET /api/llm/conversation-history - 获取对话历史

系统接口

  • GET / - 根路径,返回服务信息
  • GET /health - 健康检查接口

Docker部署

使用Docker Compose进行容器化部署:

  1. 配置环境变量 确保 .env 文件已正确配置

  2. 启动服务

    docker-compose up -d
    
  3. 访问服务

    • 后端API:http://localhost:5003
    • 前端应用:http://localhost:3000
    • API文档:http://localhost:5003/docs

技术栈

后端

  • FastAPI:高性能异步API框架
  • Python asyncio:异步编程支持
  • Pydantic:数据验证和序列化
  • aiosqlite:异步SQLite数据库访问
  • Uvicorn:ASGI服务器
  • MCP (Model Control Protocol):模型控制协议集成

前端

  • Vue 3:渐进式JavaScript框架
  • Vue Router:路由管理
  • Element Plus:UI组件库
  • Axios:HTTP客户端

系统集成流程

  1. LLM与MCP集成 后端服务启动时,自动初始化LLM和MCP客户端连接,MCP工具列表会被动态注入到LLM中。

  2. 请求处理流程

    • 客户端发送自然语言查询
    • LLM分析查询意图并决定是否调用工具
    • 如果需要调用工具,通过MCP服务执行相应操作
    • 将结果整合并返回给客户端
  3. MCP通信模式 支持SSE、HTTP Stream等通信方式,确保实时数据传输的稳定性和效率。

注意事项

  1. 端口占用 确保端口5003

  2. API密钥安全 生产环境中请勿将API密钥硬编码到代码中,使用环境变量或安全的密钥管理方案

  3. CORS配置 生产环境中应配置具体的允许来源域名,而不是使用通配符*

  4. 错误处理 系统包含完善的错误处理机制,确保在各种异常情况下能够优雅降级

  5. 日志管理 通过环境变量MCP_LOG_LEVEL控制日志详细程度,支持DEBUG、INFO、WARNING等级别