File size: 6,900 Bytes
22ca508 |
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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
#!/bin/bash
# 🔧 Script de configuración para CLI tools
# Configura Hugging Face CLI, Docker CLI y GitHub CLI
set -e
echo "🚀 Configurando CLI Tools para GPT Local..."
# Colores para output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Función para imprimir con colores
print_status() {
echo -e "${BLUE}[INFO]${NC} $1"
}
print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 1. Instalar Hugging Face CLI
install_huggingface_cli() {
print_status "Instalando Hugging Face CLI..."
if command -v huggingface-cli &> /dev/null; then
print_success "Hugging Face CLI ya está instalado"
else
pip install --upgrade huggingface_hub
print_success "Hugging Face CLI instalado"
fi
# Verificar instalación
huggingface-cli --version || print_warning "Error verificando Hugging Face CLI"
}
# 2. Configurar Docker CLI (verificar instalación)
check_docker() {
print_status "Verificando Docker CLI..."
if command -v docker &> /dev/null; then
print_success "Docker CLI encontrado: $(docker --version)"
# Verificar que Docker daemon esté ejecutándose
if docker info &> /dev/null; then
print_success "Docker daemon está ejecutándose"
else
print_warning "Docker CLI instalado pero daemon no está ejecutándose"
print_status "Inicia Docker Desktop o el servicio Docker"
fi
else
print_error "Docker CLI no encontrado"
print_status "Instala Docker desde: https://docs.docker.com/get-docker/"
exit 1
fi
}
# 3. Instalar GitHub CLI (opcional)
install_github_cli() {
print_status "Verificando GitHub CLI..."
if command -v gh &> /dev/null; then
print_success "GitHub CLI ya está instalado: $(gh --version | head -1)"
else
print_warning "GitHub CLI no encontrado"
print_status "Instalando GitHub CLI..."
# Detectar OS y instalar apropiadamente
if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS
if command -v brew &> /dev/null; then
brew install gh
print_success "GitHub CLI instalado via Homebrew"
else
print_warning "Homebrew no encontrado. Instala manualmente desde: https://cli.github.com/"
fi
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
# Linux
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh
print_success "GitHub CLI instalado"
else
print_warning "OS no soportado para instalación automática. Instala manualmente desde: https://cli.github.com/"
fi
fi
}
# 4. Configurar autenticación de Hugging Face
setup_huggingface_auth() {
print_status "Configurando autenticación de Hugging Face..."
if [ -f "$HOME/.cache/huggingface/token" ]; then
print_success "Token de Hugging Face ya configurado"
else
print_warning "Token de Hugging Face no encontrado"
print_status "Para configurar tu token:"
echo "1. Ve a: https://huggingface.co/settings/tokens"
echo "2. Crea un nuevo token con permisos de lectura"
echo "3. Ejecuta: huggingface-cli login"
echo "4. O agrega el token al archivo .env: HUGGINGFACE_TOKEN=hf_tu_token"
fi
}
# 5. Configurar autenticación de GitHub
setup_github_auth() {
print_status "Configurando autenticación de GitHub..."
if command -v gh &> /dev/null; then
if gh auth status &> /dev/null; then
print_success "GitHub CLI ya está autenticado"
else
print_warning "GitHub CLI no está autenticado"
print_status "Para autenticar ejecuta: gh auth login"
fi
else
print_warning "GitHub CLI no instalado, saltando configuración"
fi
}
# 6. Verificar Docker Compose
check_docker_compose() {
print_status "Verificando Docker Compose..."
if command -v docker-compose &> /dev/null; then
print_success "Docker Compose encontrado: $(docker-compose --version)"
elif docker compose version &> /dev/null; then
print_success "Docker Compose (plugin) encontrado: $(docker compose version)"
else
print_error "Docker Compose no encontrado"
print_status "Instala Docker Compose desde: https://docs.docker.com/compose/install/"
fi
}
# 7. Crear alias útiles
create_aliases() {
print_status "Creando aliases útiles..."
cat >> ~/.bash_aliases 2>/dev/null << 'EOF' || true
# GPT Local aliases
alias gpt-chat="cd /path/to/gpt-local && python3 chat_terminal.py"
alias gpt-web="cd /path/to/gpt-local && python3 main.py"
alias gpt-test="cd /path/to/gpt-local && python3 test_gpt.py"
alias gpt-docker="cd /path/to/gpt-local && docker-compose up --build"
alias gpt-clean="cd /path/to/gpt-local && python3 utils.py clean"
EOF
# Para zsh
cat >> ~/.zshrc 2>/dev/null << 'EOF' || true
# GPT Local aliases
alias gpt-chat="cd /path/to/gpt-local && python3 chat_terminal.py"
alias gpt-web="cd /path/to/gpt-local && python3 main.py"
alias gpt-test="cd /path/to/gpt-local && python3 test_gpt.py"
alias gpt-docker="cd /path/to/gpt-local && docker-compose up --build"
alias gpt-clean="cd /path/to/gpt-local && python3 utils.py clean"
EOF
print_success "Aliases creados (recarga tu terminal para usarlos)"
}
# Función principal
main() {
print_status "Iniciando configuración de CLI tools..."
# Verificar Python
if ! command -v python3 &> /dev/null; then
print_error "Python 3 no encontrado. Instala Python 3.9+"
exit 1
fi
# Ejecutar configuraciones
install_huggingface_cli
check_docker
check_docker_compose
install_github_cli
setup_huggingface_auth
setup_github_auth
create_aliases
print_success "✅ Configuración de CLI tools completada!"
print_status "Comandos disponibles:"
echo " - huggingface-cli: Gestión de modelos HF"
echo " - docker: Containerización"
echo " - docker-compose: Orquestación"
echo " - gh: GitHub CLI (opcional)"
print_status "Próximos pasos:"
echo "1. Configura tu token HF: huggingface-cli login"
echo "2. Autentica GitHub (opcional): gh auth login"
echo "3. Ejecuta: docker-compose up --build"
}
# Ejecutar script
main "$@"
|