Skip to main content

Platform Architecture

System Configuration Diagram

┌─────────────────────────────────────────────────────────────┐
│ PlantPulse AI │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ AI Chat (코파일럿 UI) │ │
│ │ 자연어 대화 · SSE 스트리밍 · 리치 시각화 │ │
│ └────────────────────────┬──────────────────────────────┘ │
│ │ │
│ ┌────────────────────────┼──────────────────────────────┐ │
│ │ 내장 에이전트 (AgentOrchestrator + ToolRegistry) │ │
│ │ 에이전트 루프 · 도구 자동 호출 · LiteLLM(gpt-4o) │ │
│ └────────────────────────┬──────────────────────────────┘ │
│ │ │
│ ┌────────────┬───────────┴────┬─────────┬───────────────┐ │
│ │ 통합 MCP │ TimeSeries │ RAG │ AURA LLM │ │
│ │ (온톨로지 │ -Insight │(LightRAG│ LLM·Embed·Re │ │
│ │ 포함) │ 27도구 │ 서버) │ rank·Multi │ │
│ └─────┬──────┴───────┬────────┴────┬────┴───────────────┘ │
│ │ │ │ │
│ ┌─────┴────┬─────────┴─┬──────┬────┴────┬─────────┐ │
│ │Postgre │Cassan │Valkey│ MinIO │ Qdrant │ │
│ │ SQL │ dra │(Redis)│ (S3) │(Vector) │ │
│ └──────────┴───────────┴──────┴─────────┴─────────┘ │
│ (PostgreSQL·Cassandra·Redis·MinIO = 플랫폼 공용, Neo4j·Qdrant = LightRAG 저장소)
└─────────────────────────────────────────────────────────────┘

Layer Structure

PlantPulse AI consists of four layers.

Presentation Layer

ComponentRoleTechnology
AI Chat WebUser conversation interface + built-in agentJava 21, Spring Boot 3.4, JSP
TimeSeries DashboardAnalysis result visualizationNext.js, ECharts
RAG WebUIDocument managementLightRAG WebUI (/webui)

AI Service Layer

ComponentRoleTechnology
Integrated MCPFactory data gateway (116 APIs) + ontology (5 tools)Platform server-web /api/v5/mcp, MCP Protocol
TimeSeries-InsightAnomaly detection + prediction (27 tools)Python, FastAPI, IBM Granite TSPulse, TTM
RAGTechnical document search (3 tools)LightRAG 1.5.4, Qdrant, Neo4j

AI Infrastructure Layer

ComponentRoleTechnology
AURA LLMIndustry-specialized language modelIn-house fine-tuned model (vLLM serving)
LiteLLMLLM proxy/routing (chat LLM gateway)OpenAI-compatible API
Built-in agentAgent loop + tool call orchestrationcopliot-web AgentOrchestrator

Data Layer

ComponentRolePort
PostgreSQL 18Relational data (metadata, settings, chat history)5432
Apache CassandraTime series data (sensor values, inference history)9042
Neo4jGraph data (ontology)7687
QdrantVector data (embeddings)6333
ValkeyCache (sessions, temporary data)6379
MinIOObject storage (documents, images)9000/9001

Data Flow

User Query Processing Flow

사용자 질문


AI Chat Web ──SSE 스트리밍──▶ 브라우저


내장 에이전트 (AgentOrchestrator 에이전트 루프)

├──▶ LiteLLM Proxy ──▶ AURA LLM (gpt-4o, 의도 분석 · tool-calling)

├──▶ 통합 MCP (실시간 데이터 조회 + 온톨로지 관계 탐색)
│ ├── 플랫폼 server-web /api/v5/mcp
│ └── Neo4j (그래프 DB)

├──▶ TimeSeries-Insight (이상 탐지/예측)
│ ├── Cassandra (시계열 데이터)
│ └── IBM Granite TSPulse / TTM

├──▶ RAG (LightRAG 문서 검색)
│ ├── Qdrant (벡터 검색)
│ └── Neo4j (지식 그래프)

└──▶ LiteLLM Proxy ──▶ AURA LLM (종합 답변 생성)

ISA-95 Asset Hierarchy

PlantPulse follows an asset hierarchy based on the ISA-95/OPC-UA standards:

Company (회사)
└── Site (공장/사이트)
└── Area (구역)
└── Line (생산 라인)
└── Equipment (설비)
└── Tag (센서 태그)
└── Point (시계열 데이터)

All MCP tools query data based on this hierarchy.


Inter-Module Integration

┌──────────┐ 데이터+온톨로지 ┌──────────────────┐
│ PlantPulse│◄────────────────│ 통합 MCP │
│ 플랫폼 │ │ (server-web) │
│ (+ Neo4j) │ └────────┬─────────┘
└──────────┘ │

┌──────────┐ 센서 데이터 ┌─────┴────────────┐
│ Cassandra │◄────────────────│TimeSeries-Insight │
│ PostgreSQL│◄────────────────│ (이상탐지/예측) │
└──────────┘ └──────┬────────────┘

┌──────────┐ 벡터 검색 ┌─────┴──────┐
│ Qdrant │◄────────────────│ RAG │
│ Neo4j │◄────────────────│ (LightRAG) │
└──────────┘ └──────┬──────┘

┌──────┴──────┐
│ AURA LLM │
│ (통합 추론) │
└─────────────┘