Skip to main content

Intelligent LLM Infrastructure with Smart Model Selection

Project description

Nordlys

Smart LLM model router. Picks the best model for each prompt based on cost and quality.

Install

uv pip install -e .

Quick Start

from nordlys import Nordlys, ModelConfig
import pandas as pd

# 1. Define your models
models = [
    ModelConfig(id="openai/gpt-4", cost_input=30.0, cost_output=60.0),
    ModelConfig(id="openai/gpt-3.5-turbo", cost_input=0.5, cost_output=1.5),
]

# 2. Training data: questions + accuracy scores per model
df = pd.DataFrame({
    "questions": ["Write code", "What is 2+2?", "Explain quantum physics"],
    "openai/gpt-4": [0.95, 0.99, 0.92],
    "openai/gpt-3.5-turbo": [0.70, 0.99, 0.60],
})

# 3. Fit and route
router = Nordlys(models=models)
router.fit(df)

result = router.route("Write a sorting algorithm", cost_bias=0.5)
print(result.model_id)  # Best model for this prompt

How It Works

  1. Clusters similar prompts together
  2. Learns which model performs best per cluster
  3. Routes new prompts to the optimal model

Cost Bias

# cost_bias=0.0 → Always cheapest
router.route("prompt", cost_bias=0.0)

# cost_bias=1.0 → Always best quality
router.route("prompt", cost_bias=1.0)

# cost_bias=0.5 → Balanced
router.route("prompt", cost_bias=0.5)

Save & Load

router.save("router.json")
loaded = Nordlys.load("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


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.1.4.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nordlys-0.1.4-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file nordlys-0.1.4.tar.gz.

File metadata

  • Download URL: nordlys-0.1.4.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","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

Hashes for nordlys-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f82c9a4d7003bcd222b93356f7562268cde820c05ecad3d8ff3c04202e5c1a06
MD5 bbc96ffdf06394db9a088fe2ea9d68fa
BLAKE2b-256 a9c66aa3350c3c5037a0b5bec937ba83978a4b83dec01a12113f81c4ffa3e12f

See more details on using hashes here.

File details

Details for the file nordlys-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: nordlys-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","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

Hashes for nordlys-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e5c09386bf2216c4f1c6d22693cd46816d4b3de98a424cb978078afe8ce4cdd0
MD5 feae519f2d3176d22a306cb6ed75388b
BLAKE2b-256 20f5b832798808d5c268f11005b6ebda1fc9dfe079d2e8717df36f972d547fb5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page