Spaces:
Sleeping
Sleeping
from smolagents import InferenceClientModel | |
import os | |
# Configuration des modèles | |
ORCHESTRATOR_MODEL = "Qwen/Qwen3-235B-A22B-Instruct-2507" | |
CODE_AGENT_MODEL = "Qwen/Qwen3-Coder-480B-A35B-Instruct" | |
VISION_MODEL = "Qwen/Qwen2.5-VL-72B-Instruct" | |
REASONING_MODEL = "deepseek-ai/DeepSeek-R1-0528" | |
class ModelManager: | |
"""Gestionnaire centralisé des modèles""" | |
def __init__(self, hf_token=None): | |
self.hf_token = hf_token or os.getenv("HF_TOKEN") | |
self._models = {} | |
self._initialize_models() | |
def _initialize_models(self): | |
"""Initialise tous les modèles""" | |
try: | |
# Modèle orchestrateur principal | |
self._models['orchestrator'] = InferenceClientModel( | |
model_id=ORCHESTRATOR_MODEL, | |
token=self.hf_token, | |
max_tokens=4096, | |
temperature=0.1, | |
timeout=240, | |
provider="together" | |
) | |
# Modèle pour le code | |
self._models['code_agent'] = InferenceClientModel( | |
model_id=CODE_AGENT_MODEL, | |
token=self.hf_token, | |
max_tokens=4096, | |
temperature=0.0, | |
timeout=240, | |
provider="novita" | |
) | |
# Modèle de vision | |
self._models['vision'] = InferenceClientModel( | |
model_id=VISION_MODEL, | |
token=self.hf_token, | |
max_tokens=2048, | |
temperature=0.1, | |
timeout=240, | |
provider="novita" | |
) | |
# Modèle de raisonnement | |
self._models['reasoning'] = InferenceClientModel( | |
model_id=REASONING_MODEL, | |
token=self.hf_token, | |
max_tokens=8192, | |
temperature=0.2, | |
timeout=240, | |
provider="fireworks-ai" | |
) | |
print("✅ Tous les modèles ont été initialisés avec succès") | |
except Exception as e: | |
print(f"❌ Erreur lors de l'initialisation des modèles: {e}") | |
raise | |
def get_model(self, model_type: str): | |
"""Récupère un modèle spécifique""" | |
if model_type not in self._models: | |
raise ValueError(f"Type de modèle inconnu: {model_type}") | |
return self._models[model_type] | |
def get_orchestrator(self): | |
"""Récupère le modèle orchestrateur""" | |
return self.get_model('orchestrator') | |
def get_code_agent(self): | |
"""Récupère le modèle de code""" | |
return self.get_model('code_agent') | |
def get_vision_model(self): | |
"""Récupère le modèle de vision""" | |
return self.get_model('vision') | |
def get_reasoning_model(self): | |
"""Récupère le modèle de raisonnement""" | |
return self.get_model('reasoning') | |
def test_models(self): | |
"""Test rapide de tous les modèles""" | |
results = {} | |
test_prompt = "Hello, can you confirm you're working?" | |
for model_name, model in self._models.items(): | |
try: | |
response = model(test_prompt, max_tokens=50) | |
results[model_name] = "✅ OK" | |
print(f"✅ {model_name}: OK") | |
except Exception as e: | |
results[model_name] = f"❌ Error: {str(e)[:100]}" | |
print(f"❌ {model_name}: {e}") | |
return results |