Python client for Agenlus model upload pipeline.
Project description
Agenlus Python Hub Client (agenlus-hub)
agenlus-hub is the official Python client library for the Agenlus RL Platform. It provides a seamless interface to download custom RL environments, run local evaluations on your PyTorch models, and automatically export, build, upload, and register them onto the Agenlus leaderboards.
Key Features
- Simple Authentication: Quick setup with single-line token authentication.
- Environment Downloader: Easily fetch custom Gymnasium environment specifications and source code directly from the server.
- Automatic Export: Exposes models to both PyTorch (
.pt) and ONNX (.onnx) formats with dynamic batching. - Deterministic Evaluation: Validates model performance locally using reproducible seeds before uploading.
- Hugging Face Hub Integration: Automates repositories creation and stacks model uploads into tidy subfolders.
- Leaderboard Registration: Instant, automated registration of evaluated models to the Agenlus leaderboard.
Installation
Install the package and its dependencies via pip:
pip install agenlus-hub
Dependencies
Ensure you have the following prerequisites installed (or they will be installed automatically):
requeststorchonnxonnxscripthuggingface_hubgymnasium(Required for local model evaluation)
Quick Start
Here is a quick walkthrough showing how to log in, download an environment, build/train your model, and upload it to the leaderboard:
import torch
import torch.nn as nn
import agenlus
# 1. Log in to your Agenlus account
agenlus.login(token="YOUR_AGENLUS_API_TOKEN")
# 2. Download the target environment (e.g., CartPole-v1)
# This downloads 'CartPole-v1.py' into your working directory
env_file_path = agenlus.download("system/CartPole-v1")
# 3. Define and train your PyTorch RL Model
class PolicyNet(nn.Module):
def __init__(self, obs_dim=4, action_dim=2):
super().__init__()
self.fc = nn.Sequential(
nn.Linear(obs_dim, 128),
nn.ReLU(),
nn.Linear(128, action_dim)
)
def forward(self, x):
return self.fc(x)
# Instantiate your model (or load from disk)
model = PolicyNet()
# 4. Evaluate and Upload to Agenlus & Hugging Face
# This evaluates the model for 100 episodes, exports to ONNX/PyTorch,
# uploads to Hugging Face, and registers the scores on the Leaderboard.
agenlus.upload(
model=model,
env_id="system/CartPole-v1",
hf_token="YOUR_HUGGINGFACE_WRITE_TOKEN",
model_name="my-first-cartpole-agent",
episodes=100,
seed=42
)
API Reference
agenlus.login
Authenticates your local client session.
agenlus.login(token: str, api_url: str = None)
token(str): Your Agenlus developer API token.api_url(str, optional): Overrides the default platform backend URL.
agenlus.download
Downloads the source code of an environment registered on the platform.
save_path = agenlus.download(env_id: str, save_path: str = None)
env_id(str): The ID of the environment (e.g.,system/CartPole-v1orusername/custom-env).save_path(str, optional): Custom file path to save the code. Defaults to{env_name}.pyin the current directory.- Returns: The path to the saved file.
agenlus.upload
Executes local evaluation, model export, Hugging Face upload, and platform leaderboard registration.
agenlus.upload(
model: torch.nn.Module,
env_id: str,
hf_token: str,
hf_repo: str = None,
model_name: str = None,
episodes: int = 100,
seed: int = None
)
model(torch.nn.Module): The trained PyTorch model.env_id(str): Target environment ID on the platform.hf_token(str): Write access token for Hugging Face.hf_repo(str, optional): The Hugging Face repo (e.g.,username/repo-name). If omitted, checks your profile settings or defaults tousername/agenlus-agents.model_name(str, optional): Unique name for this model checkpoint. Subdirectories under the repository will be structured around this name.episodes(int, optional): Number of episodes to run for scoring evaluation. (Default:100).seed(int, optional): Seed used to ensure deterministic environment evaluation. (Default:42).
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agenlus_hub-0.1.4.tar.gz.
File metadata
- Download URL: agenlus_hub-0.1.4.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfe8439244c13376fbb546ef83111e02159b670f3e628d9a6b9664ff88ad0a21
|
|
| MD5 |
3b6fc28624c99719d61732f385d96bb3
|
|
| BLAKE2b-256 |
3d3c7e0005e12758db609653d7bedfc7034ceb56f51f028beaa86e79561c2dd9
|
File details
Details for the file agenlus_hub-0.1.4-py3-none-any.whl.
File metadata
- Download URL: agenlus_hub-0.1.4-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e9e5586d6298c422068309ae45ddea65d4690bbc4d5764d41c30e00cd5cc825
|
|
| MD5 |
c0c2ec8765835b0cc9e0062425a2d63a
|
|
| BLAKE2b-256 |
876163940e5bd29fdc62eaaf3fe99286dc83a0fdc8fed61b4fdada5738788c4f
|