Primera fase: se construyen las funciones para las primeras 12 preguntas

This commit is contained in:
Mongar28
2025-10-30 11:05:14 -05:00
parent e2b027026d
commit 878ff1e9f3
16 changed files with 1953 additions and 0 deletions

78
llm/config.py Normal file
View File

@@ -0,0 +1,78 @@
"""
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")