Skip to main content

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 logic – llmhub_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.

Metadata

Release files for llmhub-runtime 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llmhub-runtime 1.0.3
File Size Uploaded Provenance Actions
llmhub_runtime-1.0.3.tar.gz 8.9 kB Without provenance Details for llmhub_runtime-1.0.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for llmhub-runtime 1.0.3
File Interpreter ABI Platform Actions
llmhub_runtime-1.0.3-py3-none-any.whl Python 3 none any Details for llmhub_runtime-1.0.3-py3-none-any.whl

Total release size: 16.0 kB

Release files / llmhub_runtime-1.0.3.tar.gz

Download URL llmhub_runtime-1.0.3.tar.gz
Size 8.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8e94b43a643654eb3fdc8deee794ef80e4beafcaddbbbffc90d51abcdc0e1413
BLAKE2b-256 checksum
How to use checksums
b55e2f4c57932138c0a815c06e98f8b28c2e3ff64abfceaff29ed3aac6152def
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.11

Release files / llmhub_runtime-1.0.3-py3-none-any.whl

Download URL llmhub_runtime-1.0.3-py3-none-any.whl
Size 7.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
063bf0da3607eb7eb0fbf48f5b8ad4cea3be99310d42073ba57446fdf376a464
BLAKE2b-256 checksum
How to use checksums
98914717ede6752114d8800b10907758106575349649b26ffc610cfd804f6fc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.11

Security for llmhub-runtime 1.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page