Casino of Life
  • Cimai's Casino of Life Docs
  • Casino of Life
    • Getting Started with Casino of Life
    • Natural Language Training Interface
    • Understanding the Reward System
    • Web Interface and Dashboard
  • Technical Architecture
  • Advanced Training Techniques
  • Example Projects
  • API Reference
Powered by GitBook
On this page
  • Getting Started with the Web Interface
  • Dashboard Features
  • API Integration
  • Customizing the Dashboard
  • Deployment Options
  • Security Considerations
  • Troubleshooting
  1. Casino of Life

Web Interface and Dashboard

Casino of Life provides a powerful web interface for monitoring, controlling, and visualizing your AI training processes. This guide explains how to set up and use the web dashboard effectively.

Getting Started with the Web Interface

The web interface allows you to monitor training progress, manage multiple agents, and control training parameters through an intuitive dashboard.

Starting the Training Server

To use the web interface, you need to start the training server:

from casino_of_life.web import TrainingServer

# Start training server on default port (8080)
server = TrainingServer()
server.start()

# Or specify a custom port
server = TrainingServer(port=9000)
server.start()

Once started, you can access the dashboard at http://localhost:8080 (or your custom port).

Dashboard Features

Training Monitoring

The dashboard provides real-time monitoring of your training sessions:

  • Performance Metrics: Win rate, average rewards, episode length

  • Learning Graphs: Visualize reward trends, action distributions, and more

  • State Visualization: See what the agent sees during training

  • Memory Usage: Monitor resource utilization

Agent Management

Manage multiple agents from a single interface:

  • Create New Agents: Configure and launch new training sessions

  • Load Saved Agents: Resume training from checkpoints

  • Compare Agents: Run A/B testing between different models

  • Export Models: Save trained agents for deployment

Interactive Chat Interface

Communicate with CaballoLoko directly from the web interface:

  • Natural Language Commands: Send training instructions

  • Training Feedback: Get real-time updates on training progress

  • Strategy Adjustment: Modify training parameters on the fly

  • Chat History: Review previous instructions and responses

API Integration

The web interface exposes a RESTful API for programmatic control:

Starting a Training Session

import requests
import json

# Start a new training session
response = requests.post(
    "http://localhost:8080/api/training/start",
    json={
        "game": "MortalKombatII-Genesis",
        "character": "LiuKang",
        "policy": "PPO",
        "timesteps": 100000
    }
)

training_id = response.json()["training_id"]

Checking Training Status

# Get training status
status = requests.get(
    f"http://localhost:8080/api/training/{training_id}/status"
).json()

print(f"Training progress: {status['progress']}%")
print(f"Current win rate: {status['metrics']['win_rate']}%")

WebSocket for Real-time Updates

For real-time updates, you can connect to the WebSocket endpoint:

import asyncio
import websockets
import json

async def monitor_training(training_id):
    uri = f"ws://localhost:8080/api/training/{training_id}/live"
    
    async with websockets.connect(uri) as websocket:
        while True:
            message = await websocket.recv()
            data = json.loads(message)
            
            print(f"Step: {data['step']}")
            print(f"Reward: {data['reward']}")
            print(f"Action: {data['action']}")

# Run the monitoring function
asyncio.run(monitor_training(training_id))

Customizing the Dashboard

The dashboard can be customized using configuration files:

from casino_of_life.web import TrainingServer, DashboardConfig

# Create custom dashboard configuration
config = DashboardConfig(
    theme="dark",
    default_view="performance",
    refresh_rate=2,  # seconds
    custom_metrics=["combo_count", "special_move_frequency"]
)

# Start server with custom configuration
server = TrainingServer(dashboard_config=config)
server.start()

Deployment Options

The web interface can be deployed in several ways:

Local Development

python -m casino_of_life.web.server

Docker Container

docker run -p 8080:8080 cimai/casino-of-life

Production Deployment

For production environments, we recommend using a reverse proxy:

# Example with nginx
server {
    listen 80;
    server_name casino.yourdomain.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
    }
}

Security Considerations

The web interface includes several security features:

  • Authentication: Optional user authentication system

  • API Keys: Secure API access using token-based authentication

  • Rate Limiting: Protection against excessive requests

  • CORS Configuration: Control which domains can access the API

To enable authentication:

from casino_of_life.web import TrainingServer, SecurityConfig

security = SecurityConfig(
    enable_auth=True,
    admin_username="admin",
    admin_password="secure_password"
)

server = TrainingServer(security_config=security)
server.start()

Troubleshooting

Common issues and their solutions:

  • Server won't start: Check for port conflicts or missing dependencies

  • Slow dashboard updates: Reduce refresh rate or limit monitored metrics

  • High memory usage: Decrease the number of parallel training sessions

  • Connection issues: Verify network settings and firewall configurations

The web interface provides a powerful way to control and monitor your Casino of Life training sessions, making complex reinforcement learning accessible and visual.

PreviousUnderstanding the Reward SystemNextTechnical Architecture

Last updated 3 months ago