KSTAR MCP PoC v2 - 自然语言等离子体控制系统
🚀 表情符号“🚀”在中文中通常被翻译为“火箭”或直接保留为“🚀”以表示其形象,它常用来表示快速前进、发展迅速或充满活力和动力的事物。 具有自然语言命令翻译功能的交互式实时控制系统
一个概念验证系统,使研究人员能够使用自然语言指令控制KSTAR(超导托卡马克装置)的等离子体参数,并实时可视化指令转换过程及温度变化。
注这是一个概念验证(PoC),展示了一种简单方法,即设定目标值,当前值逐渐趋近于这些目标值。此方法旨在用于演示目的,未来版本将与复杂的模拟模型和机器学习算法相结合,以实现更逼真的等离子体物理行为。
🌟 主要特点
- 自然语言接口使用简单的英文指令控制等离子体温度
- 实时指令翻译可视化大型语言模型(LLM)如何将自然语言转换为EPICS SET命令
- 交互式监控实时监测温度、线圈电流和加热器功率
- 演示模式无需实际EPICS硬件即可完成完整模拟
- 基于网页的用户界面现代、响应式的网页界面,支持WebSocket更新
🎯 演示命令
尝试这些自然语言指令:
"Raise plasma temperature to 12 keV"
"Set temperature to 8 keV for 3 seconds"
"Increase heater power to 80%"
"Lower temperature to 6 keV"📋 前提条件
系统要求
- macOS/Linux/Windows
- Python 3.13+
- EPICS Base 7.0.9 配备 SoftIOC
所需软件
- 带有SoftIOC的EPICS Base
- Python 虚拟环境
- OpenAI API密钥(可选 - 无需此密钥也可运行演示模式)
🛠️ 安装指南
步骤1:安装EPICS基础软件和SoftIOC
- 下载EPICS Base 7.0.9:
wget https://epics.anl.gov/download/base/base-7.0.9.tar.gz
tar -xzf base-7.0.9.tar.gz- 构建EPICS基础软件:
cd base-7.0.9
make- 设置环境变量:
export EPICS_BASE=/path/to/epics/base-7.0.9
export PATH=$EPICS_BASE/bin/darwin-aarch64:$PATH # Adjust for your platform- 验证SoftIOC安装:
which softIoc
# Should output: /path/to/epics/base/bin/darwin-aarch64/softIoc步骤2:克隆项目并进行设置
- 克隆仓库:
git clone https://github.com/yourusername/kstar-mcp-poc-v2.git
cd kstar-mcp-poc-v2- 创建虚拟环境:
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 配置环境:
cp config.env.example .env
# Edit .env and add your OpenAI API key (optional for demo mode)🚀 快速入门
选项1:演示模式(首次使用推荐)
- 启动应用程序:
python main.py- 打开网页浏览器:
导航至 http://localhost:8000
- 尝试命令:
- 输入: "Raise plasma temperature to 12 keV" - 点击“执行命令” - 观看实时翻译和温度变化!
选项2:使用OpenAI API(完整大型语言模型模式)
- 设置API密钥:
# Edit .env file and add:
OPENAI_API_KEY=your_openai_api_key_here- 启动应用程序:
python main.py选项3:使用EPICS SoftIOC(高级)
- 启动SoftIOC (在另一个终端中):
export EPICS_CA_AUTO_ADDR_LIST=NO
export EPICS_CA_ADDR_LIST=127.0.0.1
softIoc -d databases/kstar_control.db- 启动应用程序 (在另一个终端中):
python main.py📁 项目结构
kstar_mcp_poc_v2/
├── README.md # This file
├── requirements.txt # Python dependencies
├── config.env.example # Environment configuration template
├── main.py # Main application entry point
├── test_system.py # System testing script
├── databases/
│ └── kstar_control.db # EPICS database for KSTAR simulation
└── src/
├── core/
│ └── execution_engine.py # Command execution logic
├── epics/
│ └── controller.py # EPICS PV communication
├── llm/
│ └── command_parser.py # Natural language parsing
└── ui/
└── demo_ui.py # Web UI (FastAPI + WebSocket)🎮 使用指南
网页界面
- 自然语言指令以英文输入命令
- 命令翻译观看四步翻译过程:
- 自然语言输入 - 大型语言模型(LLM)解释 - EPICS SET 命令 - 执行结果
- 实时监控观察图表上的温度变化
- 命令历史审查所有已执行的命令
支持的命令
- 温度控制:
- "Raise plasma temperature to 12 keV" - "Set temperature to 8 keV for 3 seconds" - "Lower temperature to 6 keV"
- 功率控制:
- "Increase heater power to 80%" - "Set coil current to 1500A"
🔧 技术细节
建筑
- 前端HTML5 + JavaScript + WebSocket
- 后端FastAPI + WebSocket
- LLMOpenAI GPT-4o-mini(可选)
- EPICS(在中文中通常直接音译为“EPICS”,但根据上下文,有时也可意译为“环境与过程集成控制系统”或“实验物理与工业控制软件系统”,具体翻译需根据实际应用场景确定)用于控制的过程变量(PVs)
- 模拟内存中光伏(PV)模拟
关键组件
- 命令解析器将自然语言转换为结构化命令
- 执行引擎协调命令的执行与监控
- EPICS 控制器管理PV通信
- 网页用户界面(Web UI)实时可视化与控制界面
过程变量(PVs)
KSTAR:PCS:TE:SP温度设定点KSTAR:PCS:TE:RBV温度反馈值KSTAR:COIL:CURR线圈电流KSTAR:HEATER:POW加热器功率
🧪 测试
运行测试套件以验证系统功能:
# Test all components
python test_system.py --component all
# Test individual components
python test_system.py --component parser
python test_system.py --component epics
python test_system.py --component engine🐛 故障排除
常见问题
- 端口8000已被占用:
lsof -ti:8000 | xargs kill -9 # macOS/Linux
netstat -ano | findstr :8000 # Windows- EPICS连接失败:
- 检查SoftIOC是否正在运行 - 验证环境变量 - 使用演示模式进行测试
- OpenAI API 错误:
- 验证API密钥 .env 文件 - 检查API密钥是否有足够的信用额度
🤝 贡献(或:参与贡献)
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支
- 做出你的更改
- 彻底测试
- 提交拉取请求
📄 许可证
这个项目旨在用于研究和教育目的。
🙏 致谢
- 用于控制系统框架的EPICS社区
- OpenAI提供的语言模型功能
- KSTAR研究团队(针对等离子体物理领域)
📞 支持
对于问题或疑虑:
- 查看故障排除部分
- 审查项目结构
- 运行测试套件
______________________________________________________________________
快乐等离子操控! 🌟
