268 lines
14 KiB
Markdown
268 lines
14 KiB
Markdown
# 答辩 PPT:大纲与逐页内容(基于 `doc/TECH_DOC.md` + `doc/开题报告.txt`)
|
||
|
||
> 目标:给你一个“可直接照着做 PPT”的逐页脚本。
|
||
> 建议页数:**18 页**(答辩 8–12 分钟可控;如需 15/20 页我也可以再压缩/扩展)。
|
||
> 你需要自行补充:系统截图(登录/聊天/终端/文件/监控/虚拟显示器/管理员面板)、架构图(可用 draw.io)。
|
||
|
||
---
|
||
|
||
## 0. PPT 叙事主线(建议)
|
||
1) **为什么做**:涉密/内网 + 成本 + 可控性痛点
|
||
2) **做了什么**:Docker 多用户隔离的 AI 开发平台(终端/文件/对话/监控一体)
|
||
3) **怎么做**:后端编排 + 容器执行层 + 前端实时交互 + 监控与安全
|
||
4) **做得怎么样**:指标/实战测试/稳定性
|
||
5) **还能怎么做更好**:生产化补齐项(安全/DB/CI/伸缩)
|
||
|
||
---
|
||
|
||
## 1. 页面总览(大纲)
|
||
1. 标题页
|
||
2. 背景与痛点
|
||
3. 目标与需求(四大目标)
|
||
4. 研究现状对比与创新点
|
||
5. 系统总体架构(三层/数据流)
|
||
6. 运行时拓扑(宿主机 + 多容器)
|
||
7. 后端核心:终端编排与会话(MainTerminal/WebTerminal)
|
||
8. 核心模块 1:用户容器管理(UserContainerManager)
|
||
9. 核心模块 2:容器文件代理(Container File Proxy)
|
||
10. 核心模块 3:持久化终端与超时控制(Persistent Terminal)
|
||
11. 上下文构建与对话管理(Context/Conversation Manager)
|
||
12. 分层思考模式(fast/thinking/deep)
|
||
13. 子智能体机制(Sub-Agent)
|
||
14. 前端架构与虚拟显示器回放(Vue + Monitor)
|
||
15. 安全与权限模型(CSRF/限流/上传隔离/容器隔离)
|
||
16. 监控与日志(CPU/内存/网速/磁盘/Token)
|
||
17. 评估指标与实战测试结果(表格 + 数据)
|
||
18. 总结与展望(贡献/局限/下一步)
|
||
|
||
---
|
||
|
||
## 2. 逐页内容(每页可直接做成 PPT)
|
||
|
||
### 第 1 页:标题页
|
||
**标题**:基于 Docker 容器的多用户 AI 智能体开发平台
|
||
**副标题**:自主可控、可私有化部署、支持 OpenAI 兼容国产模型
|
||
**作者/学校/专业/导师/日期**:按你的信息填写
|
||
**建议配图**:系统主界面截图(聊天 + 终端 + 资源面板同屏),或一张“浏览器 + 容器”的示意图。
|
||
**讲稿要点(10–15 秒)**:一句话定义:这是一个“多用户隔离 + 全工具链”的 AI 编程/开发助手平台。
|
||
|
||
---
|
||
|
||
### 第 2 页:背景与痛点(为什么要做)
|
||
**标题**:课题背景:AI 辅助编程的现实痛点
|
||
**内容要点**:
|
||
- 商业产品强但有问题:国外服务依赖、内网/涉密不可用、费用高、难定制
|
||
- 国产模型生态成熟:DeepSeek/Qwen/GLM 等具备商用性能与更低成本,支持私有化
|
||
- 需求场景明确:涉密项目、企业内网、高校教学多用户实验
|
||
**建议配图**:对比表(Copilot/Cursor/Claude Code vs 本项目)。
|
||
**讲稿要点**:强调“不是再做一个聊天网页”,而是“可执行、可隔离、可监控”的开发平台。
|
||
|
||
---
|
||
|
||
### 第 3 页:目标与需求(做成什么样)
|
||
**标题**:课题目的:四大目标
|
||
**内容要点(四象限)**:
|
||
1) 技术自主:OpenAI 兼容 API;可私有化部署
|
||
2) 功能完整:终端/文件/对话管理/监控
|
||
3) 安全隔离:单用户单容器、配额限制、沙箱化文件与命令
|
||
4) 实用性:涉密开发、降低企业成本、教学平台
|
||
**建议配图**:四象限图或 checklist。
|
||
**讲稿要点**:这四点对应后面四条主线:架构、工具、隔离、安全与监控。
|
||
|
||
---
|
||
|
||
### 第 4 页:研究现状与创新点(你做的“新”在哪里)
|
||
**标题**:研究现状与不足 → 本项目创新点
|
||
**对比要点**:
|
||
- Copilot/灵码:主要是补全,缺少终端/文件/多租户
|
||
- Cursor/Claude Code:工具更强但闭源/云端/单用户或国内受限
|
||
- 开源 AutoGPT/Open-WebUI:偏聊天/框架,工程化与隔离不足
|
||
**本项目创新点(落地型)**:
|
||
- 多用户隔离:单用户单容器 + 资源配额
|
||
- 工具完整:持久化终端 + 文件代理 + 对话管理 + 监控
|
||
- 分层思考模式:推理模型首轮 + 快速模型后续(节省成本)
|
||
- 子智能体并行:任务拆分与交付
|
||
**讲稿要点**:把“创新”说成“可验证的工程机制”,而不是抽象概念。
|
||
|
||
---
|
||
|
||
### 第 5 页:系统总体架构(概览)
|
||
**标题**:总体架构:浏览器 → Web 服务器 → 业务逻辑 → 容器层
|
||
**内容要点**(建议画图):
|
||
- 前端:Vue SPA + Socket.IO Client
|
||
- Web Server:Flask + Socket.IO(鉴权、API、事件)
|
||
- 业务层:WebTerminal/MainTerminal、ContextManager、UserContainerManager、UploadQuarantineManager
|
||
- 容器层:每用户一个容器,执行命令与文件操作
|
||
**讲稿要点**:解释“工具调用并不在宿主机直接执行”,而是通过容器代理统一落地。
|
||
|
||
---
|
||
|
||
### 第 6 页:运行时拓扑(多用户隔离如何工作)
|
||
**标题**:运行时拓扑:单机多用户、多容器并发
|
||
**内容要点**:
|
||
- 用户登录 → 创建/复用容器 → 挂载用户工作区(project/data/logs)
|
||
- 宿主机仅运行 Web 服务与调度,执行尽量在容器内完成
|
||
- 并发上限:最多 N 个活跃容器(配置项 `MAX_ACTIVE_USER_CONTAINERS`)
|
||
**建议配图**:宿主机盒子 + N 个容器盒子,每个容器挂载各自 workspace。
|
||
**讲稿要点**:突出横向隔离:用户 A 无法看到用户 B 的文件/进程。
|
||
|
||
---
|
||
|
||
### 第 7 页:后端核心:终端编排与会话(MainTerminal/WebTerminal)
|
||
**标题**:后端核心:统一编排层
|
||
**内容要点**:
|
||
- CLI 与 Web 共用核心:`core/main_terminal.py`
|
||
- Web 版继承:`core/web_terminal.py`,增加消息回调与自动加载/创建对话
|
||
- 统一处理:运行模式(fast/thinking/deep)、工具分类开关、聚焦文件、Todo/记忆、子代理状态
|
||
**建议配图**:类关系简图:WebTerminal → MainTerminal → modules/utils/config。
|
||
**讲稿要点**:强调“核心逻辑只写一套”,降低维护成本。
|
||
|
||
---
|
||
|
||
### 第 8 页:核心模块 1:用户容器管理(UserContainerManager)
|
||
**标题**:容器生命周期管理(按用户)
|
||
**内容要点**:
|
||
- 创建/复用/回收:`ensure_container` / `release_container`
|
||
- 资源限制:CPU/内存/网络/卷挂载路径;容器上限与资源繁忙提示
|
||
- 状态采集:支持 `docker stats/inspect` 汇报到监控
|
||
**建议配图**:时序图:login → ensure_container → handle;logout/idle → release。
|
||
**可讲实现细节**:
|
||
- 容器模式与回退:docker 不可用时可回退 host(可配置 require 强制失败)
|
||
- 容器命名与记录:保存 container_name/container_id/last_active
|
||
|
||
---
|
||
|
||
### 第 9 页:核心模块 2:容器文件代理(Container File Proxy)
|
||
**标题**:容器内文件操作:安全、低开销
|
||
**内容要点**:
|
||
- 方案:`docker exec` 执行内联 Python 脚本(避免 `docker cp` 往返与临时文件)
|
||
- 安全:路径解析 `resolve` + 前缀检查,阻止目录遍历;限制文件大小与行范围
|
||
- 功能:create/read/write/rename/delete、读片段、(可扩展 diff/搜索)
|
||
**建议配图**:对比图:传统 docker cp 三次 IO vs exec 一次 IO。
|
||
**讲稿要点**:把“效率 + 安全”作为这页核心论点。
|
||
|
||
---
|
||
|
||
### 第 10 页:核心模块 3:持久化终端与超时控制
|
||
**标题**:持久化终端:多会话 + 输出缓冲 + 超时不杀会话
|
||
**内容要点**:
|
||
- 多终端会话管理:`modules/terminal_manager.py`(最大会话数、快照行数/字符上限)
|
||
- 持久化终端:`modules/persistent_terminal.py`(读写线程、输出队列、循环缓冲、回显检测)
|
||
- 一次性工具命令:`modules/terminal_ops.py` + `modules/toolbox_container.py`(专用工具容器,避免状态污染)
|
||
**建议配图**:终端会话结构图(session → process → output buffer)。
|
||
**讲稿要点**:强调工程难点:交互式程序、输出爆炸、超时机制(只杀命令不杀终端)。
|
||
|
||
---
|
||
|
||
### 第 11 页:上下文构建与对话管理
|
||
**标题**:ContextManager:把“可用信息”组装给模型
|
||
**内容要点**:
|
||
- 对话持久化:`utils/conversation_manager.py`(对话文件 + index,支持重建索引与容错)
|
||
- 上下文来源:历史消息、工具结果、聚焦文件、Todo/记忆、资源限额、个性化偏好
|
||
- Token 统计:对话级 + 工作区累计(写入 `token_totals.json`)
|
||
**建议配图**:上下文拼装示意:System prompt + tools + focused files + history + memory/todo。
|
||
**讲稿要点**:说明为什么需要“聚焦文件”:让模型稳定获取关键代码片段,减少无关信息。
|
||
|
||
---
|
||
|
||
### 第 12 页:分层思考模式(fast / thinking / deep)
|
||
**标题**:分层思考模式:质量/速度/成本的平衡
|
||
**内容要点**:
|
||
- fast:快速响应,适合简单问题
|
||
- thinking:推理更充分,适合复杂任务
|
||
- deep:更强推理/更长思考(用于难题)
|
||
- 机制:首轮推理结果缓存,后续复用(节约成本;可配置切换间隔 `THINKING_FAST_INTERVAL`)
|
||
**建议配图**:模式切换流程图或对比表(质量/成本/延迟)。
|
||
**讲稿要点**:把“成本控制”说成一个可量化的工程机制,而不是主观感受。
|
||
|
||
---
|
||
|
||
### 第 13 页:子智能体机制(Sub-Agent)
|
||
**标题**:子智能体:任务并行与交付
|
||
**内容要点**:
|
||
- 主智能体负责编排与拆分;子智能体负责执行子任务并返回交付物
|
||
- 生命周期:create → wait → close;状态:pending/running/completed/failed
|
||
- 隔离:独立工作区(references/deliverables),避免污染主会话
|
||
**建议配图**:主/子代理协作图(任务拆分、并行、合并结果)。
|
||
**讲稿要点**:突出价值:复杂任务“可并行”,主对话更清晰。
|
||
|
||
---
|
||
|
||
### 第 14 页:前端架构与虚拟显示器回放
|
||
**标题**:Vue 前端:实时交互 + 可视化回放
|
||
**内容要点**:
|
||
- SPA:Vue3 + Pinia + Socket.IO Client
|
||
- 状态域:聊天、工具、monitor、resource、files、upload、policy、subAgent 等
|
||
- 虚拟显示器:`static/src/components/chat/monitor/*`,将工具执行过程转为可回放动画(指针/窗口/右键/进度气泡)
|
||
**建议配图**:虚拟显示器截图 + 简单事件流(tool event → store → MonitorDirector)。
|
||
**讲稿要点**:强调“可解释性/可观测性”:用户能看到智能体“在做什么”。
|
||
|
||
---
|
||
|
||
### 第 15 页:安全与权限模型
|
||
**标题**:安全设计:多层防护(容器 + Web 安全 + 上传隔离)
|
||
**内容要点**:
|
||
- 容器隔离:单用户单容器,配额限制,宿主机不直接执行用户命令
|
||
- Web 安全:CSRF token、登录失败锁定/限流、Session 过期
|
||
- 上传安全:隔离区暂存 + 后缀/大小校验 + 可选 ClamAV 扫描 + 审计日志
|
||
- 路径安全:`resolve` + 越界检查,阻止 `../../../`
|
||
**建议配图**:安全“洋葱模型”图(外层 Web → 内层容器 → 文件代理)。
|
||
**讲稿要点**:同时说明局限:仍需进一步收紧 CORS、移除硬编码密钥等生产化事项(下一页或总结提)。
|
||
|
||
---
|
||
|
||
### 第 16 页:监控与日志(可观测性)
|
||
**标题**:可观测性:资源 + Token + 审计日志
|
||
**内容要点**:
|
||
- 容器监控:CPU/内存/网络 IO,采样写入 `logs/container_stats.log`,前端计算网速并展示
|
||
- 磁盘配额:项目已用/上限/百分比(轮询,退避策略)
|
||
- Token 统计:当前上下文 + 对话累计 + 工作区累计
|
||
- 审计:上传扫描日志按用户分文件记录
|
||
**建议配图**:资源面板截图(CPU/内存/网速/存储/Token)。
|
||
**讲稿要点**:强调这是“教学/企业可用”的关键:管理员能看到资源与风险点。
|
||
|
||
---
|
||
|
||
### 第 17 页:评估指标与实战测试结果
|
||
**标题**:评估与验证:实战测试 + 指标达成
|
||
**建议一张表 + 一张要点**:
|
||
- 代码规模:约 41,500 行;模块数:25+
|
||
- 并发能力:8 个容器;单容器 3 个终端会话
|
||
- 响应:交互响应 < 100ms(本地条件下)
|
||
- 成功率:diff 补丁 ~85%;终端命令 ~98%
|
||
- 稳定性:连续运行 72h 无崩溃;300+ 次 dogfooding
|
||
- 安全测试:路径遍历/命令注入/恶意上传均拦截
|
||
**建议配图**:一页“指标表格”,或“雷达图/柱状图”。
|
||
**讲稿要点**:把“测过/跑过/能用”说清楚,体现工程完成度。
|
||
|
||
---
|
||
|
||
### 第 18 页:总结与展望
|
||
**标题**:总结与下一步
|
||
**总结(贡献点)**:
|
||
- 多用户容器隔离的 AI 开发平台(端到端可运行)
|
||
- 文件代理 + 持久化终端 + 对话上下文 + 监控面板形成闭环
|
||
- 分层思考模式与子智能体增强复杂任务能力
|
||
**局限(坦诚但可控)**:
|
||
- 安全基线仍需生产化(密钥治理、CORS 收紧、日志脱敏、DB/权限细化)
|
||
- 可扩展性:后端可拆分执行层/引入任务队列与多 worker
|
||
**下一步**(可选):
|
||
- 数据库化(用户/会话/审计)、CI/CD、镜像漏洞扫描、RAG/代码索引、rootless/gVisor 等
|
||
**建议配图**:Roadmap 时间线(短期/中期/长期)。
|
||
**讲稿要点**:以“可落地的下一步”收尾,体现工程规划能力。
|
||
|
||
---
|
||
|
||
## 3. 你需要准备的素材清单(做 PPT 前先收集)
|
||
1) 截图:登录页、聊天页、终端页、文件管理、上传、资源面板、虚拟显示器、管理员策略页
|
||
2) 结构图:总体架构、运行时拓扑、工具调用时序、子智能体协作图
|
||
3) 数据:并发容器/终端数量、成功率、72h 稳定性、token 成本(用你真实运行数据替换“目标值/示例值”)
|
||
4) 演示脚本:一条典型任务(搜索→修改文件→运行命令→展示监控/回放)
|
||
|
||
---
|
||
|
||
## 4. 版本说明
|
||
- 生成时间:2026-01-05
|
||
- 依据文件:`doc/TECH_DOC.md`、`doc/开题报告.txt`
|
||
|