from abc import ABC, abstractmethod class ModeloABC(ABC): """ Clase base para definir la interfaz de un modelo conversacional. """ def __init__( self, model: str, temperature: float = 0.7, top_p: float = 1.0, top_k: int = None, frecuencia_penalizacion: float = 0.0, num_tokens_maximos: int = 512 ): self.model = model self.temperature = temperature self.top_p = top_p self.top_k = top_k self.frecuencia_penalizacion = frecuencia_penalizacion self.num_tokens_maximos = num_tokens_maximos @abstractmethod async def responder(self, prompt: str, system_prompt: str = "", stream: bool = False, **kwargs) -> str: """ Devuelve una respuesta a partir de un prompt y configuración del modelo. Este método debe implementarse de forma asíncrona en las subclases. """ pass