diff --git a/bin/rate_update.py b/bin/rate_update.py index 72386e1..45c5a92 100755 --- a/bin/rate_update.py +++ b/bin/rate_update.py @@ -164,7 +164,7 @@ def query_perplexity(prompt, model="sonar"): "messages": [ { "role": "system", - "content": "You are a helpful assistant that provides accurate salary information for developers worldwide. Respond only with numeric values in USD with 2 decimal places." + "content": "You are a helpful assistant that provides accurate salary information for developers worldwide. Respond only with numeric values in USD with 2 decimal places. Do not include any text, currency symbols, or other characters." }, { "role": "user", @@ -503,32 +503,42 @@ def update_rate_files(): def generate_prompt_base(programmer_type): """ Genera un prompt para consultar la tarifa base por hora para un tipo de programador. + Utiliza el prompt definido en el archivo rates.prompt. """ + # Mapa para traducir tipos de programador a términos en inglés programmer_map = { - 'bash': 'programador de scripts Bash/Shell', - 'python': 'desarrollador Python', - 'fullstack': 'desarrollador Full Stack', - 'frontend': 'desarrollador Frontend', - 'backend': 'desarrollador Backend', - 'devops': 'ingeniero DevOps', - 'mobile': 'desarrollador de aplicaciones móviles', - 'java': 'desarrollador Java', - 'php': 'desarrollador PHP', - 'ruby': 'desarrollador Ruby', - 'dotnet': 'desarrollador .NET', - 'data': 'científico de datos', - 'ml': 'ingeniero de Machine Learning', - 'cloud': 'arquitecto Cloud', - 'odoo': 'desarrollador Odoo' + 'bash': 'Bash/Shell', + 'python': 'Python', + 'fullstack': 'Full Stack', + 'frontend': 'Frontend', + 'backend': 'Backend', + 'devops': 'DevOps', + 'mobile': 'Mobile App', + 'java': 'Java', + 'php': 'PHP', + 'ruby': 'Ruby', + 'dotnet': '.NET', + 'data': 'Data Science', + 'ml': 'Machine Learning', + 'cloud': 'Cloud', + 'odoo': 'Odoo' } - programmer_description = programmer_map.get(programmer_type, f'desarrollador {programmer_type}') + programmer_description = programmer_map.get(programmer_type, programmer_type) - # Usamos el año actual para la consulta principal - current_year = time.strftime("%Y") - prompt = f"""¿Cuál es la tarifa POR HORA promedio mundial en dólares estadounidenses (USD) para un {programmer_description} en {current_year}? - -IMPORTANTE: Responde ÚNICAMENTE con el valor numérico con dos decimales. Es ESENCIAL que sea el valor POR HORA.""" + # Cargar el prompt desde el archivo + prompt_template = "" + prompt_file = CONFIG_DIR / 'rates.prompt' + + try: + with open(prompt_file, 'r', encoding='utf-8') as f: + prompt_template = f.read().strip() + except FileNotFoundError: + # Si no se encuentra el archivo, usar un prompt predeterminado + prompt_template = "What is the average hourly rate in USD for a [developer type] developer, expressed as a numerical value with two decimal places?" + + # Reemplazar [developer type] con el tipo de programador específico + prompt = prompt_template.replace('[developer type]', programmer_description) return prompt