gpt-local / setup-cli.sh
DRDELATV's picture
Upload folder using huggingface_hub
22ca508 verified
#!/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 "$@"