Intelligent LLM Infrastructure with Smart Model Selection
Project description
Nordlys
Smart LLM model routing with a checkpoint-based runtime.
Install
uv pip install -e .
Quick Start
from nordlys import Dataset, Trainer, Router, ModelConfig
# 1. Define models
models = [
ModelConfig(id="openai/gpt-4", cost_input=30.0, cost_output=60.0),
ModelConfig(id="openai/gpt-4o-mini", cost_input=0.15, cost_output=0.6),
]
# 2. Build training dataset with binary targets per model
dataset = Dataset.from_list([
{
"id": "1",
"input": "Design a database schema for this app",
"targets": {"openai/gpt-4": 1, "openai/gpt-4o-mini": 0},
},
{
"id": "2",
"input": "Summarize this short changelog",
"targets": {"openai/gpt-4": 0, "openai/gpt-4o-mini": 1},
},
])
# 3. Train checkpoint, then create runtime router
checkpoint = Trainer(models=models).fit(dataset)
router = Router(checkpoint=checkpoint)
result = router.route("Implement this parser")
print(result.model_id)
How It Works
- Clusters similar prompts together
- Learns which model performs best per cluster
- Routes new prompts to the optimal model
Runtime API
router.route(prompt, models=None)routes one prompt.router.route_batch(prompts, models=None)routes a list of prompts.- Optional
modelsfilter restricts candidates to specific model IDs.
Checkpoint I/O
checkpoint.to_json_file("router.json")
loaded = Router(checkpoint="router.json")
Links
Citation
This project is inspired by the Universal Router approach:
@article{universalrouter2025,
title={Universal Router: Foundation Model Routing for Arbitrary Tasks},
author={},
journal={arXiv preprint arXiv:2502.08773},
year={2025},
url={https://arxiv.org/pdf/2502.08773}
}
Paper: Universal Router: Foundation Model Routing for Arbitrary Tasks
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
nordlys-0.4.2.tar.gz
(29.6 kB
view details)
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
nordlys-0.4.2-py3-none-any.whl
(43.1 kB
view details)
File details
Details for the file nordlys-0.4.2.tar.gz.
File metadata
- Download URL: nordlys-0.4.2.tar.gz
- Upload date:
- Size: 29.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
febd4773b96acd8abb9be306631f6e89130dc106acb6d295e5b558be965abf0f
|
|
| MD5 |
dc26326a6ac5b77ebd44e125b870284e
|
|
| BLAKE2b-256 |
e67fc0234d4b56b72e4af57398e319844e90bd4aa3a76d42d685a1e795912aaa
|
File details
Details for the file nordlys-0.4.2-py3-none-any.whl.
File metadata
- Download URL: nordlys-0.4.2-py3-none-any.whl
- Upload date:
- Size: 43.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63c204d4bb25d70c3cf8ae42b3636c165ba8273929415e5d6dea027ace01f321
|
|
| MD5 |
9c67d5261934f38edc80c811e828f84a
|
|
| BLAKE2b-256 |
a8f8b3f01a696574cc1731ec9e4766058ff0deb0c3d8de7ed74ac1e7ad6d9dd7
|