Skip to content

miaoxing4/llm4vdu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLM4vDU

三星 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

API 使用示例

# 创建配置
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/logs

项目结构

llm4vdu/
├── 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       # 依赖列表

支持的 YANG 模型

  • o-ran-transceiver (射频模块管理)
  • o-ran-shared-cell (小区配置)
  • o-ran-processing-element (处理单元)
  • o-ran-performance-management (性能管理)
  • o-ran-interfaces (接口管理)
  • o-ran-hardware (硬件管理)

配置说明

NETCONF 连接配置

from llm4vdu.core import NETCONFConfig

config = NETCONFConfig(
    host="192.168.1.100",
    port=830,
    username="admin",
    password="password",
    timeout=30,
)

LLM 配置

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!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages