#!/bin/bash # Script de démarrage pour Private-GPT avec Ollama personnalisé # Permet de lancer facilement private-gpt avec des modèles d'IA personnalisés set -e # Répertoire courant où se trouve le script SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" # Couleurs pour les messages GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Afficher les modèles disponibles list_models() { echo -e "${BLUE}Modèles Ollama disponibles:${NC}" docker exec -it pgpt-ollama-cpu-1 ollama list } # Télécharger un nouveau modèle download_model() { if [ -z "$1" ]; then echo -e "${RED}Erreur: Veuillez spécifier un nom de modèle${NC}" echo "Exemple: $0 download llama3" exit 1 fi echo -e "${YELLOW}Téléchargement du modèle $1...${NC}" docker exec -it pgpt-ollama-cpu-1 ollama pull "$1" echo -e "${GREEN}Modèle $1 téléchargé avec succès${NC}" } # Arrêter les services stop_services() { echo -e "${YELLOW}Arrêt des services Private-GPT...${NC}" docker compose -f docker-compose.yaml down echo -e "${GREEN}Services arrêtés${NC}" } # Démarrer les services start_services() { local profile="$1" if [ -z "$profile" ]; then profile="ollama-cpu" fi echo -e "${YELLOW}Démarrage des services Private-GPT avec le profil $profile...${NC}" docker compose -f docker-compose.yaml --profile "$profile" up -d echo -e "${GREEN}Services démarrés avec succès${NC}" echo -e "${BLUE}Interface web disponible sur: ${GREEN}http://localhost:8001${NC}" } # Afficher l'aide show_help() { echo -e "${BLUE}Script de démarrage pour Private-GPT avec Ollama${NC}" echo "" echo -e "Usage: $0 [commande]" echo "" echo "Commandes:" echo " start [profile] Démarrer les services (profile: ollama-cpu (défaut), ollama-cuda)" echo " stop Arrêter les services" echo " list Lister les modèles Ollama disponibles" echo " download Télécharger un nouveau modèle Ollama" echo " help Afficher cette aide" echo "" echo "Exemples:" echo " $0 start Démarrer avec CPU (par défaut)" echo " $0 start ollama-cuda Démarrer avec GPU (CUDA)" echo " $0 download mistral Télécharger le modèle Mistral" echo "" } # Traitement des commandes case "$1" in start) start_services "$2" ;; stop) stop_services ;; list) list_models ;; download) download_model "$2" ;; *) show_help ;; esac