基于检索增强生成(RAG)和技能成功率预测的电力系统仿真代码自动生成系统。
通过Milvus向量数据库检索相关技能代码,并使用神经网络预测技能执行成功率,从而为CloudPSS电力系统仿真平台自动生成高质量的Python代码。
- RAG增强代码生成: 基于向量检索的上下文增强,提供相关技能代码参考
- 技能成功率预测: 使用神经网络预测代码执行成功概率,优先选择高成功率技能
- 流式输出: 支持实时流式响应,提升用户体验
- 自动错误处理: 智能识别错误并触发技能检索进行修复
- 多轮对话支持: 保持会话上下文,支持迭代式代码开发
┌─────────────────────────────────────────────────────────────┐
│ 用户请求 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ FastAPI 服务器 │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Open Interpreter │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ 代码执行器 │ │ 会话管理 │ │ 消息处理 │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ RAG Pipeline │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ Milvus检索 │→│ 技能预测器 │→│ LLM生成器 │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Milvus │ │ OpenRouter│ │ CloudPSS │
│ 向量数据库│ │ LLM │ │ 平台 │
└──────────┘ └──────────┘ └──────────┘
- Python 3.10+
- Docker (用于运行Milvus)
- CUDA (可选,用于GPU加速)
- 克隆项目
git clone https://github.com/create-my/CloudPSS-RAG-Interpreter.git
cd CloudPSS-RAG-Interpreter- 安装依赖
pip install -r requirements.txt- 启动Milvus数据库
# 使用Docker启动Milvus
docker run -d --name milvus-standalone \
-p 19530:19530 \
-p 9091:9091 \
milvusdb/milvus:v2.3.3- 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入你的API密钥和配置- 下载模型文件
将以下模型文件放入 models/ 目录:
failure_reason_predictor.pth- 技能成功率预测模型all-MiniLM-L6-v2/- 文本嵌入模型(可从HuggingFace下载)
- 初始化向量数据库
cd src
python milvus_init.py --csv ../data/skills_27.csv- 启动服务器
python server.py单次查询
python client.py --task "获取模型中的所有元件"批量测试
python client.py --csv ../data/tasks.csvAPI调用
curl "http://localhost:8000/chat?message=获取模型中的所有元件"CloudPSS-RAG-Interpreter/
├── src/
│ ├── rag_pipeline.py # RAG管道核心实现
│ ├── server.py # FastAPI服务器
│ ├── client.py # 测试客户端
│ └── milvus_init.py # Milvus初始化工具
├── models/
│ ├── failure_reason_predictor.pth # 预测模型
│ └── all-MiniLM-L6-v2/ # 嵌入模型
├── data/
│ └── skills.csv # 技能数据样本
├── docs/
│ └── ... # 文档
├── .env.example # 环境变量模板
├── requirements.txt # 依赖列表
└── README.md # 项目说明
执行代码生成任务
参数
message(string): 任务描述
返回
- 消息列表,包含生成的代码和执行结果
获取当前会话历史
健康检查
技能预测器使用神经网络分析以下失败原因:
| 失败类型 | 说明 |
|---|---|
| 属性错误 | 对象缺少属性或方法 |
| 变量或引用错误 | 变量未定义 |
| 键值或索引错误 | 字典/列表访问错误 |
| 类型错误 | 类型不匹配 |
| 业务逻辑错误 | 资源未找到等 |
| 完成任务 | 成功执行 |
| 变量名 | 说明 | 默认值 |
|---|---|---|
| LLM_API_KEY | OpenRouter API密钥 | - |
| MILVUS_HOST | Milvus服务器地址 | localhost |
| MILVUS_PORT | Milvus端口 | 19530 |
| CLOUDPSS_TOKEN | CloudPSS平台Token | - |
| CLOUDPSS_MODEL | CloudPSS模型ID | - |
- 准备CSV格式的技能数据:
state,skill
"用户请求描述","对应的代码实现"- 导入到Milvus:
python milvus_init.py --csv your_skills.csv- 首次运行需要先初始化Milvus数据库
- 服务器启动后会自动加载技能预测模型
Q: 端口被占用怎么办?
# Windows
netstat -ano | findstr ":8000"
taskkill /F /PID <进程ID>
# Linux/Mac
lsof -i :8000
kill -9 <进程ID>Q: Milvus连接失败? 确保Milvus容器正在运行且端口19530可访问。
Q: 模型加载失败?
检查 models/ 目录下是否有:
failure_reason_predictor.pthall-MiniLM-L6-v2/文件夹
MIT License