内容
# 团队中心AI副驾驶与PLM助手
一款专为 **西门子Teamcenter PLM** 系统设计的智能、多层对话式助手和副驾驶。该助手表现为混合 **PLM副驾驶 + Teamcenter数据库助手 + 通用AI助手**,利用自定义的FastMCP服务器、有状态的槽填充工作流内存和直接的Gemini LLM路由。
---
## 📖 项目概述
该项目为西门子Teamcenter PLM提供了一个企业级对话式界面。通过将大型语言模型(Google Gemini)与模型上下文协议(MCP)和有状态的本地工作流集成,它允许工程师、管理员和用户通过自然语言查询搜索PLM记录、查看和编辑Teamcenter项目、启动工作流、检查属性和监控系统健康状况。
---
## 🎯 为什么选择这个项目?
像西门子Teamcenter这样的传统产品生命周期管理(PLM)系统非常强大,但它们存在陡峭的学习曲线、密集的层次界面和复杂的导航流程,这些因素会减缓工程师的工作。简单的任务——例如查找特定的CAD数据集、检查审批状态或启动修订——通常需要多个菜单和深入的培训。
该项目演示了 **对话式工程**:将自然语言交互引入PLM元数据工作流。通过将生成式AI与 **模型上下文协议(MCP)** 相结合,该副驾驶安全地将LLM直接连接到后端PLM API。工程师可以直接通过对话查询、更新和管理Teamcenter资源,而不是导航菜单。业务价值显而易见:显著的生产力提升、缩短的工程周期时间和新团队成员的无缝入职体验。
---
## ✨ 功能特点
* **AI副驾驶**:利用动态路由的自然语言对话式助手,用于即时本地启发式响应、Teamcenter操作或通用问题。
* **MCP集成**:完全集成的模型上下文协议(FastMCP)服务器,通过标准工具查询和管理Teamcenter数据。
* **Teamcenter操作**:对话式、渐进式槽填充工作流,创建项目、数据集、修订和触发具有验证的流程。
* **用户管理和RBAC**:支持“管理员”、“首席工程师”和“标准用户”等角色的细粒度基于角色的访问控制,具有权限级别的强制执行。
* **审计日志**:详细的活动日志,记录执行者操作、IP地址、用户代理、UTC时间戳和数据差异。
* **监控和诊断**:高级数据库、API和工作线程状态监控,自动日志轮换/修剪。
* **健康仪表盘**:显示API、数据库和后端连接状态的实时健康指标的可视化。
* **安全日志**:关键安全和管理操作的专用日志和可视化。
---
## 🔧 MCP工具生态系统
该项目集成了 **模型上下文协议(MCP)**,作为LLM和后端之间的安全网关,避免直接暴露数据库。FastMCP服务器动态注册了 **32种工具**,分为以下操作域:
* **项目管理**:搜索、检索、更新和删除Teamcenter项目和修订。
* **BOM操作**:获取直接组件并递归展开深层物料清单(BOM)树。
* **工作流管理**:创建流程模板、检查进度、批准或拒绝工程任务以及列出活动工作流。
* **数据集操作**:定位、搜索和下载模拟工程数据集和CAD文件。
* **元数据发现**:动态模式查询,列出支持的对象类型和列约束。
* **属性服务**:读取特定Teamcenter组件的单个、批量或所有动态元数据属性。
* **API发现**:浏览、搜索和检索REST目录中注册端点的文档和统计信息。
* **健康监控**:检索数据库诊断、活动会话速率和身份验证日志。
* **用户和会话服务**:检查配置文件和活动用户会话信息。
---
## 🚀 主要技术亮点
* **三层AI路由引擎**:通过本地拦截精确关键词(第1层),通过MCP客户端动态路由PLM操作(第2层),并将通用查询直接转发到Gemini LLM(第3层),实现40毫秒以下的概念查找。
* **FastMCP集成**:通过标准stdio通道向LLM公开32种安全、模式验证的数据库工具,解耦业务逻辑与AI配置。
* **有状态槽填充工作流**:对话式提取复杂多步骤PLM创建(项目、数据集、修订)所需的缺失参数,然后再提交到数据库。
* **JWT身份验证**:使用加密签名令牌的安全无状态身份验证和授权流程。
* **基于角色的访问控制(RBAC)**:控制健康仪表盘、原始控制台、用户管理和安全审计的细粒度用户权限。
* **审计日志**:捕获时间戳、执行者ID、客户端IP地址、浏览器用户代理字符串和详细数据库差异的结构化日志模式。
* **监控和可观察性**:实时事件日志流和自动日志维护例行程序,自动修剪365天前的记录。
* **健康仪表盘**:动态React指示器,监控API、数据库和后台工作线程连接状态。
* **SQLite PLM数据模拟**:在本地关系模式中实现父子BOM结构、工作流状态和用户会话。
* **企业安全控制**:限制管理角色突变,以保护系统的最后一个管理员免于意外自锁。
---
## 🛠️ 技术栈
* **前端**:React、TypeScript、Redux Toolkit、Vanilla CSS、Vite
* **后端**:FastAPI(Python)、Uvicorn、SQLite
* **AI & MCP**:Google Gemini API、模型上下文协议(MCP)
---
## ⚙️ 安装
### 后端设置
1. 导航到根目录并设置虚拟环境:
```bash
python -m venv venv
```
2. 激活虚拟环境:
* **Windows(PowerShell)**:
```powershell
venv\Scripts\Activate.ps1
```
* **Windows(CMD)**:
```cmd
venv\Scripts\activate.bat
```
* **Linux/macOS**:
```bash
source venv/bin/activate
```
3. 安装所需依赖项:
```bash
pip install -r requirements.txt
```
4. 复制环境模板并设置您的API密钥/秘密:
```bash
copy .env.example .env
```
*(在Linux/macOS上:`cp .env.example .env`)*
### 前端设置
1. 导航到前端目录:
```bash
cd frontend_src
```
2. 安装软件包依赖项:
```bash
npm install
```
---
## 🚀 运行项目
### 1. 启动后端服务器
从根目录激活虚拟环境:
```bash
python -m uvicorn backend:app --host 127.0.0.1 --port 8080
```
*注意:数据库 `teamcenter.db` 在首次运行时会自动初始化和填充。*
### 2. 启动前端服务器
从 `frontend_src` 目录:
* **Windows(PowerShell)**:
```powershell
$env:VITE_API_BASE_URL="http://127.0.0.1:8080"; npm run dev
```
* **Windows(CMD)**:
```cmd
set VITE_API_BASE_URL=http://127.0.0.1:8080&& npm run dev
```
* **Linux/macOS**:
```bash
VITE_API_BASE_URL="http://127.0.0.1:8080" npm run dev
```
---
## 🔑 演示账户
数据库预先填充了以下角色和凭证用于演示:
| 用户名 | 密码 | 角色 | 功能 |
| :--- | :--- | :--- | :--- |
| `mansi` | `password123` | **管理员** | 用户管理、权限授予、MCP资源管理器、审计日志 |
| `test_chief` | `password123` | **首席工程师** | 可观察性日志、健康诊断、安全审计 |
| `test_user` | `password123` | **标准用户** | 聊天副驾驶、简单搜索、属性、CAD查看器 |
---
## 📐 架构概述
应用程序使用多层堆栈来处理操作:
```text
[前端React应用] ──(HTTP/WS)──> [后端FastAPI] ──> [数据库SQLite]
│
├──> [MCP客户端] ──> [FastMCP服务器]
│
└──> [AI模型(Gemini API)]
```
### 流程描述:
1. **前端**:接收用户输入并呈现UI屏幕,与后端API通信。
2. **后端**:检查请求路由。第一层查询使用本地启发式方法立即解决;第二层请求利用有状态的工作流引擎或MCP客户端;第三层通用请求绕过MCP,直接进入Gemini LLM。
3. **数据库**:存储持久性元数据、审计日志和用户会话。
4. **MCP(模型上下文协议)**:通过专用JsonRPC接口将LLM连接到数据库搜索功能。
5. **AI模型(Gemini)**:处理复杂的对话查询并分类用户意图。
---
## 💼 展示的技能
* **全栈开发**:React单页应用程序与FastAPI后端API和SQLite存储层的端到端集成。
* **FastAPI后端工程**:使用`asyncio.to_thread`进行异步事件循环卸载,以实现非阻塞I/O操作。
* **React + TypeScript开发**:Redux状态架构、类型安全的数据管道和响应式自定义Vanilla CSS组件。
* **企业安全设计**:加密JWT身份验证、基于角色的访问控制(RBAC)和自锁数据库防护。
* **AI/LLM集成**:意图路由分类器、动态上下文提示和速率限制控制。
* **MCP(模型上下文协议)**:基于stdio的子进程执行和动态工具发现。
* **数据库设计**:结构化关系模式、父子BOM索引和自动数据轮换策略。
* **身份验证和授权**:基于标头的令牌注入、会话验证中间件和用户密码哈希。
* **可观察性和监控**:结构化审计追踪、客户端标头捕获和实时后端健康跟踪。
* **系统架构设计**:可重用包装器、REST API目录和解耦的工具层。
---
## 🔮 未来范围
* **Teamcenter身份验证**:与西门子Teamcenter安全服务的本地集成。
* **SSO(单点登录)**:Active Directory、SAML和OAuth2企业SSO支持。
* **企业部署**:使用Kubernetes扩展的Dockerized容器部署和PostgreSQL存储引擎。
---
* **最后更新**:2026年6月16日(GitHub投资组合展示通行证)