import requests from src.interfaces.models.modelInference import ModelManager class OllamaService(ModelManager): def __init__(self, base_url = "http://localhost:11434"): self.base_url = base_url def get_available_models(self): try: print(requests.__file__) print(self.base_url) response = requests.get(f"{self.base_url}/api/tags") data = response.json() return data.get('models', []) except Exception as e: print(f"Erro ao obter modelos: {e}") return [] def get_model_details(self, model_name): try: # Obter detalhes completos do modelo via API response = requests.post( f"{self.base_url}/api/show", json={"name": model_name} ) model_details = response.json() # O tamanho do contexto geralmente está disponível em model_details['parameters']['context_length'] # ou em outro campo similar dependendo do modelo context_size = model_details.get('parameters', {}).get('context_length', 'Não disponível') # Podemos adicionar outros detalhes relevantes details = { "name": model_name, "context_size": context_size, "model_type": model_details.get('modelfile', {}).get('parameter', 'Não disponível'), "license": model_details.get('license', 'Não disponível') } return details except Exception as e: print(f"Error getting model details: {e}") return {"name": model_name, "error": str(e)}