架构
本文说明 PlantPulse AI 由什么组成、为什么这样划分。端口清单见 服务端口映射,安装步骤见 安装。
结构一览
브라우저 (HTTPS · SSE)
│
┌──────────▼──────────┐
│ plantpulse-proxy │ ← 사용자 접점 (80 · 443, 콘솔 HTTPS 5960)
│ Host 로 뒷단을 고른다 │
└───┬──────────────┬──┘
admin.* · 5960│ │그 외
(평문 5959 는 직결) ▼ ▼
┌──────────────┐ ┌──────────────────────────────────┐
│ 관리 콘솔 │ │ 코파일럿 (묻기·제안·자동화) │
│ admin-web │ │ 에이전트 루프 · 도구 호출 │
│ + admin-api │ └───┬────┬────┬────┬────┬───────┬──┘
└──────────────┘ │ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
시계열 RAG 문서 비전 디지털 모델
인사이트 이해 스레드 게이트웨이
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
추론 LightRAG docling 전용 vLLM
서버 +Qdrant Neo4j 임베딩·리랭커
+Neo4j
用户接触到的入口是代理。 Copilot(提问 · 建议 · 自动化)、管理控制台以及各个 API 都在它后面 —— 目的是把防火墙、TLS、审计集中到一处。例外是管理控制台的明文入口(5959),供内网中以 IP 直连的运维人员直接访问控制台容器 → 服务端口映射
划分为七条分支
每条分支都由关口(API)与重型工作者成对构成。关口轻量并承载策略, 工作者使用 GPU。这样划分之后,把工作者迁到其他机器或扩展为多台时, 关口的地址不会改变。
| 分支 | 关口 | 工作者 | 职责 |
|---|---|---|---|
| 聊天 | Copilot | — | 人员使用的界面(提问 · 建议 · 自动化)· 智能体循环 · 工具调用 · SSE 流式传输 |
| 时序 | 洞察 API | 推理服务器 | 异常检测 · 预测(TSPulse · TTM) |
| 文档检索 | RAG API | LightRAG | 索引 · 混合检索 |
| 文档理解 | 文档理解 API | docling | 将 PDF、表格、公式转为 markdown |
| 视觉 | 视觉 API | LLM 引擎(vLLM 直连)· docling | 仪表读数 · 缺陷检测 · OCR |
| 模型 | LiteLLM | vLLM · 嵌入 · 重排器 | 聊天、管理控制台、外部调用的模型统一入口 |
| 数字主线 | 数字主线 API | 专用 Neo4j | 外部系统(MES·SCM·ERP·PLM·QM)连接器注册表 · 工厂图镜像 · 设备时间线 |
这是 2026.10 起默认纳入技术栈的分支。它把平台的设备与标签主数据、事件,以及外部系统提供的
工单、零件、人员仅以引用方式汇聚,连成一张图(镜像)。运维人员在管理控制台的
数字主线导航中接入连接器,提问与自动化则通过 thread_ 工具读取设备时间线和关联关系 —— Copilot 中没有专用界面,只是能力增强 →
数字主线
管理控制台的界面(admin-web)是静态文件,登录判定与状态汇总由其后的
admin-api 完成。也就是说,认证的权威来源只有一处。
一次查询的处理顺序
「3라인 압축기 요즘 어때?」
│
① 이름을 ID 로 바꾼다 search_domains (플랫폼 통합 MCP)
② 무엇을 볼지 고른다 — 에이전트가 도구를 고른다
③ 데이터를 가져온다 insight_analyze_asset · get_tag_history …
④ 필요하면 문서·사진을 더 본다 rag_search · vision_inspect
⑤ 모아서 답을 만든다 LiteLLM ─▶ Aura
│
└─▶ SSE 로 한 글자씩 화면에 흘린다
②–④ 并非只执行一次。 智能体会根据工具结果选择下一个工具,如此反复 —— 这就是「为什么回答慢」的答案,也是「为什么必须开启工具」的答案。
🔴 已关闭的工具对智能体不可见。 哪些工具一开始就启用、哪些处于关闭 → MCP 工具地图
模型 —— 调用名称共四个
模型网关(LiteLLM)以 OpenAI 兼容 API 对外提供内部模型。调用名称只有四个。
| 调用名称 | 转发到何处 | 实际模型 |
|---|---|---|
aura-lite | 内部 LLM 引擎 | Aura(默认 Aura-Lite-NVFP4)—— 文本与图像通用 |
aura-vision | 同一引擎 —— 视觉用别名 | 同上模型 |
aura-embedding-4b | 嵌入引擎 | Aura-Embedding-4B |
aura-reranker-0.6b | 重排器引擎 | Aura-Reranker-0.6B |
gpt-4o · text-embedding-3-large 已废除以前使用 OpenAI 兼容别名(gpt-4o · gpt-4o-mini · text-embedding-3-large ·
rerank-multilingual-v3.0)调用。现在不再提供兼容别名 —— 使用旧名称调用时,
网关会直接以错误拒绝。若外部集成脚本或配置中仍残留旧名称,请改为上表中的名称。
aura-vision 并不是«另一个视觉模型»Aura 本身即可读取图像。aura-vision 是网关附加的别名,使调用方能够通过名称表达意图,
无论用哪个名称调用,应答的都是同一个引擎。
聊天(Copilot)· 管理控制台 · 外部调用的 /llm/ 会经过网关。
LightRAG · 视觉 API · 时序洞察 API 则直接连接 vLLM。
因此这些组件使用的不是网关别名(aura-vision),而是 vLLM 对外暴露的名称
(aura-lite)——「网关日志里看不到视觉调用」并不是故障。
Aura 是在开源基础模型之上追加训练制造与工业数据而成的自研模型 → Aura LLM · AI 模型
数据存放在哪里
🔴 AI 技术栈不会另行搭建自己的数据库。 关系型、时序、缓存、对象存储 均与平台共用。AI 专用的只剩图数据库与向量存储。
| 存储 | 归属 | 存放内容 |
|---|---|---|
| PostgreSQL | 平台共用 | 配置 · 聊天记录 · 文档索引状态 · 连接器注册表(DB pi 的 co · dt 等 schema) |
| Aster TSDB | 平台共用 | 时序传感器值 · 推理历史 |
| Redis | 平台共用 | 缓存 · 会话 |
| RustFS | 平台共用 | 文档 · 图像 |
| Qdrant | AI 专用 | 文档嵌入(向量) |
| Neo4j | AI 专用 | 文档知识图谱 |
| Neo4j(数字主线专用) | AI 专用 | 工厂图镜像 —— 仅为引用,可从源系统重建 |
设备本体由平台持有,并通过统一 MCP 对外提供。此处的 Neo4j 是文档检索所使用的图谱 —— 以前曾有独立的本体专用服务,现已并入平台。 数字主线的镜像放在另一个实例上,以免彼此混淆。
共享数据意味着平台即依赖对象。「AI 无法作答」的排查顺序是 ① 平台是否存活 ② 模型(网关、LLM 引擎)是否响应 ③ 工具是否已开启 → 问题排查
资产层级沿用平台定义
数据工具通过基于 ISA-95 / OPC-UA 的层级来指向对象。
Enterprise ─ Site ─ Area ─ Line ─ Equipment ─ Tag ─ Point
엔터프라이즈 사이트 구역 라인 설비 태그 시계열 값
确定「3 号线压缩机」这类说法对应该层级中的哪个节点,是查询的第一步。 图像与文档工具的运行与该层级无关。
可观测性与隔离网络
| 组成要素 | 职责 |
|---|---|
| Phoenix | 追踪智能体的一轮交互按什么顺序调用了哪些工具 |
| DCGM | GPU 利用率、温度、显存指标 |
| 内部镜像仓库 | 在隔离网络中从内部获取镜像 |