Spaces:
Running
Running
| import os | |
| import json | |
| from typing import Dict, Any | |
| from openspace.utils.logging import Logger | |
| logger = Logger.get_logger(__name__) | |
| def get_local_server_config() -> Dict[str, Any]: | |
| """ | |
| Read local server configuration. | |
| Priority: | |
| 1. Environment variable LOCAL_SERVER_URL (parsed into host/port) | |
| 2. Config file local_server/config.json | |
| 3. Defaults (127.0.0.1:5000) | |
| Returns: | |
| Dict with 'host' and 'port' from server config | |
| """ | |
| # Check environment variable first (for OSWorld/remote VM integration) | |
| env_url = os.getenv("LOCAL_SERVER_URL") | |
| if env_url: | |
| try: | |
| # Parse URL like "http://localhost:5000" | |
| from urllib.parse import urlparse | |
| parsed = urlparse(env_url) | |
| host = parsed.hostname or '127.0.0.1' | |
| port = parsed.port or 5000 | |
| logger.debug(f"Using LOCAL_SERVER_URL: {host}:{port}") | |
| return { | |
| 'host': host, | |
| 'port': port, | |
| 'debug': False, | |
| } | |
| except Exception as e: | |
| logger.warning(f"Failed to parse LOCAL_SERVER_URL: {e}") | |
| # Find local_server config file | |
| try: | |
| # Try relative path from this file | |
| current_dir = os.path.dirname(__file__) | |
| config_path = os.path.join(current_dir, '../local_server/config.json') | |
| config_path = os.path.abspath(config_path) | |
| if os.path.exists(config_path): | |
| with open(config_path, 'r') as f: | |
| config = json.load(f) | |
| server_config = config.get('server', {}) | |
| return { | |
| 'host': server_config.get('host', '127.0.0.1'), | |
| 'port': server_config.get('port', 5000), | |
| 'debug': server_config.get('debug', False), | |
| } | |
| except Exception as e: | |
| logger.debug(f"Failed to read local server config: {e}") | |
| # Return defaults | |
| return { | |
| 'host': '127.0.0.1', | |
| 'port': 5000, | |
| 'debug': False, | |
| } | |
| def get_client_base_url() -> str: | |
| """ | |
| Get base URL for connecting to local server. | |
| Priority: | |
| 1. Environment variable LOCAL_SERVER_URL | |
| 2. Read from local_server/config.json | |
| 3. Default http://localhost:5000 | |
| Returns: | |
| Base URL string | |
| """ | |
| # Check environment variable first | |
| env_url = os.getenv("LOCAL_SERVER_URL") | |
| if env_url: | |
| return env_url | |
| # Read from config file | |
| config = get_local_server_config() | |
| host = config['host'] | |
| port = config['port'] | |
| # Convert 0.0.0.0 to localhost for client | |
| if host == '0.0.0.0': | |
| host = 'localhost' | |
| return f"http://{host}:{port}" |