Skip to main content

A lightweight runtime for LLMHub that delegates to any-llm

Project description

llmhub_runtime

llmhub_runtime is a small Python library that lets you call LLMs by role using a simple YAML config (llmhub.yaml), while delegating all provider-specific logic to any-llm.

It is designed to be:

  • Runtime-light – minimal dependencies, no discovery logic.
  • Provider-agnostic – supports any provider that any-llm supports.
  • Role-centric – your application code never handles provider/model strings directly.

llmhub_runtime is intended for:

  • Application backends (e.g. memory systems, agents, tools).
  • The future llmhub CLI/Web tool, which will generate llmhub.yaml and then use this runtime internally.

Installation

pip install llmhub-runtime any-llm-sdk

(Exact package name to be confirmed when publishing.)

Runtime Config: llmhub.yaml

llmhub_runtime reads a generated config file, typically named llmhub.yaml:

project: memory
env: dev

providers:
  openai:
    env_key: OPENAI_API_KEY
  anthropic:
    env_key: ANTHROPIC_API_KEY

roles:
  llm.preprocess:
    provider: openai
    model: gpt-4o-mini
    mode: chat
    params:
      temperature: 0.2
      max_tokens: 512

  llm.inference:
    provider: anthropic
    model: claude-3-5-sonnet-20241022
    mode: chat
    params:
      temperature: 0.7
      max_tokens: 2048

You typically do not edit this by hand; it is generated by higher-level tools (e.g. llmhub CLI/Web).

Basic Usage

from llmhub_runtime.hub import LLMHub

hub = LLMHub(config_path="llmhub.yaml")

response = hub.completion(
    role="llm.inference",
    messages=[{"role": "user", "content": "Hello"}],
)

print(response)

Embeddings:

embedding = hub.embedding(
    role="llm.embedding",
    input="Hello world",
)

To override parameters per call:

response = hub.completion(
    role="llm.inference",
    messages=[...],
    params_override={"temperature": 0.1},
)

Architecture Overview

llmhub_runtime is intentionally small and has three main layers:

  1. Config layer

    • models.py – Pydantic models for RuntimeConfig, ProviderConfig, RoleConfig, ResolvedCall.
    • config_loader.py – loads and validates llmhub.yaml.
  2. Resolution layer

    • resolver.py – maps a logical role name to {provider, model, mode, params}, with optional fallback from defaults.
  3. Execution layer

    • hub.py – exposes the LLMHub class:
      • Resolves roles.
      • Calls any-llm (completion / embedding) with the resolved settings.
      • Optional hooks for logging/metrics.

All domain-specific errors live in errors.py.

Design Principles

  • No provider logicllmhub_runtime never talks to provider SDKs directly; it only calls any-llm.
  • No discovery or scoring – it assumes llmhub.yaml already contains concrete provider/model choices.
  • Role-first – application code only sees role names; you can swap models by editing/generating llmhub.yaml without changing app code.

Roadmap

  • Async APIs (acompletion, aembedding).
  • Streaming interfaces.
  • More modes (image, audio, tool).
  • Tight integration with the llmhub CLI/Web for config generation.

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

llmhub_runtime-0.1.2.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

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

llmhub_runtime-0.1.2-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file llmhub_runtime-0.1.2.tar.gz.

File metadata

  • Download URL: llmhub_runtime-0.1.2.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for llmhub_runtime-0.1.2.tar.gz
Algorithm Hash digest
SHA256 66182f1579b66d6d9b5f512d66cee5ecfb67eaeba577b02a3790c699abdabc3f
MD5 2a4630c08e9e051b9e5e63f2b0d5db47
BLAKE2b-256 0d734327626722db015ea9356983f4a180588c04711b2cbf25c50c75804b4f8d

See more details on using hashes here.

File details

Details for the file llmhub_runtime-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: llmhub_runtime-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for llmhub_runtime-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1953b1fa9f6a5001cf8c2d3ebbbd27fdecdfdcd9dff591335519c5569c665fa6
MD5 53016f9685978d0ff1a4c014887d089f
BLAKE2b-256 b2dabcc31e1cc265affb1edbc135068d029ac4d7413a8fea4908f4b8715ff1b9

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