File size: 4,228 Bytes
d601f7c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | #!/usr/bin/env bash
# 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
|