自然语言等离子体控制系统

一个概念验证系统,使研究人员能够使用自然语言命令控制KSTAR等离子体参数,并实时可视化命令翻译过程和温度变化。

  • by eunjo99
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 eunjo99/kstar_mcp

使用说明

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

  1. 下载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
    
  2. 构建EPICS基础软件:

    cd base-7.0.9
    make
    
  3. 设置环境变量:

    export EPICS_BASE=/path/to/epics/base-7.0.9
    export PATH=$EPICS_BASE/bin/darwin-aarch64:$PATH  # Adjust for your platform
    
  4. 验证SoftIOC安装:

    which softIoc
    # Should output: /path/to/epics/base/bin/darwin-aarch64/softIoc
    

步骤2:克隆项目并进行设置

  1. 克隆仓库:

    git clone https://github.com/yourusername/kstar-mcp-poc-v2.git
    cd kstar-mcp-poc-v2
    
  2. 创建虚拟环境:

    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 配置环境:

    cp config.env.example .env
    # Edit .env and add your OpenAI API key (optional for demo mode)
    

🚀 快速入门

选项1:演示模式(首次使用推荐)

  1. 启动应用程序:

    python main.py
    
  2. 打开网页浏览器: 导航至 http://localhost:8000

  3. 尝试命令:

    • 输入: "Raise plasma temperature to 12 keV"
    • 点击“执行命令”
    • 观看实时翻译和温度变化!

选项2:使用OpenAI API(完整大型语言模型模式)

  1. 设置API密钥:

    # Edit .env file and add:
    OPENAI_API_KEY=your_openai_api_key_here
    
  2. 启动应用程序:

    python main.py
    

选项3:使用EPICS SoftIOC(高级)

  1. 启动SoftIOC (在另一个终端中):

    export EPICS_CA_AUTO_ADDR_LIST=NO
    export EPICS_CA_ADDR_LIST=127.0.0.1
    softIoc -d databases/kstar_control.db
    
  2. 启动应用程序 (在另一个终端中):

    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)

🎮 使用指南

网页界面

  1. 自然语言指令以英文输入命令
  2. 命令翻译观看四步翻译过程:
    • 自然语言输入
    • 大型语言模型(LLM)解释
    • EPICS SET 命令
    • 执行结果
  3. 实时监控观察图表上的温度变化
  4. 命令历史审查所有已执行的命令

支持的命令

  • 温度控制:

    • "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)模拟

关键组件

  1. 命令解析器将自然语言转换为结构化命令
  2. 执行引擎协调命令的执行与监控
  3. EPICS 控制器管理PV通信
  4. **网页用户界面(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

🐛 故障排除

常见问题

  1. 端口8000已被占用:

    lsof -ti:8000 | xargs kill -9  # macOS/Linux
    netstat -ano | findstr :8000   # Windows
    
  2. EPICS连接失败:

    • 检查SoftIOC是否正在运行
    • 验证环境变量
    • 使用演示模式进行测试
  3. OpenAI API 错误:

    • 验证API密钥 .env 文件
    • 检查API密钥是否有足够的信用额度

🤝 贡献(或:参与贡献)

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建一个特性分支
  3. 做出你的更改
  4. 彻底测试
  5. 提交拉取请求

📄 许可证

这个项目旨在用于研究和教育目的。

🙏 致谢

  • 用于控制系统框架的EPICS社区
  • OpenAI提供的语言模型功能
  • KSTAR研究团队(针对等离子体物理领域)

📞 支持

对于问题或疑虑:

  1. 查看故障排除部分
  2. 审查项目结构
  3. 运行测试套件

快乐等离子操控! 🌟