01
MagicSpace · AI 空间平台
背景
基于开源 GinFast 二次开发,以「区域 region」为数据主线,统一管理 DXF 图纸、墙体 / 门窗几何、物体识别结果、区域属性元数据与 AI 报告;对外同时提供 17 条 HTTP API 与 10 个 MCP 工具,覆盖疏散距离核算、空间分割、路径规划、物体间距合规、批量出图与报告生成。
我做的
- 把建筑消防口径翻译成算法规格:明确"疏散距离"该按什么路径算——直边 1 / 对角 √2 / 禁斜穿墙角、取最近门与出口的多源距离、路径拉直后的折线长度作为报告值;40mm/px 栅格、闭运算补断口、连通域分房这些约束也一并定死。口径先写清楚,"算得对不对"才可复现、可验收。
- 算法实现交给 AI,我做评审与交叉校验:2,058 行空间分析内核(栅格化 + 8 邻域加权 Dijkstra + 多源距离场 + LOS 视线平滑)由 AI 按规格产出;我逐段核对边界条件与退化场景,并要求"报告距离"与"栅格场值"两条独立口径互相印证——两套算法算出来不一致就不算通过。
- 工程化落地:Go 侧统一分析流水线——URL 下载 → 内容哈希幂等归档 → 隔离工作区 → 脚本执行(120s 超时 + stderr 归 Zap)→ 固定名归档 → 上传对象存储;7 个分析脚本与 17 条对外接口共用同一套入口,出图与报告生成标准化。
- 平台后端(mgserver Go 微服务)的交付与对接:这套平台的后端底座是一套多人协作的 Go 微服务——Gin 网关 + gateway / auth / cloud / pay / openim 五个服务,etcd 服务注册与发现,GORM + MySQL、Redis、RabbitMQ 与 rustfs 对象存储。我在这层负责交付与对接:部署编排拆成 infra / services 两份 compose——前端不再各自打镜像,改 dist 外挂目录 + 单个 nginx 容器同时反代 gateway 与对象存储、对外只占一个端口,中间件版本固定、健康检查与启动顺序一并写进编排;补 rustfs 对象存储客户端;对接智慧消防平台(授权 token 校验、后台平台地址接口);把 api_path + api_method 透传给 go-fast 做数据范围鉴权,路由模板改用 c.FullPath() 以支持动态参数;补齐库初始化(区域标注点 / 楼层白模 / 档案楼)与 RabbitMQ、部署、远程开发文档。
- 对外封装:17 条 HTTP API 与 10 个 MCP 工具(Streamable HTTP + Bearer 鉴权),让同一套分析能力既给前端页面用,也给大模型当工具调。
- 支线:AI 图像识别测试工具(React + FastAPI,集成 YOLO26 / SAM3 / YOLOE-SEG,多模型对比与掩码保留);消防规范爬虫抓取 1,994 篇规范文件并做国标自动分类,基于 FastGPT 构建消防规范 RAG 知识库。
结果
两套口径交叉校验下,距离高估从 40% 压到 8% 以内;全楼最不利疏散 12.77m / 6–7 秒(旧实现高估到 22.2m);房间级最不利 12.81m(旧 15.44m);全场计算从分钟 / 小时级降到秒级。
Go 1.26 / GingRPC / etcdGORM
MySQL / RedisRabbitMQnginx
CasbinZap
mcp-goezdxfnumpy / scipy
scikit-image / matplotlibAI 辅助编码Docker
左侧构件树(建筑 / 结构 / 机电 / 消防),右侧分析参数面板
CAD 模型与现场点云贴合比对