Unified model resource management for Lumen ML services
Project description
Lumen Resources
Lightweight tooling for shipping Lumen ML services. This package centralizes how models are described, validated, downloaded, and cached so every service (CLIP, face, etc.) follows the same playbook—whether weights live on Hugging Face, ModelScope, or a private registry.
Why use it?
- Single source of truth – YAML configs describing deployments, devices, runtimes, and model aliases.
- Schema-backed validation – JSON Schema plus Pydantic to catch errors before runtime.
- Cross-platform downloads – Intelligent routing between Hugging Face and ModelScope with caching/resume support.
- CLI + Python API – Automate in CI or embed in service bootstraps.
- Result schemas – Typed response validators (
EmbeddingV1,FaceV1,LabelsV1) for downstream services.
Installation
# project install
pip install "lumen-resources @ git+https://github.com/EdwinZhanCN/Lumen.git@main#subdirectory=lumen-resources"
# dev install
git clone https://github.com/EdwinZhanCN/Lumen.git
cd Lumen/lumen-resources
pip install -e ".[dev,config]"
Optional extras depending on your targets:
pip install huggingface_hub
pip install modelscope
pip install torch torchvision
pip install onnxruntime
Usage
CLI
# download everything defined in config.yaml
lumen-resources download config.yaml
# strict config validation
lumen-resources validate config.yaml
# validate a model_info.json
lumen-resources validate-model-info path/to/model_info.json
# inspect cache contents (defaults to ~/.lumen/)
lumen-resources list ~/.lumen/
Python API
from lumen_resources import (
load_and_validate_config,
Downloader,
load_and_validate_model_info,
EmbeddingV1,
)
config = load_and_validate_config("config.yaml")
downloader = Downloader(config, verbose=True)
results = downloader.download_all(force=False)
model_info = load_and_validate_model_info("model_info.json")
Configuration essentials
metadata:
region: "other" # or "cn" to prefer ModelScope
cache_dir: "~/.lumen/models"
deployment:
mode: "single" # or "hub"
service: "clip"
services:
clip:
enabled: true
package: "lumen_clip"
backend_settings:
device: "cuda"
batch_size: 16
onnx_providers: ["CUDAExecutionProvider", "CPUExecutionProvider"]
models:
default:
model: "ViT-B-32"
runtime: "torch"
fp16:
model: "ViT-B-32"
runtime: "onnx"
metadata.regiondecides whether downloads prefer ModelScope or Hugging Face.backend_settingslets you declare execution providers, batch sizes, devices, etc.- Each entry in
modelsbecomes a cache namespace (clip/default,clip/fp16, …).
Reference
- Source:
src/lumen_resources/lumen_config.py– Typed config modelsdownloader.py– Platform abstraction + cachingcli.py– Command entrypointresult_schemas/– Response validators
- Docs: https://doc.lumilio.org
- Issues & support: open a ticket in the main Lumen monorepo.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lumen_resources-0.3.1.tar.gz.
File metadata
- Download URL: lumen_resources-0.3.1.tar.gz
- Upload date:
- Size: 102.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1db2d744e9bee2daddcd7a1c7ed25882cbea86639521da18c7696016c4a3463d
|
|
| MD5 |
c0134608aa20f2fcd71b1cda3131f3b6
|
|
| BLAKE2b-256 |
9f9f34f7f5ee58835f62e8b0b07cf348f08091e38471c6666ba64a01c979aba3
|
File details
Details for the file lumen_resources-0.3.1-py3-none-any.whl.
File metadata
- Download URL: lumen_resources-0.3.1-py3-none-any.whl
- Upload date:
- Size: 35.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
470c97ef682229bb908c8ff6a7ae4b7144fe06b9b9e4bf218ccff462e8ba0576
|
|
| MD5 |
32f47d6886694232c6f1ad7bdcd0a3cb
|
|
| BLAKE2b-256 |
51bf469001f4d7f84a24f4b98e9d1bdc304ba33175f108598447f01bce843af1
|