最后活跃于 3 days ago

Script del Episodio 827 - atareao con Linux

atareao's Avatar atareao 修订了这个 Gist 3 days ago. 转到此修订

1 file changed, 188 insertions

descargar-modelos.sh(文件已创建)

@@ -0,0 +1,188 @@
1 + #!/bin/bash
2 + # =============================================================================
3 + # descargar-modelos.sh — Descarga de modelos según nivel de hardware
4 + # =============================================================================
5 + #
6 + # Uso:
7 + # chmod +x descargar-modelos.sh
8 + # ./descargar-modelos.sh # Modo interactivo (pregunta el nivel)
9 + # ./descargar-modelos.sh --nivel1 # Descarga solo modelos nivel 1
10 + # ./descargar-modelos.sh --nivel2 # Descarga modelos nivel 2 (recomendado)
11 + # ./descargar-modelos.sh --nivel3 # Descarga modelos nivel 3
12 + # ./descargar-modelos.sh --todos # Descarga todos los modelos
13 + #
14 + # Descripción:
15 + # Descarga los modelos recomendados según tu hardware. Cada nivel corresponde
16 + # a los rangos de RAM mencionados en el episodio.
17 + #
18 + # Requisitos:
19 + # - Ollama instalado (ver 02-instalacion/setup-ollama.sh)
20 + # - Conexión a internet
21 + # - Espacio en disco suficiente (ver tabla abajo)
22 + #
23 + # Tamaños aproximados (cuantizados):
24 + # Nivel 1: phi3.5 (~2.5 GB) + qwen2.5-coder:1.5b (~1 GB) = ~3.5 GB
25 + # Nivel 2: llama3.2:3b (~2 GB) + qwen2.5:7b (~4.5 GB) + deepseek-coder (~9 GB)
26 + # Nivel 3: llama3.1:8b (~5 GB) + mistral:7b (~4.5 GB)
27 + # Embeddings: nomic-embed-text (~0.3 GB)
28 + #
29 + # =============================================================================
30 +
31 + set -euo pipefail
32 +
33 + # Colores para output
34 + VERDE='\033[0;32m'
35 + AMARILLO='\033[1;33m'
36 + AZUL='\033[0;34m'
37 + RESET='\033[0m'
38 +
39 + echo -e "${AZUL}==============================================${RESET}"
40 + echo -e "${AZUL} Descarga de modelos — Laboratorio IA Local${RESET}"
41 + echo -e "${AZUL}==============================================${RESET}"
42 + echo ""
43 +
44 + # --- Comprobar Ollama ----------------------------------------------------
45 + if ! command -v ollama &>/dev/null; then
46 + echo "ERROR: Ollama no está instalado."
47 + echo " Ejecuta primero: curl -fsSL https://ollama.com/install.sh | sh"
48 + exit 1
49 + fi
50 +
51 + echo -e " ${VERDE}✓${RESET} Ollama detectado: $(ollama --version 2>/dev/null || echo 'versión desconocida')"
52 + echo ""
53 +
54 + # --- Selección de nivel --------------------------------------------------
55 + NIVEL="${1:-}"
56 +
57 + if [[ -z "$NIVEL" ]]; then
58 + echo "Selecciona tu nivel de hardware:"
59 + echo ""
60 + echo " Nivel 1 — Hardware humilde (8 GB RAM / Raspberry Pi 5)"
61 + echo " Modelos: phi3.5, qwen2.5-coder:1.5b"
62 + echo " Espacio: ~3.5 GB"
63 + echo ""
64 + echo " Nivel 2 — Punto dulce (16 GB RAM) ⭐ RECOMENDADO"
65 + echo " Modelos: llama3.2:3b, qwen2.5:7b, deepseek-coder-v2:16b-lite-instruct-q4_K_M"
66 + echo " Espacio: ~15 GB"
67 + echo ""
68 + echo " Nivel 3 — Hardware potente (32 GB+ RAM / GPU)"
69 + echo " Modelos: llama3.1:8b, mistral:7b"
70 + echo " Espacio: ~10 GB"
71 + echo ""
72 + echo " Todos — Descarga todos los modelos"
73 + echo " Espacio: ~28 GB"
74 + echo ""
75 + echo " Embeddings — Solo modelo de embeddings (para RAG)"
76 + echo " Modelo: nomic-embed-text (~0.3 GB)"
77 + echo ""
78 + read -r -p " ¿Qué nivel quieres descargar? [1/2/3/todos/emb]: " NIVEL
79 + echo ""
80 + fi
81 +
82 + # --- Mapear nivel a modelos ---------------------------------------------
83 + case "$NIVEL" in
84 + --nivel1|1)
85 + echo -e "${AZUL}Nivel 1: Hardware humilde${RESET}"
86 + MODELOS=(
87 + "phi3.5"
88 + "qwen2.5-coder:1.5b"
89 + )
90 + ;;
91 + --nivel2|2)
92 + echo -e "${AZUL}Nivel 2: Punto dulce (RECOMENDADO)${RESET}"
93 + MODELOS=(
94 + "llama3.2:3b"
95 + "qwen2.5:7b"
96 + "deepseek-coder-v2:16b-lite-instruct-q4_K_M"
97 + )
98 + ;;
99 + --nivel3|3)
100 + echo -e "${AZUL}Nivel 3: Hardware potente${RESET}"
101 + MODELOS=(
102 + "llama3.1:8b"
103 + "mistral:7b"
104 + )
105 + ;;
106 + --todos|todos)
107 + echo -e "${AZUL}Todos los modelos${RESET}"
108 + MODELOS=(
109 + "phi3.5"
110 + "qwen2.5-coder:1.5b"
111 + "llama3.2:3b"
112 + "qwen2.5:7b"
113 + "deepseek-coder-v2:16b-lite-instruct-q4_K_M"
114 + "llama3.1:8b"
115 + "mistral:7b"
116 + )
117 + ;;
118 + --emb|emb)
119 + echo -e "${AZUL}Solo modelo de embeddings${RESET}"
120 + MODELOS=(
121 + "nomic-embed-text"
122 + )
123 + ;;
124 + *)
125 + echo "ERROR: Nivel no reconocido: $NIVEL"
126 + echo " Usa: 1, 2, 3, todos, o emb"
127 + exit 1
128 + ;;
129 + esac
130 +
131 + echo ""
132 + echo " Modelos a descargar:"
133 + for modelo in "${MODELOS[@]}"; do
134 + echo " - $modelo"
135 + done
136 + echo ""
137 +
138 + # --- Confirmar -----------------------------------------------------------
139 + read -r -p " ¿Continuar con la descarga? [s/N]: " respuesta
140 + if [[ ! "$respuesta" =~ ^[sS]$ ]]; then
141 + echo " Descarga cancelada."
142 + exit 0
143 + fi
144 +
145 + echo ""
146 +
147 + # --- Descargar modelos ---------------------------------------------------
148 + for modelo in "${MODELOS[@]}"; do
149 + echo -e "${AMARILLO}Descargando:${RESET} ollama pull $modelo"
150 + echo " (Esto puede tardar varios minutos según tu conexión)"
151 + echo ""
152 +
153 + # Ejecutar ollama pull
154 + ollama pull "$modelo"
155 +
156 + echo -e "${VERDE} ✓${RESET} $modelo descargado"
157 + echo ""
158 + done
159 +
160 + # --- Descargar modelo de embeddings (si no está ya incluido) -------------
161 + if [[ "$NIVEL" != "emb" && "$NIVEL" != "--emb" ]]; then
162 + echo -e "${AMARILLO}¿Descargar también modelo de embeddings?${RESET}"
163 + echo " nomic-embed-text (~0.3 GB) — necesario para RAG"
164 + read -r -p " [s/N]: " respuesta
165 + if [[ "$respuesta" =~ ^[sS]$ ]]; then
166 + echo ""
167 + echo -e "${AMARILLO}Descargando:${RESET} ollama pull nomic-embed-text"
168 + ollama pull nomic-embed-text
169 + echo -e "${VERDE} ✓${RESET} nomic-embed-text descargado"
170 + fi
171 + fi
172 +
173 + # --- Resumen final -------------------------------------------------------
174 + echo ""
175 + echo -e "${VERDE}==============================================${RESET}"
176 + echo -e "${VERDE} Descarga completada${RESET}"
177 + echo -e "${VERDE}==============================================${RESET}"
178 + echo ""
179 + echo " Modelos disponibles localmente:"
180 + echo ""
181 + ollama list
182 + echo ""
183 + echo " Para probar un modelo:"
184 + echo " ollama run qwen2.5:7b \"Explícame qué es Linux\""
185 + echo ""
186 + echo " Para eliminar un modelo:"
187 + echo " ollama rm qwen2.5:7b"
188 + echo ""
上一页 下一页