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.0a6

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.0a6
File Size Uploaded
roboz_endpoints-0.1.0a6.tar.gz 32.2 kB Details

Built distribution (wheel)

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

Total release size: 56.5 kB

Release files / roboz_endpoints-0.1.0a6.tar.gz

Download URL roboz_endpoints-0.1.0a6.tar.gz
Size 32.2 kB
Tags Source
SHA-256 checksum
How to use checksums
6d07e2a1e7a8a830b9163ce166b0ce3fdfaf457a67c535278a735e4e0520e140
BLAKE2b-256 checksum
How to use checksums
95d6f185f07e358fed1f3610a5a43c68fccdb9344e193e55505123e1a8d7e6f1
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.0a6-py3-none-any.whl

Download URL roboz_endpoints-0.1.0a6-py3-none-any.whl
Size 24.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
94a8f8148a383ce4ad4dd7623688a2e476129570d432a6a67a7c9fabdec70385
BLAKE2b-256 checksum
How to use checksums
5fed90712c2f608a97f4f4dfd2f5c4c7d72ce4aa2cdcdc0e8be8a33797142690
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