|
#!/bin/bash |
|
|
|
|
|
|
|
set -e |
|
|
|
echo "🚀 Configurando CLI Tools para GPT Local..." |
|
|
|
|
|
RED='\033[0;31m' |
|
GREEN='\033[0;32m' |
|
YELLOW='\033[1;33m' |
|
BLUE='\033[0;34m' |
|
NC='\033[0m' |
|
|
|
|
|
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" |
|
} |
|
|
|
|
|
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 |
|
|
|
|
|
huggingface-cli --version || print_warning "Error verificando Hugging Face CLI" |
|
} |
|
|
|
|
|
check_docker() { |
|
print_status "Verificando Docker CLI..." |
|
|
|
if command -v docker &> /dev/null; then |
|
print_success "Docker CLI encontrado: $(docker --version)" |
|
|
|
|
|
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 |
|
} |
|
|
|
|
|
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..." |
|
|
|
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then |
|
|
|
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 |
|
|
|
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 |
|
} |
|
|
|
|
|
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 |
|
} |
|
|
|
|
|
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 |
|
} |
|
|
|
|
|
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 |
|
} |
|
|
|
|
|
create_aliases() { |
|
print_status "Creando aliases útiles..." |
|
|
|
cat >> ~/.bash_aliases 2>/dev/null << 'EOF' || true |
|
|
|
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 |
|
|
|
|
|
cat >> ~/.zshrc 2>/dev/null << 'EOF' || true |
|
|
|
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)" |
|
} |
|
|
|
|
|
main() { |
|
print_status "Iniciando configuración de CLI tools..." |
|
|
|
|
|
if ! command -v python3 &> /dev/null; then |
|
print_error "Python 3 no encontrado. Instala Python 3.9+" |
|
exit 1 |
|
fi |
|
|
|
|
|
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" |
|
} |
|
|
|
|
|
main "$@" |
|
|