| #!/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 "$@" |
|
|