Download mac/installa.command from amogaddy/neuronal: direct link, hf CLI and curl.
- Browser
- Download file 4.23 kB
-
https://huggingface.co/spaces/amogaddy/neuronal/resolve/main/mac/installa.command
- Command line
-
hf download hf://spaces/amogaddy/neuronal/mac/installa.command
-
curl -L -o installa.command https://huggingface.co/spaces/amogaddy/neuronal/resolve/main/mac/installa.command
4.23 kB
| # Installa Neuronal sul Mac (consigliato Apple Silicon: il modello gira sulla GPU con Metal). | |
| # Doppio clic su questo file dal Finder. Chat, ricordi e blocchi restano salvati sul Mac. | |
| set -euo pipefail | |
| HERE="$(cd "$(dirname "$0")" && pwd)" | |
| ROOT="$(cd "$HERE/.." && pwd)" | |
| APPDIR="$HOME/Library/Application Support/Neuronal" | |
| LLAMA_TAG=b11200 | |
| echo "Neuronal — Made in Italy" | |
| echo "Installazione per Mac" | |
| echo | |
| if [ "$(uname -m)" != "arm64" ]; then | |
| echo "Attenzione: questo Mac non ha un chip Apple (M1/M2/M3/M4). Neuronal funzionerà sulla CPU, molto lentamente." | |
| sleep 5 | |
| fi | |
| MEM_GB=$(( $(sysctl -n hw.memsize) / 1073741824 )) | |
| if [ "$MEM_GB" -lt 16 ]; then | |
| echo "Attenzione: il Mac ha ${MEM_GB} GB di memoria; per Neuronal ne servono almeno 16." | |
| sleep 5 | |
| fi | |
| # ---- strumenti ---- | |
| if ! command -v brew >/dev/null 2>&1; then | |
| echo "Serve Homebrew (https://brew.sh). Installalo con:" | |
| echo ' /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"' | |
| echo "poi rilancia questo installer." | |
| read -r -p "Premi Invio per chiudere." _ | |
| exit 1 | |
| fi | |
| echo "Installo gli strumenti (cmake, python, git, openssl)..." | |
| brew install cmake python@3.12 git openssl@3 >/dev/null | |
| PY="$(brew --prefix python@3.12)/bin/python3.12" | |
| # ---- compilazione: llama.cpp con Metal e il motore ---- | |
| BUILD="$(mktemp -d)" | |
| echo "Compilo llama.cpp $LLAMA_TAG con Metal (qualche minuto)..." | |
| git clone --depth 1 --branch "$LLAMA_TAG" https://github.com/ggml-org/llama.cpp "$BUILD/llama" >/dev/null 2>&1 | |
| cmake -S "$BUILD/llama" -B "$BUILD/llama/build" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON \ | |
| -DLLAMA_CURL=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_SERVER=OFF >/dev/null | |
| cmake --build "$BUILD/llama/build" -j "$(sysctl -n hw.ncpu)" >/dev/null | |
| LIBDIR="$(dirname "$(find "$BUILD/llama/build" -name 'libllama.dylib' | head -1)")" | |
| echo "Compilo il motore di Neuronal..." | |
| cmake -S "$ROOT" -B "$BUILD/neuronal" -DCMAKE_BUILD_TYPE=Release -DLLAMA_SRC="$BUILD/llama" -DLLAMA_LIB_DIR="$LIBDIR" >/dev/null | |
| cmake --build "$BUILD/neuronal" -j "$(sysctl -n hw.ncpu)" >/dev/null | |
| # ---- installazione ---- | |
| echo "Installo in: $APPDIR" | |
| mkdir -p "$APPDIR/bin" "$APPDIR/lib" "$APPDIR/engine/atlas" "$APPDIR/scripts" "$APPDIR/state" "$APPDIR/lavori" | |
| cp "$BUILD/neuronal/neuronald" "$APPDIR/bin/" | |
| find "$BUILD/llama/build" -name '*.dylib' -exec cp -P {} "$APPDIR/lib/" \; | |
| rm -rf "$APPDIR/web" "$APPDIR/mind" | |
| cp -R "$ROOT/web" "$ROOT/mind" "$APPDIR/" | |
| rm -rf "$APPDIR/mind/.venv" | |
| cp "$ROOT/engine/atlas/probes_it.txt" "$APPDIR/engine/atlas/" | |
| cp "$ROOT/scripts/scarica_modelli.py" "$APPDIR/scripts/" | |
| cp "$ROOT/modelli.json" "$APPDIR/" | |
| cp "$HERE/avvia.command" "$HERE/ferma.command" "$APPDIR/" | |
| chmod +x "$APPDIR/avvia.command" "$APPDIR/ferma.command" "$APPDIR/bin/neuronald" | |
| rm -rf "$BUILD" | |
| echo "Preparo la voce (Python)..." | |
| "$PY" -m venv "$APPDIR/venv" | |
| "$APPDIR/venv/bin/pip" install --quiet --upgrade pip | |
| "$APPDIR/venv/bin/pip" install --quiet -r "$APPDIR/mind/requirements.txt" | |
| echo "Scarico i modelli (circa 5 GB)..." | |
| "$APPDIR/venv/bin/python" "$APPDIR/scripts/scarica_modelli.py" "$APPDIR/models" --elenco "$APPDIR/modelli.json" | |
| # ---- app nella cartella Applicazioni ---- | |
| APP="$HOME/Applications/Neuronal.app" | |
| mkdir -p "$APP/Contents/MacOS" | |
| cat > "$APP/Contents/Info.plist" <<EOF | |
| <?xml version="1.0" encoding="UTF-8"?> | |
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | |
| <plist version="1.0"><dict> | |
| <key>CFBundleName</key><string>Neuronal</string> | |
| <key>CFBundleIdentifier</key><string>it.neuronal.app</string> | |
| <key>CFBundleExecutable</key><string>Neuronal</string> | |
| <key>CFBundlePackageType</key><string>APPL</string> | |
| <key>CFBundleShortVersionString</key><string>1.0</string> | |
| </dict></plist> | |
| EOF | |
| cat > "$APP/Contents/MacOS/Neuronal" <<EOF | |
| #!/usr/bin/env bash | |
| open -a Terminal "$APPDIR/avvia.command" | |
| EOF | |
| chmod +x "$APP/Contents/MacOS/Neuronal" | |
| echo | |
| echo "Installato. Apri Neuronal da Applicazioni (cartella Inizio > Applicazioni) oppure con:" | |
| echo " \"$APPDIR/avvia.command\"" | |
| read -r -p "Vuoi avviarlo adesso? [S/n] " yn | |
| case "${yn:-s}" in [nN]*) ;; *) exec "$APPDIR/avvia.command";; esac | |