#!/bin/bash # ============================================================ # Lulluna Backend — M5 MacBook Air Setup # ============================================================ set -e echo "============================================" echo " 🌙 Lulluna Backend — M5 Setup" echo "============================================" # 1. Virtual environment echo "" echo "→ Creating .venv..." python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip --quiet # 2. llama-cpp-python with Metal (the important flag) echo "" echo "→ Installing llama-cpp-python with Metal (~4 min, builds from source)..." CMAKE_ARGS="-DGGML_METAL=on" \ pip install llama-cpp-python \ --no-cache-dir --force-reinstall --upgrade --quiet # 3. Other dependencies echo "" echo "→ Installing dependencies..." pip install \ "gradio>=4.44.0" \ huggingface_hub \ python-dotenv \ requests \ --quiet # 4. Write .env cat > .env << 'EOF' MODEL_PATH=./models/MiniCPM5-1B-Q4_K_M.gguf N_GPU_LAYERS=99 N_CTX=2048 MAX_TOKENS=1024 TEMPERATURE=0.75 REPEAT_PENALTY=1.1 PORT=7860 EOF echo "" echo "============================================" echo " Setup complete!" echo "" echo " Next steps:" echo " source .venv/bin/activate" echo " python download_model.py # ~800MB, one-time" echo " python app.py # start backend" echo " python test_local.py --quick # smoke test" echo "============================================"