Skip to main content

A model aggregator service for multiple LLM backends.

Project description

LLM Aggregator

A comprehensive model aggregator service for discovering, enriching, and cataloging Large Language Models (LLMs) from multiple local backends. Provides a web interface to browse and manage your model collection with detailed metadata.

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 with filtering and sorting
  • 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 Source

git clone https://github.com/Wuodan/llm-aggregator.git
cd llm-aggregator
pip install -e .

Install from PyPI

pip install llm-aggregator

Configuration

See config.yaml.

Configuration Options

  • host/port: Server binding address
  • brain: Configuration for the enrichment LLM
    • host: Base URL of the enrichment model server
    • port: Port where enrichment model runs
    • id: Model identifier for enrichment
    • api_key: Optional API key for authentication
    • max_batch_size: Models to enrich per batch
  • time: Timing configurations for background tasks
  • providers: List of LLM servers to monitor
    • base_url: Base endpoint for the provider
    • port: Port number for model discovery

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

The web interface will be available at http://localhost:8888

Web Interface

The web catalog displays:

  • Model: Model identifier
  • Port: Provider port
  • Types: Model capabilities (llm, vlm, embedder, etc.)
  • Family: Model architecture family
  • Context: Context window size
  • Quant: Quantization level
  • Param: Parameter count
  • Summary: Brief model description

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.0.2.tar.gz (27.2 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.0.2-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: llm_aggregator-0.0.2.tar.gz
  • Upload date:
  • Size: 27.2 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.0.2.tar.gz
Algorithm Hash digest
SHA256 0ee96c646930e6c49cd986999b2f33ab696517d0b351675c11d6cda84a6b4556
MD5 91126eb13433ea2e8f0771ef0314379c
BLAKE2b-256 b9f3ecc1d8d44c742f1e9f5b46fcff4d62d04dce31dd56f52b8e8e7415f6224d

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_aggregator-0.0.2.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.0.2-py3-none-any.whl.

File metadata

  • Download URL: llm_aggregator-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 24.3 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.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2b283b567217ae1e1a563b1ae6c4a5ddeb0c8034980f20db63287f284df580e9
MD5 7dc10976a1132c27f2196d6711a23e2a
BLAKE2b-256 4618c22c5f559bab5ac76a40d6317904ffc754f2977889e17fd04839d573697e

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_aggregator-0.0.2-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