Skip to main content

No project description provided

Project description

Build Status Coverage

llmbroker

Route LLM calls over a pool of free endpoints with automatic round-robin and 429/503 cooldown. No LangChain, no heavy deps — stdlib core, two lines to start.

import llmbroker

llms = llmbroker.Broker(registry=llmbroker.Registry("llms.toml"))
print(llms.ask("Summarize this receipt").text)

llms.toml is a plain list of [[llms]] entries (base_url, model, api_key_ref). Grab the freetier preset from this repo to start with a maintained list of free LLM endpoints.

Why llmbroker:

  • Round-robin with automatic failover — 429/503 cools an endpoint and tries the next; the caller never sees a rate-limit error unless every endpoint fails.
  • No heavy deps — stdlib-only core; optional backends (sqlite, redis, postgres) are submodules you import only when you need them.
  • Dead-simple to start — a TOML file and env vars, one constructor line, done.
  • Fully customisable — swap registry, secrets, and telemetry backends independently: any DB, any secrets manager (AWS, Vault, …), any storage.
  • Cluster-ready — add shared_state=llmbroker.redis.SharedState(...) to sync cooldown state across instances; omit for single-process.
  • Sync and asyncllmbroker.Broker for scripts; llmbroker.AsyncBroker for FastAPI, agents, and async workers.

Documentation

llmbroker

Developers

Do not forget to run . ./activate.sh.

For work it need uv installed.

Use pre-commit hooks for code quality:

pre-commit install

Allure test report

Scripts

Install invoke preferably with uv tool:

uv tool install invoke

For a list of available scripts run:

invoke --list

For more information about a script run:

invoke <script> --help

Coverage report

Created with cookiecutter using template

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

llmbroker-0.0.4.tar.gz (113.9 kB view details)

Uploaded Source

Built Distribution

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

llmbroker-0.0.4-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file llmbroker-0.0.4.tar.gz.

File metadata

  • Download URL: llmbroker-0.0.4.tar.gz
  • Upload date:
  • Size: 113.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for llmbroker-0.0.4.tar.gz
Algorithm Hash digest
SHA256 b12c16af38eada16096002913ef0ab0e97c7cac858a48a425af205f5cd3bce75
MD5 22596ab9a663f167da687e6e8a6537de
BLAKE2b-256 912d81eaf4181b11bd5291680e83764b737b3b7a1a771a325437d3a26a08493e

See more details on using hashes here.

File details

Details for the file llmbroker-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: llmbroker-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for llmbroker-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2cf6a52d9107467cef92a5c3869fc678863382ea49b32d1cf4cfd24c57a77c37
MD5 c4d4816c296ee8f69b7bdb65b893a9a3
BLAKE2b-256 73f2a39e225eac883e4f4ea47694adb08e7112c61706ec5065c80fcc585b0017

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