[ADDED] Implementar configuración de temperatura desde archivo rate_temperature.ai
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
604786ad5f
commit
0efd6cf2b8
1 changed files with 27 additions and 2 deletions
|
@ -87,8 +87,9 @@ BASE_DIR = Path(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||||
CONFIG_DIR = BASE_DIR / 'bin' / 'config'
|
CONFIG_DIR = BASE_DIR / 'bin' / 'config'
|
||||||
RATES_DIR = CONFIG_DIR / 'rates' # Nueva ubicación para archivos de tarifas
|
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'
|
MODEL_CONFIG_FILE = CONFIG_DIR / 'rate_model.ai'
|
||||||
|
TEMPERATURE_CONFIG_FILE = CONFIG_DIR / 'rate_temperature.ai'
|
||||||
|
|
||||||
def get_ai_model():
|
def get_ai_model():
|
||||||
"""Obtener el modelo de IA configurado."""
|
"""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)
|
# Usar 'sonar' como modelo predeterminado (el más adecuado para la API de Perplexity)
|
||||||
return "sonar"
|
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():
|
def get_perplexity_api_key():
|
||||||
"""Obtener la clave API de Perplexity desde una variable de entorno o archivo."""
|
"""Obtener la clave API de Perplexity desde una variable de entorno o archivo."""
|
||||||
# Intentar obtener la clave de la variable de entorno
|
# Intentar obtener la clave de la variable de entorno
|
||||||
|
@ -151,6 +174,7 @@ def get_perplexity_api_key():
|
||||||
def query_perplexity(prompt, model="sonar"):
|
def query_perplexity(prompt, model="sonar"):
|
||||||
"""Realizar una consulta a la API de Perplexity."""
|
"""Realizar una consulta a la API de Perplexity."""
|
||||||
api_key = get_perplexity_api_key()
|
api_key = get_perplexity_api_key()
|
||||||
|
temperature = get_ai_temperature() # Obtener temperatura configurada
|
||||||
|
|
||||||
url = "https://api.perplexity.ai/chat/completions"
|
url = "https://api.perplexity.ai/chat/completions"
|
||||||
headers = {
|
headers = {
|
||||||
|
@ -172,11 +196,12 @@ def query_perplexity(prompt, model="sonar"):
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"max_tokens": 100,
|
"max_tokens": 100,
|
||||||
"temperature": 0.2 # Usar temperatura baja para respuestas más consistentes
|
"temperature": temperature # Usar temperatura configurada para respuestas
|
||||||
}
|
}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
logger.info(f"Enviando consulta a Perplexity usando modelo: {model}")
|
logger.info(f"Enviando consulta a Perplexity usando modelo: {model}")
|
||||||
|
logger.info(f"Temperatura configurada: {temperature}")
|
||||||
logger.info(f"Prompt: {prompt}")
|
logger.info(f"Prompt: {prompt}")
|
||||||
|
|
||||||
response = requests.post(url, headers=headers, json=data)
|
response = requests.post(url, headers=headers, json=data)
|
||||||
|
|
Loading…
Reference in a new issue