三星 vDU 自然语言控制代理系统 - 基于 YANG 和 NETCONF 协议
LLM4vDU 是一个使用大语言模型 (LLM) 实现自然语言控制三星 vDU (虚拟分布式单元) 设备的代理系统。该系统将用户的自然语言请求转换为 NETCONF/YANG 配置,实现 5G 网络设备的智能化运维。
- 自然语言理解: 将自然语言转换为结构化意图
- RAG 检索增强: 基于 YANG 模型知识库的智能检索
- 配置自动生成: LLM 生成符合 YANG schema 的 NETCONF 配置
- 配置验证: XML 语法和 YANG 结构验证
- 访问控制: 基于 RFC 8341 的细粒度权限管理
- 人类审计: Human-in-the-Loop 审批机制
- 完整审计日志: 所有操作可追溯
+------------------------------------------------------------------+
| 用户交互层 (REST API / CLI) |
+------------------------------------------------------------------+
│
▼
+------------------------------------------------------------------+
| 意图理解层 → RAG检索 → LLM决策引擎 → 配置验证 → 访问控制 |
+------------------------------------------------------------------+
│
▼
+------------------------------------------------------------------+
| 人类审计层 → NETCONF 执行 → 三星 vDU 设备 |
+------------------------------------------------------------------+
cd llm4vdu
pip install -r requirements.txt# 创建 .env 文件
cp .env.example .env
# 编辑 .env 文件,填入以下配置:
# OpenAI API
OPENAI_API_KEY=your-api-key
# 或者使用其他 LLM 提供商
LLM_PROVIDER=openai
LLM_MODEL=gpt-4# 启动 API 服务器
python -m llm4vdu.main --mode api --port 8000
# 或者使用 uvicorn
uvicorn llm4vdu.api_server:app --host 0.0.0.0 --port 8000# 创建配置
curl -X POST http://localhost:8000/api/v1/config \
-H "Content-Type: application/json" \
-d '{
"user_input": "把小区 CELL-01 的发射功率调整为 -10dBm",
"device_name": "vDU-01",
"user_id": "operator01"
}'
# 查询配置
curl -X POST http://localhost:8000/api/v1/query \
-H "Content-Type: application/json" \
-d '{
"user_input": "查看所有小区状态",
"device_name": "vDU-01"
}'
# 审批请求
curl -X POST http://localhost:8000/api/v1/approve \
-H "Content-Type: application/json" \
-d '{
"request_id": "your-request-id",
"action": "approve",
"approver": "admin"
}'
# 获取审计日志
curl http://localhost:8000/api/v1/audit/logsllm4vdu/
├── core/ # 核心模块
│ ├── config.py # 配置管理
│ ├── netconf_client.py # NETCONF 客户端
│ └── yang_loader.py # YANG 模型加载器
├── modules/ # 业务模块
│ ├── intent_parser.py # 意图理解
│ ├── llm_engine.py # LLM 决策引擎
│ ├── rag_module.py # RAG 检索
│ ├── config_validator.py # 配置验证
│ ├── access_control.py # 访问控制
│ └── audit_module.py # 审计模块
├── tests/ # 测试文件
├── yang_models/ # YANG 模型目录
├── api_server.py # REST API 服务
├── main.py # 程序入口
└── requirements.txt # 依赖列表
- o-ran-transceiver (射频模块管理)
- o-ran-shared-cell (小区配置)
- o-ran-processing-element (处理单元)
- o-ran-performance-management (性能管理)
- o-ran-interfaces (接口管理)
- o-ran-hardware (硬件管理)
from llm4vdu.core import NETCONFConfig
config = NETCONFConfig(
host="192.168.1.100",
port=830,
username="admin",
password="password",
timeout=30,
)from llm4vdu.core import LLMConfig
config = LLMConfig(
provider="openai",
model="gpt-4",
api_key="your-api-key",
temperature=0.1,
max_tokens=2048,
)系统默认提供以下角色:
- admin: 完全访问权限
- operator: 小区和射频配置管理
- viewer: 只读访问
可修改 config/access_control.yaml 自定义访问控制规则。
所有操作都会记录到审计日志,包括:
- 用户请求
- 生成的配置
- 验证结果
- 审批状态
- 执行结果
日志保存在 ./logs/audit/ 目录。
MIT License
欢迎提交 Issue 和 Pull Request!