#!/bin/bash # NOVA Quickstart Script # Sets up NOVA for first-time use set -e echo "======================================" echo "NOVA Quickstart" echo "======================================" echo "" # Check Python version echo "Checking Python version..." python_version=$(python --version 2>&1 | grep -oP '(?<=Python )\d+\.\d+') required_version="3.10" if [ "$(printf '%s\n' "$required_version" "$python_version" | sort -V | head -n1)" != "$required_version" ]; then echo "❌ Python 3.10+ required. Found: $python_version" exit 1 fi echo "✓ Python $python_version" echo "" # Create virtual environment if [ ! -d "venv" ]; then echo "Creating virtual environment..." python -m venv venv echo "✓ Virtual environment created" else echo "✓ Virtual environment exists" fi echo "" # Activate virtual environment echo "Activating virtual environment..." if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then source venv/Scripts/activate else source venv/bin/activate fi echo "✓ Virtual environment activated" echo "" # Install dependencies echo "Installing dependencies..." pip install --upgrade pip > /dev/null pip install -r requirements.txt echo "✓ Dependencies installed" echo "" # Install NOVA in development mode echo "Installing NOVA..." pip install -e . echo "✓ NOVA installed" echo "" # Initialize project echo "Initializing NOVA project..." python scripts/cli.py init echo "" echo "======================================" echo "✓ NOVA Setup Complete!" echo "======================================" echo "" echo "Next steps:" echo "" echo "1. Train tokenizer:" echo " python scripts/cli.py tokenizer train --input data/toy_dataset/toy.txt" echo "" echo "2. (Optional) Download legal datasets:" echo " python scripts/cli.py data build --source wikipedia-en" echo "" echo "3. Train model:" echo " python scripts/cli.py train --size 125m" echo "" echo "4. Chat:" echo " python scripts/cli.py chat cli" echo "" echo "For more info: cat README.md" echo ""