ModelArts Skill
Huawei Cloud ModelArts platform integration skill, featuring modular design, OBS as Notebook primary storage, and environment variable auto-authentication.
🔐 Security Model (CRITICAL)
All credentials handled internally, never returned to LLM:
┌─────────────────────────────────────────────────────────────┐
│ LLM / AIAgents │
│ ❌ NEVER sees: AK, SK, Security Token, raw credentials │
│ ✅ ONLY sees: Masked status, API results, resource IDs │
└─────────────────────────────────────────────────────────────┘
↕ (Safe data only)
┌─────────────────────────────────────────────────────────────┐
│ auth_manager.py (Secure Vault) │
│ 🔒 Credentials stored in memory only │
│ ✅ Only masked data exposed externally │
└─────────────────────────────────────────────────────────────┘
↕ (Secure session)
┌─────────────────────────────────────────────────────────────┐
│ Module Functions (Secure SDK Wrapper) │
│ Unified pattern: access.sdk().execute(api_func, ...) │
│ Returns: Standard format API responses only │
└─────────────────────────────────────────────────────────────┘
🔑 Authentication Methods
| Mode | How It Works |
|------|-------------|
| Notebook Mode | Auto-detects ModelArts environment, zero configuration |
| Local Mode | Reads MODELARTS_AK/SK/PROJECT_ID/REGION environment variables |
📚 Module Routing
Use keywords to find the corresponding reference file for function index and locations.
| Keyword | Reference File |
|---------|----------------|---------------|--------|
| notebook, jupyter, image, obs, flavor, cluster, auth | references/notebook.md |
| pool, resource pool, dedicated pool, node, workload, os network, plugin | references/pool.md |
| node pool, nodepool, scale node, node group, plugin, config template | references/node_pool.md |
| train, training job, 训练任务 | references/train.md |
| infer1.0, inference, service, 旧版推理服务,旧版在线服务 | references/infer_v1.md |
| infer2.0, inference, service, 新版推理服务,在线服务,新版在线服务 | references/infer_v2.md |
| management, workspace, authmode, authorization, quota, tag, scheduled event | references/management.md |
| swr, image repo, 镜像仓库 | references/swr.md |
| common, auth, api helper, format result, decorator | references/common.md |
📦 Module Architecture
modelarts/
├── scripts/
│ ├── common_module/ # 跨模块共享基础设施
│ │ ├── __init__.py
│ │ ├── _bootstrap.py # 统一引导
│ │ ├── auth.py # 认证管理
│ │ ├── api_helper.py # API 调用封装
│ │ └── result.py # 返回格式统一
│ │
│ ├── notebook_module/ # Notebook & 镜像管理
│ ├── pool_module/ # 资源池管理
│ ├── node_pool_module/ # 节点池管理
│ ├── train_module/ # 训练任务管理
│ ├── infer_v1_module/ # 旧版推理服务管理
│ ├── infer_v2_module/ # 新版推理服务管理
│ ├── management_module/ # 平台管理: 工作空间/授权/配额/事件
│ ├── swr_module/ # SWR 镜像仓库
│ └── __pycache__/
│
└── references/
├── notebook.md
├── pool.md
├── node_pool.md
├── train.md
├── infer_v1.md
├── infer_v2.md
├── management.md
├── swr.md
└── common.md
✅ Design Features
- Modular Design - One file per function, clean structure, easy to maintain
- OBS as Primary Storage - Notebook can use OBS buckets directly as root filesystem
- OBS Bucket Management - Built-in create/delete/list OBS bucket functions
- Environment Variable Auth - Zero configuration for local/CI environments
- Unified API Pattern - All functions use consistent calling pattern
- Clean Deliverables - No temp scripts, no debug code, no redundant files
- Node Pool Management - Independent node pool lifecycle management
- Plugin Management - Resource pool plugin listing and creation (ListPoolPlugins, CreatePoolPlugin)
- Node Configuration Template Query - Query node configuration template details (ShowNodeConfigTemplate)
- Common Infrastructure - Extracted shared infrastructure, improved code reuse
- Training Job Management - Full lifecycle: create/list/stop/delete training jobs
- Inference Service Management - Old v1 API: create/list/start/stop/update/delete inference services
- Workspace & Authorization - Workspace CRUD, auth mode, IAM authorization, quotas, scheduled events
- SWR Image Repository - Query training images from SWR
🎯 Quick Reference by Use Case
| What You Want To Do | Go To Module | |---------------------|-------------| | Start/Stop/Create/Delete Notebook | notebook_module | | Save Notebook to Image | notebook_module | | Attach/Detach OBS Storage | notebook_module | | Create/Delete OBS Buckets | notebook_module | | Create/Delete Dedicated Resource Pool | pool_module | | Batch Node Operations (Reboot/Delete/Lock/Resize) | pool_module | | Scale Node Pool Size | node_pool_module | | Create Additional Node Pools (different flavors) | node_pool_module | | List Resource Pool Plugins (ListPoolPlugins) | node_pool_module | | Create Plugin in Resource Pool (CreatePoolPlugin) | node_pool_module | | Query Node Configuration Template (ShowNodeConfigTemplate) | node_pool_module | | Create/Stop/Delete Training Job | train_module | | List Training Jobs (running/pending/completed) | train_module | | Create/Start/Stop/Delete Inference Service | infer_v1_module | | List/Get Inference Service Details | infer_v1_module | | List Models (custom/subscription) | infer_v1_module | | Create/Start/Stop/Delete Inference Service (新版) | infer_v2_module | | List/Get Inference Service Details (新版) | infer_v2_module | | Query Dedicated Pools & Flavors (新版) | infer_v2_module | | Get Service Exec Login Info (新版) | infer_v2_module | | Batch Delete Inference Services (新版) | infer_v2_module | | Service Version Management (新版) | infer_v2_module | | Service Events & Health Monitoring (新版) | infer_v2_module | | Region Detection & Consistency (新版) | infer_v2_module | | Create/Update/Delete Workspace | management_module | | Manage Authorization (add/delete/list) | management_module | | Query/Update Auth Mode | management_module | | List Quotas & Scheduled Events | management_module | | Query SWR Training Images | swr_module | | Infrastructure / Internal Tools | common_module |
扫码联系在线客服