Skip to main content

Python client for Agenlus model upload pipeline.

Project description

Agenlus Python Hub Client (agenlus-hub)

PyPI version Python versions License: MIT

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 & SB3 Support: Exposes models (both pure PyTorch and stable-baselines3 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):

  • requests
  • torch
  • onnx
  • onnxscript
  • huggingface_hub
  • gymnasium (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",
    seed=42
)

Stable-Baselines3 Support (DQN, PPO, SAC, etc.)

You can directly upload models trained with stable-baselines3. The policy network will be automatically wrapped and exported to ONNX:

import gymnasium as gym
from stable_baselines3 import DQN
import agenlus

# 1. Log in
agenlus.login(token="YOUR_AGENLUS_API_TOKEN")

# 2. Download environment code (if custom or needed)
env_file = agenlus.download("system/CartPole-v1")

# 3. Define and train your SB3 agent
env = gym.make("CartPole-v1")
model = DQN("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=10000)

# 4. Upload and register to Leaderboard
# This automatically wraps model.q_net (DQN) / model.policy (PPO) for ONNX compatibility
agenlus.upload(
    model=model,
    env_id="system/CartPole-v1",
    hf_token="YOUR_HUGGINGFACE_WRITE_TOKEN",
    model_name="my-sb3-dqn-agent",
    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-v1 or username/custom-env).
  • save_path (str, optional): Custom file path to save the code. Defaults to {env_name}.py in 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,
    env_id: str,
    hf_token: str,
    hf_repo: str = None,
    model_name: str = None,
    seed: int = None
)
  • model (PyTorch model or stable-baselines3 model): The trained RL model (e.g., a PyTorch nn.Module or a stable_baselines3 agent). If a stable-baselines3 model is provided, its policy network is automatically wrapped and extracted.
  • 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 to username/agenlus-agents.
  • model_name (str, optional): Unique name for this model checkpoint. Subdirectories under the repository will be structured around this name.
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agenlus_hub-0.2.6.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

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

agenlus_hub-0.2.6-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file agenlus_hub-0.2.6.tar.gz.

File metadata

  • Download URL: agenlus_hub-0.2.6.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for agenlus_hub-0.2.6.tar.gz
Algorithm Hash digest
SHA256 734606ee799c83feebd83fae4fd63d5c560f339364de2c3e42f0995b46dbc09a
MD5 cefc1845cdaf91dc1f1256bc1705f4fe
BLAKE2b-256 0960510b19844cba627cb31bd3f9b572419aec2b81e8a373d04649c00726d153

See more details on using hashes here.

File details

Details for the file agenlus_hub-0.2.6-py3-none-any.whl.

File metadata

  • Download URL: agenlus_hub-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for agenlus_hub-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0bef59f96cfbc0d1e76fd03224566e2ba4015b8956ed25d31e625b22c9171be3
MD5 0ababf2c56c2c3501365d7b5792bac5e
BLAKE2b-256 33c4c760065e332a99c91e649e21112cf3333fd13463e2b005b4ad1f3480188b

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