mirror of
https://github.com/NousResearch/atropos.git
synced 2026-04-28 17:29:30 +00:00
Add DynastAI integration documentation and setup scripts
- Introduced `ATROPOS_INTEGRATION.md` for detailed instructions on using DynastAI with Atropos. - Added `INSTALL_AND_RUN.md` to guide users through installation and running the game. - Created `run_dynastai.py` for a simplified testing experience without full Atropos setup. - Implemented `setup.py` to manage dependencies and ensure compatibility. - Updated `requirements.txt` to include additional dependencies and version constraints. - Enhanced `README.md` with new sections on installation, running the game, and integration with Atropos. - Added installation verification script `verify_install.py` to check for required packages. - Updated game logic to support local card generation and improved API integration. - Enhanced web interface with new features for user interaction and game metrics display.
This commit is contained in:
parent
b9a1940d12
commit
7101aad190
20 changed files with 1810 additions and 310 deletions
81
environments/dynastai/run_dynastai.py
Executable file
81
environments/dynastai/run_dynastai.py
Executable file
|
|
@ -0,0 +1,81 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
DynastAI Quick Test Script
|
||||
|
||||
This script provides a simple way to test the DynastAI environment without requiring the full Atropos setup.
|
||||
It will start a local server and open the web UI in your default browser.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
import webbrowser
|
||||
import time
|
||||
import argparse
|
||||
|
||||
# Ensure the script works from any directory
|
||||
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
os.chdir(SCRIPT_DIR)
|
||||
|
||||
# Add the parent directory to sys.path to allow importing atroposlib if available
|
||||
parent_dir = os.path.abspath(os.path.join(SCRIPT_DIR, '..', '..'))
|
||||
if parent_dir not in sys.path:
|
||||
sys.path.insert(0, parent_dir)
|
||||
|
||||
def main():
|
||||
# Parse arguments
|
||||
parser = argparse.ArgumentParser(description="Run DynastAI test environment")
|
||||
parser.add_argument("--no-browser", action="store_true", help="Don't open browser automatically")
|
||||
parser.add_argument("--api-port", type=int, default=9001, help="API port (default: 9001)")
|
||||
parser.add_argument("--web-port", type=int, default=3000, help="Web UI port (default: 3000)")
|
||||
args = parser.parse_args()
|
||||
|
||||
# Install dependencies if needed
|
||||
try:
|
||||
import fastapi
|
||||
import uvicorn
|
||||
import pydantic
|
||||
print("Dependencies already installed.")
|
||||
except ImportError:
|
||||
print("Installing dependencies...")
|
||||
try:
|
||||
# First try using the setup script
|
||||
if os.path.exists(os.path.join(SCRIPT_DIR, "setup.py")):
|
||||
print("Running setup script...")
|
||||
subprocess.run([sys.executable, os.path.join(SCRIPT_DIR, "setup.py")])
|
||||
else:
|
||||
# Fall back to direct installation
|
||||
subprocess.run([sys.executable, "-m", "pip", "install", "--upgrade", "pip"])
|
||||
subprocess.run([sys.executable, "-m", "pip", "install", "-r", "requirements.txt"])
|
||||
except Exception as e:
|
||||
print(f"Warning: Error installing dependencies: {e}")
|
||||
print("Please run 'python setup.py' manually before continuing.")
|
||||
|
||||
# Create data directory if it doesn't exist
|
||||
os.makedirs(os.path.join(SCRIPT_DIR, "src/data"), exist_ok=True)
|
||||
|
||||
# Start the local server
|
||||
print(f"Starting DynastAI server on http://localhost:{args.web_port}")
|
||||
server_process = subprocess.Popen(
|
||||
[sys.executable, os.path.join(SCRIPT_DIR, "dynastai_local_server.py"), "--api-port", str(args.api_port), "--web-port", str(args.web_port)]
|
||||
)
|
||||
|
||||
try:
|
||||
# Give the server time to start
|
||||
time.sleep(2)
|
||||
|
||||
# Open the browser if requested
|
||||
if not args.no_browser:
|
||||
print("Opening web browser...")
|
||||
webbrowser.open(f"http://localhost:{args.web_port}")
|
||||
|
||||
print("Press Ctrl+C to stop the server")
|
||||
server_process.wait()
|
||||
except KeyboardInterrupt:
|
||||
print("\nShutting down server...")
|
||||
server_process.terminate()
|
||||
server_process.wait()
|
||||
print("Server stopped.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue