diff --git a/laptop_full_setup.sh b/laptop_full_setup.sh index 55e037f..b06c8c5 100755 --- a/laptop_full_setup.sh +++ b/laptop_full_setup.sh @@ -333,33 +333,6 @@ if $INSTALL_AI; then MODEL_PREF="${MODEL_PREF:-1}" # Q4 approximate sizes in GB: 7B=4, 13-15B=9, 22B=13, 32B=19, 70-72B=41 - echo "" - echo " Size tier — estimated speed on your ${VRAM_GB}GB GPU:" - echo " (No hard limits — Ollama uses all available VRAM automatically)" - echo "" - printf " %-8s %-42s %s\n" "Tier" "Models" "Speed on your system" - printf " %-8s %-42s %s\n" "--------" "------------------------------------------" "--------------------" - - case "$MODEL_PREF" in - 1) # Western - printf " %-8s %-42s %s\n" "7B" "mistral:7b + codellama:7b" "$(speed_label 4)" - printf " %-8s %-42s %s\n" "14B" "phi4:14b + starcoder2:15b" "$(speed_label 9)" - printf " %-8s %-42s %s\n" "22B" "phi4:14b + codestral:22b" "$(speed_label 13)" - printf " %-8s %-42s %s\n" "70B" "llama3.3:70b + codestral:22b" "$(speed_label 41)" - ;; - 2) # Performance - printf " %-8s %-42s %s\n" "7B" "qwen2.5:7b + qwen2.5-coder:7b" "$(speed_label 4)" - printf " %-8s %-42s %s\n" "14B" "qwen2.5:14b + qwen2.5-coder:14b" "$(speed_label 9)" - printf " %-8s %-42s %s\n" "32B" "qwen2.5:14b + qwen2.5-coder:32b" "$(speed_label 19)" - printf " %-8s %-42s %s\n" "72B" "qwen2.5:72b + qwen2.5-coder:32b" "$(speed_label 41)" - ;; - 3) # Mixed - printf " %-8s %-42s %s\n" "7B" "mistral:7b + qwen2.5-coder:7b" "$(speed_label 4)" - printf " %-8s %-42s %s\n" "14B" "phi4:14b + qwen2.5-coder:14b" "$(speed_label 9)" - printf " %-8s %-42s %s\n" "32B" "phi4:14b + qwen2.5-coder:32b" "$(speed_label 19)" - printf " %-8s %-42s %s\n" "70B" "llama3.3:70b + qwen2.5-coder:32b" "$(speed_label 41)" - ;; - esac # VRAM-based recommendation (soft — shown as suggestion only) if [[ "$VRAM_GB" -ge 20 ]]; then REC_TIER="32B" @@ -370,6 +343,44 @@ if $INSTALL_AI; then # performance pref has no 22B tier [[ "$MODEL_PREF" == "2" && "$REC_TIER" == "22B" ]] && REC_TIER="32B" + echo "" + echo " Size tier — estimated speed on your ${VRAM_GB}GB GPU:" + echo " (No hard limits — Ollama uses all available VRAM automatically)" + echo "" + printf " %-4s %-8s %-42s %s\n" "#" "Tier" "Models" "Speed on your system" + printf " %-4s %-8s %-42s %s\n" "----" "--------" "------------------------------------------" "--------------------" + + declare -a _TIER_NAMES + case "$MODEL_PREF" in + 1) # Western + _TIER_NAMES=(7B 14B 22B 70B) + printf " %-4s %-8s %-42s %s\n" "1)" "7B" "mistral:7b + codellama:7b" "$(speed_label 4)" + printf " %-4s %-8s %-42s %s\n" "2)" "14B" "phi4:14b + starcoder2:15b" "$(speed_label 9)" + printf " %-4s %-8s %-42s %s\n" "3)" "22B" "phi4:14b + codestral:22b" "$(speed_label 13)" + printf " %-4s %-8s %-42s %s\n" "4)" "70B" "llama3.3:70b + codestral:22b" "$(speed_label 41)" + ;; + 2) # Performance + _TIER_NAMES=(7B 14B 32B 72B) + printf " %-4s %-8s %-42s %s\n" "1)" "7B" "qwen2.5:7b + qwen2.5-coder:7b" "$(speed_label 4)" + printf " %-4s %-8s %-42s %s\n" "2)" "14B" "qwen2.5:14b + qwen2.5-coder:14b" "$(speed_label 9)" + printf " %-4s %-8s %-42s %s\n" "3)" "32B" "qwen2.5:14b + qwen2.5-coder:32b" "$(speed_label 19)" + printf " %-4s %-8s %-42s %s\n" "4)" "72B" "qwen2.5:72b + qwen2.5-coder:32b" "$(speed_label 41)" + ;; + 3) # Mixed + _TIER_NAMES=(7B 14B 32B 70B) + printf " %-4s %-8s %-42s %s\n" "1)" "7B" "mistral:7b + qwen2.5-coder:7b" "$(speed_label 4)" + printf " %-4s %-8s %-42s %s\n" "2)" "14B" "phi4:14b + qwen2.5-coder:14b" "$(speed_label 9)" + printf " %-4s %-8s %-42s %s\n" "3)" "32B" "phi4:14b + qwen2.5-coder:32b" "$(speed_label 19)" + printf " %-4s %-8s %-42s %s\n" "4)" "70B" "llama3.3:70b + qwen2.5-coder:32b" "$(speed_label 41)" + ;; + esac + + # Figure out recommended number from REC_TIER + REC_NUM=2 + for i in "${!_TIER_NAMES[@]}"; do + [[ "${_TIER_NAMES[$i]}" == "$REC_TIER" ]] && REC_NUM=$((i+1)) + done + echo "" if [[ "$MODEL_PREF" == "4" ]]; then @@ -382,8 +393,15 @@ if $INSTALL_AI; then read -rp " Code model [$CODE_MODEL]: " _in; CODE_MODEL="${_in:-$CODE_MODEL}" read -rp " Reasoning model (Enter to skip): " REASON_MODEL else - read -rp " Choose tier [$REC_TIER]: " TIER_PICK - TIER_PICK="${TIER_PICK:-$REC_TIER}" + read -rp " Choose tier [$REC_NUM]: " _TIER_INPUT + _TIER_INPUT="${_TIER_INPUT:-$REC_NUM}" + # Accept either a number (1-4) or the tier name directly + if [[ "$_TIER_INPUT" =~ ^[1-4]$ ]]; then + TIER_PICK="${_TIER_NAMES[$((_TIER_INPUT-1))]}" + else + TIER_PICK="$_TIER_INPUT" + fi + unset _TIER_NAMES _TIER_INPUT REC_NUM case "${MODEL_PREF}:${TIER_PICK}" in # Western