Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

roboz-endpoints

Build a typed catalogue of the providers and models your application uses. The bundled OpenRouter, Cerebras, and Groq catalogues are examples to start from. Add your own providers and models through the inventory commands below; your catalogue lives in your project and requires no changes to this library.

Current limitation

Only providers with an OpenAI-compatible API are currently supported. Adding a provider to the catalogue does not add support for a different API protocol.

Requires Python 3.13+.

uv add 'roboz-endpoints[openai]'

Add your own provider and model

Run these commands from your project root:

# 1. Export the examples into your application's model_catalogue package.
uv run python -m roboz_endpoints inventory export

# 2. Edit models.json: add, remove, or change providers and models.

# 3. Generate model_catalogue/providers.py.
uv run python -m roboz_endpoints inventory import

For a src-layout project named my-app, this creates:

src/my_app/model_catalogue/
├── __init__.py
├── models.json                # edit this
└── providers.py               # generated by inventory import

For example, add this entry under providers in models.json before running the import command:

"my_service": {
  "base_url": "https://models.example.com/v1",
  "api_key_env": "MY_SERVICE_API_KEY",
  "models": {
    "chat": {
      "model_id": "my-chat-model",
      "endpoint_type": "llm",
      "max_context_tokens": 128000
    }
  }
}

The catalogue can then be imported by any function or module run from the project environment:

from roboz.llm import LLMEndpoint
from my_app.model_catalogue.providers import my_service


def get_chat_endpoint() -> LLMEndpoint:
    return my_service.chat

endpoint = get_chat_endpoint()
print(endpoint.model_name)          # my-chat-model
print(endpoint.max_context_tokens)  # 128000

# Use this instance as Agent(..., agent_endpoint=endpoint).

The JSON keys my_service and chat become Python names; model_id is the identifier sent to the provider. Add more entries under models for another model, or under providers for another service. Use valid Python identifiers for those keys.

Run that code with uv run python your_script.py. It only verifies the generated configuration; it does not contact the provider. Before making a real model call, use the provider's actual URL, model ID, and context limit, and set MY_SERVICE_API_KEY. The JSON stores the variable name, not the secret.

For flat layouts, arbitrary catalogue names, custom generated-module names, updates, reset, and recovery, see the project catalogue guide.

Existing catalogues keep their locations when you pass explicit --path and --output; see upgrading an existing catalogue.

License

Licensed under the Apache License 2.0.

Release files for roboz-endpoints 0.1.0a5

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

Source distribution (sdist)

Source distribution for roboz-endpoints 0.1.0a5
File Size Uploaded
roboz_endpoints-0.1.0a5.tar.gz 32.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for roboz-endpoints 0.1.0a5
File Interpreter ABI Platform
roboz_endpoints-0.1.0a5-py3-none-any.whl Python 3 none any Details

Total release size: 56.4 kB

Release files / roboz_endpoints-0.1.0a5.tar.gz

Download URL roboz_endpoints-0.1.0a5.tar.gz
Size 32.0 kB
Tags Source
SHA-256 checksum
How to use checksums
44d34ca395f31a3a50e41e5bf31b52a1383c2208e169cb8d5918c9e4dc7e910b
BLAKE2b-256 checksum
How to use checksums
d6616c45919343e83eb99bb415cbabb343e11df1a5091bb954b96a4c72b321dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.

Transparency log

Release files / roboz_endpoints-0.1.0a5-py3-none-any.whl

Download URL roboz_endpoints-0.1.0a5-py3-none-any.whl
Size 24.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bb0b20a467e7cc7bc4fb44e292f419c1f4c8081ea50fb082be52eb750d150297
BLAKE2b-256 checksum
How to use checksums
51a39539d518e54f98f2d7303bd01a5abef14a61cbc30343d6f6306d4199d48e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.

Transparency log
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