Spaces:
Build error
Build error
| import os | |
| import sys | |
| import warnings | |
| from pathlib import Path | |
| # Add project root to path | |
| project_root = Path(__file__).parent | |
| sys.path.insert(0, str(project_root)) | |
| # Environment detection | |
| IS_HUGGINGFACE = bool( | |
| os.environ.get('SPACE_ID') or | |
| os.environ.get('GRADIO_SERVER_NAME') or | |
| os.environ.get('HF_SPACE') | |
| ) | |
| IS_DOCKER = Path('/.dockerenv').exists() or os.environ.get('DOCKER_CONTAINER') | |
| def check_dependencies(): | |
| """Check and report available dependencies.""" | |
| deps = { | |
| 'gradio': False, | |
| 'numpy': False, | |
| 'pandas': False, | |
| 'psychopy': False, | |
| 'plotly': False, | |
| 'scipy': False | |
| } | |
| for dep in deps: | |
| try: | |
| __import__(dep) | |
| deps[dep] = True | |
| except ImportError: | |
| pass | |
| return deps | |
| def main(): | |
| """Main entry point.""" | |
| print("=" * 60) | |
| print("MULTI-AGENT PSYCHOPHYSICS SYSTEM") | |
| print("=" * 60) | |
| deps = check_dependencies() | |
| print(f"\nEnvironment: {'Hugging Face' if IS_HUGGINGFACE else 'Local'}") | |
| print(f"Docker: {'Yes' if IS_DOCKER else 'No'}") | |
| print(f"\nDependencies:") | |
| for dep, available in deps.items(): | |
| status = "✓" if available else "✗" | |
| print(f" {status} {dep}") | |
| # Launch appropriate interface | |
| if deps['gradio']: | |
| print("\n🚀 Launching Gradio interface...") | |
| from interface.gradio_app import create_app | |
| app = create_app() | |
| # Hugging Face specific settings | |
| server_name = os.environ.get('GRADIO_SERVER_NAME', '0.0.0.0') | |
| server_port = int(os.environ.get('GRADIO_SERVER_PORT', '7860')) | |
| app.launch( | |
| server_name=server_name, | |
| server_port=server_port, | |
| share=False, | |
| show_error=True | |
| ) | |
| else: | |
| print("\n⚠️ Gradio not available. Running CLI demo...") | |
| from agents.base import MultiAgentSystem | |
| from core.data_structures import ExperimentConfig | |
| config = ExperimentConfig( | |
| experiment_name="cli_demo", | |
| subject_id="test", | |
| n_trials=20, | |
| simulation_mode=True | |
| ) | |
| system = MultiAgentSystem() | |
| system.initialize(config) | |
| system.start_all() | |
| # Wait for completion | |
| import time | |
| while system.running: | |
| time.sleep(0.5) | |
| status = system.get_status() | |
| print(f"\rTrials: {status.get('trial_count', 0)} | " | |
| f"Agents: {sum(1 for v in status.get('agents', {}).values() if v == 'active')}/6", | |
| end='') | |
| print("\n\nExperiment complete!") | |
| system.stop_all() | |
| if __name__ == "__main__": | |
| main() |