Skip to main content

EOG-HPO Client SDK

The official Python client for the EOG-HPO Hyperparameter Optimization Cloud Service.

Installation

pip install eaheog

For visualization support:

pip install eaheog[viz]

Quick Start

from eaheog import EOGHPOClient

# Initialize client with your API endpoint
client = EOGHPOClient(base_url="https://your-api-gateway-url.amazonaws.com/prod")

# Authenticate
client.login()

# Define your objective function (runs on YOUR machine)
def train_model(config):
    # Your training code here
    lr = config['learning_rate']
    batch_size = int(config['batch_size'])
    
    # Train and evaluate
    score = your_training_function(lr, batch_size)
    return score

# Define search space
search_space = {
    'learning_rate': (0.0001, 0.1),
    'batch_size': (16, 256),
    'dropout': (0.0, 0.5)
}

# Run optimization
best = client.optimize(
    objective_function=train_model,
    search_space=search_space,
    n_iterations=50
)

print(f"Best config: {best['config']}")
print(f"Best score: {best['score']}")

Configuration

export EOGHPO_BASE_URL="https://your-api-gateway.amazonaws.com/prod"
export EOGHPO_API_KEY="your-api-key"  # Optional: set after login

Method 2: Initialize with Parameters

client = EOGHPOClient(
    base_url="https://your-api-gateway.amazonaws.com/prod",
    api_key="your-api-key"  # Optional
)

Method 3: Configuration File

The SDK automatically saves credentials to ~/.eaheog/credentials.json after login.

Features

  • ✅ Cloud-based Bayesian Optimization - Smart hyperparameter recommendations
  • 💰 Cost Estimation - Know costs before running
  • 📊 Live Visualization - Real-time progress tracking (with [viz] install)
  • 🔐 Secure Authentication - Token-based auth with local credential storage
  • 🔄 Session Management - Resume interrupted optimization runs
  • 📁 Export Results - Save optimization history to CSV

Authentication

Sign Up

client = EOGHPOClient(base_url="https://your-api-endpoint.com")
client.signup()

Login

client.login()  # Interactive login

Logout

client.logout()  # Clear stored credentials

Advanced Usage

Pricing calculator

# pricing.html gives current EAH set pricing tier which users should take into while planning HPO run budget.
client.open_pricing_calculator() 

Cost Estimation

# Estimate costs before starting
estimate = client.estimate_cost(
    n_iterations=100,
    search_space=search_space
)
print(f"Estimated cost: ${estimate['estimated_cost']}")

Session Management

# Start a session
session_id = client.start_optimization(
    search_space=search_space,
    n_iterations=100
)

# Resume later
client.session_id = session_id
status = client.get_session_status()

Export Results

# Export optimization history
client.export_results("my_results.csv")

Web Dashboard

# View progress in browser
client.get_web_dashboard_url()

Requirements

  • Python >= 3.7
  • requests >= 2.25.0

Optional (for visualization):

  • pandas >= 1.3.0
  • numpy >= 1.21.0
  • matplotlib >= 3.4.0
  • ipython >= 7.0.0

API Endpoints

The client expects your AWS API Gateway to expose these endpoints:

  • POST /auth/signup - User registration
  • POST /auth/login - Authentication
  • POST /estimate - Cost estimation
  • POST /start - Start optimization session
  • POST /job/{session_id}/next - Get next configuration
  • POST /job/{session_id}/result - Report result
  • GET /job/{session_id}/status - Get session status

Architecture

User's Machine                     AWS Cloud
┌─────────────────┐               ┌──────────────────┐
│                 │               │                  │
│  Your Training  │               │  API Gateway     │
│     Code        │               │                  │
│                 │               └────────┬─────────┘
└────────┬────────┘                        │
         │                                 │
         │  EOGHPOClient                   │
         │  • Get config                   ▼
         │  • Train locally         ┌──────────────┐
         │  • Report result         │   Lambda     │
         │                          │  Functions   │
         └──────────────────────────┤              │
                                    │ • auth_broker│
                                    │ • optimizer  │
                                    │ • payments   │
                                    └──────┬───────┘
                                           │
                                           ▼
                                    ┌──────────────┐
                                    │  Firestore   │
                                    │   Database   │
                                    └──────────────┘

Security

  • API keys are stored locally in ~/.eaheog/credentials.json with restricted permissions (600)
  • All API calls use HTTPS
  • Bearer token authentication
  • Credentials are never sent to third parties

Troubleshooting

Connection Errors

# Verify your base URL is correct
#client = EOGHPOClient(base_url="https://your-api-gateway.amazonaws.com/prod")

# Test connection
try:
    client.login()
except ConnectionError as e:
    print(f"Cannot connect: {e}")
    print("Verify your API Gateway URL is correct")

Authentication Issues

# Clear stored credentials and re-login
client.logout()
client.login()

Timeout Errors

# Increase timeout (default: 30s)
client.timeout = 60

Support

License

MIT License - see LICENSE file for details

Metadata

Release files for eaheog 0.2.17

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

Source distribution (sdist)

Source distribution for eaheog 0.2.17
File Size Uploaded
eaheog-0.2.17.tar.gz 14.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eaheog 0.2.17
File Interpreter ABI Platform
eaheog-0.2.17-py3-none-any.whl Python 3 none any Details

Total release size: 26.9 kB

Release files / eaheog-0.2.17.tar.gz

Download URL eaheog-0.2.17.tar.gz
Size 14.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d058f50d94df22585dc811101a84447d6006a874898168859398e7577af96f9f
BLAKE2b-256 checksum
How to use checksums
5aedabcf42b97fb5fabefbdd270c31c6df81a1de7ec6ec947293af2ed5fc2210
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.0

Release files / eaheog-0.2.17-py3-none-any.whl

Download URL eaheog-0.2.17-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06047323cdb2f6b850f48ce4dfaabe7fd0eb58a3539e02f6f3c53052512f5462
BLAKE2b-256 checksum
How to use checksums
37336a9758f2005926f44783122d7ff54d01ad47e1628a8a0cbbb2d19c2e8cf8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.0

Release history Release notifications | RSS feed

This release

0.2.17 This release

2 release files

0.2.16

2 release files

0.2.15

2 release files

0.2.14

2 release files

0.2.13

2 release files

0.2.12

2 release files

0.2.11

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.6

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

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