Skip to main content

A model aggregator service for multiple LLM backends.

Project description

LLM Aggregator

LLM Aggregator keeps a live list of every model exposed by your local OpenAI-compatible servers.

Web Interface

The UI is a single table plus a small RAM widget, so you immediately see what is running:

Model Base URL Types Family Context Quant Params Summary
llama3.1:8b http://10.7.2.100:11434/v1 llm Llama 3.1 8K Q4_K_M 8B General chat tuned for balance
qwen2.5:14b http://10.7.2.100:8080/v1 llm,embed Qwen 2.5 32K Q5_0 14B Multilingual reasoning focused

Columns:

  • Model – identifier reported by the provider.
  • Base URL – where the model is served.
  • Types – capabilities (LLM, VLM, embedder, etc.).
  • Family – base architecture inferred by the helper LLM.
  • Context – approximate context window in tokens.
  • Quant – quantization hinted by the model name or docs.
  • Params – estimated parameter count.
  • Summary – one-line description generated by the helper LLM.

Features

  • Multi-Provider Discovery: Automatically discovers models from multiple LLM servers running on different ports
  • AI-Powered Enrichment: Uses a configurable "brain" LLM to enrich model metadata with details like model family, context size, quantization, and capabilities
  • Web Catalog Interface: Clean web UI for browsing your model collection
  • Real-time Statistics: Monitors system resources like RAM usage
  • REST API: Programmatic access to model data and statistics
  • Background Processing: Continuous model discovery and enrichment without blocking the UI
  • OpenAI-Compatible: Works with any LLM server that implements the OpenAI /v1/models API

Installation

Prerequisites

  • Python 3.10 or higher
  • One or more running LLM servers (Ollama, llama.cpp, nexa, etc.) with OpenAI-compatible APIs

Install from PyPI

pip install llm-aggregator

Configuration

All runtime behavior is controlled through the YAML file pointed to by the LLM_AGGREGATOR_CONFIG environment variable. Use config.yaml as a reference template.

Configuration Options

  • host / port – Where the FastAPI server and static frontend bind.
  • log_level – Logging verbosity (DEBUG, INFO, WARNING, ERROR, CRITICAL). Defaults to INFO if omitted.
  • log_format – Optional logging format string. When omitted the service leaves existing logging configuration untouched.
  • logger_overrides – Map of logger names to override their logging level (e.g., httpx: WARNING).
  • brain – Settings for the enrichment LLM:
    • base_url – HTTP endpoint of the enrichment provider.
    • id – Model identifier passed to the provider.
    • api_key – Optional API-Key.
    • max_batch_size – Number of models to enrich at once (defaults to 1).
  • time – Background scheduling knobs (all in seconds):
    • fetch_models_interval
    • fetch_models_timeout
    • enrich_models_timeout
    • enrich_idle_sleep
  • providers – Each entry describes an OpenAI-compatible backend to query:
    • base_url – Public URL returned via the REST API.
    • internal_base_url – Optional internal URL used for server-to-server calls; defaults to base_url when omitted.
    • api_key – Optional API-Key for that provider.
  • model_info_sources – Optional external websites where model information is fetched from for enrichment. Each entry requires a human-readable name (shown to the LLM) and a url_template that contains {model_id}.
  • ui – Optional static UI:
    • static_enabled – When true then a web frontend is served at /index.html and assets at /static.
    • custom_static_path – Optional directory that replaces the bundled UI; must contain a readable index.html and asset files.

Usage

Set the LLM_AGGREGATOR_CONFIG environment variable to point at your config.yaml and the service will load it on startup.

Starting the Service

export LLM_AGGREGATOR_CONFIG=/path/to/config.yaml
llm-aggregator

Or run directly:

export LLM_AGGREGATOR_CONFIG=/path/to/config.yaml
python -m llm_aggregator

By default, the web interface will be available at http://localhost:8888.

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

llm_aggregator-0.1.4.tar.gz (42.9 kB view details)

Uploaded Source

Built Distribution

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

llm_aggregator-0.1.4-py3-none-any.whl (32.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: llm_aggregator-0.1.4.tar.gz
  • Upload date:
  • Size: 42.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llm_aggregator-0.1.4.tar.gz
Algorithm Hash digest
SHA256 569f273eed83fde5b10f5defe2b1bfcf9323297deeb2778c3a9b584cce99f17f
MD5 3405f9584522fbd65ecb40f240b7f018
BLAKE2b-256 fb33bc3cbcf4b8acfd2931cd4f9850edd111c7b58ff55b1a60094409f89448e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_aggregator-0.1.4.tar.gz:

Publisher: ci.yml on Wuodan/llm-aggregator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: llm_aggregator-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 32.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llm_aggregator-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0b02d85050218fd10194d034dd6ba1980a949e878ea3be882354b9d8a5626ded
MD5 26a1ce1c93314201f422ac2f5bc40010
BLAKE2b-256 666dc2eb707225eb26b6a5f15480b894b8da6681902a043e996f42cc5b0614e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_aggregator-0.1.4-py3-none-any.whl:

Publisher: ci.yml on Wuodan/llm-aggregator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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