sageLLM Control Plane - Intelligent request routing, scheduling, and engine lifecycle management
Project description
sageLLM Control Plane
Protocol Compliance (Mandatory)
- MUST follow Protocol v0.1: https://github.com/intellistream/sagellm-docs/blob/main/docs/specs/protocol_v0.1.md
- Any globally shared definitions (fields, error codes, metrics, IDs, schemas) MUST be added to Protocol first.
Intelligent request routing, scheduling, and engine lifecycle management for sageLLM.
Features
- 🎯 Scheduling Policies - FIFO, Priority, SLO-aware, Cost-optimized, Adaptive
- ⚖️ Load Balancing - Intelligent request routing across multiple engine instances
- 📈 Autoscaling - SLA-based autoscaling for Prefill/Decode instances
- 🔄 Engine Lifecycle - Spawn, stop, health check, auto-restart
- 📊 Observability - Metrics collection, performance monitoring
- 🧩 Parallelism - TP, PP, DP, EP strategy optimization
Installation
# Basic installation
pip install isagellm-control-plane
# With optional features
pip install isagellm-control-plane[gpu] # GPU monitoring
pip install isagellm-control-plane[metrics] # Prometheus metrics
pip install isagellm-control-plane[all] # All features
Requirements: Python 3.10+
🚀 开发者快速开始
git clone git@github.com:intellistream/sagellm-control-plane.git
cd sagellm-control-plane
./quickstart.sh # 一键安装开发环境(含依赖)
# 或手动安装
pip install -e ".[dev]"
运行测试:
pytest tests/ -v
Quick Start
Running Modes
| Mode | Use Case | Backend |
|---|---|---|
| CPU | Development/CI | HuggingFace Transformers |
| GPU | Production | CUDA/Ascend |
CPU Mode (Development)
from sagellm_core.engines.cpu import create_cpu_engine
from sagellm_control import LocalEngineClient
from sagellm_protocol import Request
# Create CPU engine with TinyLlama
engine = create_cpu_engine(
engine_id="cpu-001",
model_path="TinyLlama/TinyLlama-1.1B-Chat-v1.0",
max_new_tokens=50,
)
await engine.start()
# Create local client
client = LocalEngineClient(engine)
# Execute request
request = Request(
request_id="req-001",
trace_id="trace-001",
model="TinyLlama/TinyLlama-1.1B-Chat-v1.0",
prompt="What is AI?",
max_tokens=30,
)
response = await client.execute_request(request)
print(f"Response: {response.output_text}")
print(f"TTFT: {response.metrics.ttft_ms:.2f}ms")
await engine.stop()
See examples/cpu_engine_demo.py for complete examples.
Execution API
Complete inference execution interface:
from sagellm_control import ControlPlaneManager
from sagellm_protocol import Request
# 使用本地执行器(CPU 模式)
cp = ControlPlaneManager(mode="local")
# 1. 非流式推理
request = Request(
request_id="req-001",
trace_id="trace-001",
model="test-model",
prompt="Hello, how are you?",
max_tokens=100,
stream=False,
)
response = await cp.execute_request(request)
print(f"Output: {response.output_text}")
print(f"TTFT: {response.metrics.ttft_ms:.2f} ms")
# 2. 流式推理
async for event in cp.stream_request(request):
if event.event == "delta":
print(event.chunk, end="", flush=True)
# 3. 文本嵌入
embeddings = await cp.get_embeddings(
texts=["Text 1", "Text 2", "Text 3"],
model_id="embedding-model"
)
print(f"Generated {len(embeddings)} embeddings of dimension {len(embeddings[0])}")
See examples/execution_layer_demo.py for more examples.
Architecture
sagellm_control/
├── types.py # Core data types (RequestMetadata, EngineInfo, etc.)
├── strategies/ # Scheduling policies (FIFO, Priority, SLO, etc.)
├── executors/ # Execution coordinators (HTTP, LocalAsync)
├── router.py # Request routing and load balancing
├── autoscaler.py # SLA-based autoscaling
├── parallelism.py # Parallelism strategy optimization
├── manager.py # Main ControlPlaneManager
└── engine_lifecycle.py # Engine lifecycle management
Documentation
Related Repositories
- sagellm - Umbrella 包 + CLI
- sagellm-protocol - 协议定义
- sagellm-backend - 后端抽象
- sagellm-gateway - API 网关
License
Proprietary - IntelliStream
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 isagellm_control_plane-0.3.0.3.tar.gz.
File metadata
- Download URL: isagellm_control_plane-0.3.0.3.tar.gz
- Upload date:
- Size: 96.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee4feb593a8267e2c4d97f7168fcf1ebd6ca1d6bcfeaf9f26ae2c44354128a1b
|
|
| MD5 |
a634344c2967c993306cb193c81455f4
|
|
| BLAKE2b-256 |
5673f16a0f9edba6852f6dec5d86563b06da41dcfc6ed959404bcb6e5a445b2c
|
File details
Details for the file isagellm_control_plane-0.3.0.3-py2.py3-none-any.whl.
File metadata
- Download URL: isagellm_control_plane-0.3.0.3-py2.py3-none-any.whl
- Upload date:
- Size: 117.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c8832ad6c03a11cf2395a9ab0f6d0f5efda0c913e1f892a05cba8b88a0f52ea
|
|
| MD5 |
0cb043903f889fa07cc9e948ca5bcc90
|
|
| BLAKE2b-256 |
e6af8a96bcfcb492704c9f6e4d044f681778554119b317ca625bd544ff6b4f45
|