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)
| File | Size | Uploaded | |
|---|---|---|---|
| roboz_endpoints-0.1.0a6.tar.gz | 32.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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