79 lines
2.3 KiB
Python
79 lines
2.3 KiB
Python
"""
|
|
Módulo para la configuración de modelos de lenguaje.
|
|
|
|
Este módulo proporciona clases para manejar la configuración
|
|
de diferentes modelos de lenguaje de manera estructurada.
|
|
"""
|
|
from typing import Dict, Any, Optional
|
|
|
|
|
|
class LLMConfig:
|
|
"""
|
|
Clase para manejar la configuración de los modelos de lenguaje.
|
|
|
|
Esta clase encapsula todos los parámetros necesarios para crear
|
|
un modelo de lenguaje, facilitando su gestión y reutilización.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
provider: str,
|
|
model_name: Optional[str] = None,
|
|
temperature: float = 0.0,
|
|
**kwargs
|
|
):
|
|
"""
|
|
Inicializa una configuración para un modelo de lenguaje.
|
|
|
|
Args:
|
|
provider: Proveedor del modelo (openai, anthropic)
|
|
model_name: Nombre del modelo específico (opcional)
|
|
temperature: Temperatura para la generación (default: 0.0)
|
|
**kwargs: Parámetros adicionales específicos del modelo
|
|
"""
|
|
self.provider = provider
|
|
self.model_name = model_name
|
|
self.temperature = temperature
|
|
self.extra_params = kwargs
|
|
|
|
def as_dict(self) -> Dict[str, Any]:
|
|
"""
|
|
Convierte la configuración a un diccionario.
|
|
|
|
Returns:
|
|
Diccionario con todos los parámetros de configuración
|
|
"""
|
|
config = {
|
|
"temperature": self.temperature,
|
|
}
|
|
|
|
# Añadir el nombre del modelo si está definido
|
|
if self.model_name:
|
|
config["model_name"] = self.model_name
|
|
|
|
# Añadir parámetros adicionales
|
|
config.update(self.extra_params)
|
|
|
|
return config
|
|
|
|
@classmethod
|
|
def default_openai(cls) -> 'LLMConfig':
|
|
"""
|
|
Crea una configuración predeterminada para OpenAI.
|
|
|
|
Returns:
|
|
Configuración predeterminada para OpenAI
|
|
"""
|
|
return cls(provider="openai", model_name="o4-mini")
|
|
|
|
@classmethod
|
|
def default_anthropic(cls) -> 'LLMConfig':
|
|
"""
|
|
Crea una configuración predeterminada para Anthropic.
|
|
|
|
Returns:
|
|
Configuración predeterminada para Anthropic
|
|
"""
|
|
return cls(provider="anthropic", model_name="claude-3-5-haiku-20241022")
|
|
|