diff --git a/bin/rate_update.py b/bin/rate_update.py index 73cfdbf..bdbe718 100755 --- a/bin/rate_update.py +++ b/bin/rate_update.py @@ -87,8 +87,9 @@ BASE_DIR = Path(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) CONFIG_DIR = BASE_DIR / 'bin' / 'config' RATES_DIR = CONFIG_DIR / 'rates' # Nueva ubicación para archivos de tarifas -# Archivo de configuración para el modelo de IA +# Archivos de configuración para la API de Perplexity MODEL_CONFIG_FILE = CONFIG_DIR / 'rate_model.ai' +TEMPERATURE_CONFIG_FILE = CONFIG_DIR / 'rate_temperature.ai' def get_ai_model(): """Obtener el modelo de IA configurado.""" @@ -104,6 +105,28 @@ def get_ai_model(): # Usar 'sonar' como modelo predeterminado (el más adecuado para la API de Perplexity) return "sonar" +def get_ai_temperature(): + """Obtener la temperatura configurada para la API de Perplexity.""" + try: + with open(TEMPERATURE_CONFIG_FILE, 'r', encoding='utf-8') as f: + temp_str = f.read().strip() + # Si hay un valor específico configurado, intentar convertirlo a float + if temp_str and temp_str.strip(): + try: + temp = float(temp_str) + # Validar que está en el rango correcto (0.0 a 1.0) + if 0.0 <= temp <= 1.0: + return temp + else: + logger.warning(f"Temperatura fuera de rango en {TEMPERATURE_CONFIG_FILE}: {temp}. Usando valor predeterminado 0.3.") + except ValueError: + logger.warning(f"Valor no numérico en {TEMPERATURE_CONFIG_FILE}: {temp_str}. Usando valor predeterminado 0.3.") + except FileNotFoundError: + logger.info(f"Archivo de configuración {TEMPERATURE_CONFIG_FILE} no encontrado. Usando temperatura predeterminada 0.3.") + + # Usar 0.3 como temperatura predeterminada + return 0.3 + def get_perplexity_api_key(): """Obtener la clave API de Perplexity desde una variable de entorno o archivo.""" # Intentar obtener la clave de la variable de entorno @@ -151,6 +174,7 @@ def get_perplexity_api_key(): def query_perplexity(prompt, model="sonar"): """Realizar una consulta a la API de Perplexity.""" api_key = get_perplexity_api_key() + temperature = get_ai_temperature() # Obtener temperatura configurada url = "https://api.perplexity.ai/chat/completions" headers = { @@ -172,11 +196,12 @@ def query_perplexity(prompt, model="sonar"): } ], "max_tokens": 100, - "temperature": 0.2 # Usar temperatura baja para respuestas más consistentes + "temperature": temperature # Usar temperatura configurada para respuestas } try: logger.info(f"Enviando consulta a Perplexity usando modelo: {model}") + logger.info(f"Temperatura configurada: {temperature}") logger.info(f"Prompt: {prompt}") response = requests.post(url, headers=headers, json=data)