import requests import subprocess # Serveur OVH Ollama OLLAMA_SERVER = "http://217.182.105.173:11434/api" def list_models(): """Récupère la liste des modèles disponibles sur Ollama.""" try: response = requests.get(f"{OLLAMA_SERVER}/tags") if response.status_code == 200: models = response.json().get("models", []) model_names = [m["name"] for m in models] print(f"✅ Modèles disponibles : {model_names}") return model_names if model_names else [] return [] except requests.exceptions.RequestException as e: print(f"❌ Erreur récupération des modèles : {str(e)}") return [] def start_model(model_name): """Démarre un modèle Ollama uniquement si aucun autre modèle n'est actif.""" if not model_name: return "⚠️ Veuillez sélectionner un modèle." active_model = get_active_model() if active_model and active_model != "Aucun modèle actif": return f"⚠️ Un modèle est déjà actif : {active_model}. Arrêtez-le avant d’en lancer un autre." try: data = {"model": model_name, "prompt": "Test", "stream": False} response = requests.post(f"{OLLAMA_SERVER}/generate", json=data) if response.status_code == 200: print(f"🚀 Modèle {model_name} lancé avec succès !") return f"✅ Modèle {model_name} lancé avec succès !" else: print(f"❌ Erreur lancement modèle {model_name} : {response.text}") return f"❌ Erreur lancement modèle {model_name} : {response.text}" except requests.exceptions.RequestException as e: print(f"❌ Erreur connexion OVH : {str(e)}") return f"❌ Erreur connexion OVH : {str(e)}" def stop_ollama(): """Arrête tous les processus Ollama sur le serveur OVH.""" try: result = subprocess.run(["ssh", "ubuntu@217.182.105.173", "pkill -f ollama"], capture_output=True, text=True) if result.returncode == 0: return "🛑 Ollama arrêté avec succès." else: return f"❌ Erreur lors de l'arrêt d'Ollama : {result.stderr}" except Exception as e: return f"❌ Erreur arrêt Ollama : {str(e)}" def get_active_model(): """Récupère le dernier modèle utilisé sur Ollama.""" try: response = requests.get(f"{OLLAMA_SERVER}/tags") if response.status_code == 200: models = response.json().get("models", []) active_model = models[0]["name"] if models else "Aucun modèle actif" print(f"📌 Modèle actif : {active_model}") return active_model return "Aucun modèle actif" except requests.exceptions.RequestException as e: print(f"❌ Erreur récupération modèle actif : {str(e)}") return "❌ Erreur récupération modèle actif"