import anthropic import os import streamlit as st import logging from typing import Dict, Any logger = logging.getLogger(__name__) def generate_claude_recommendations(text: str, metrics: Dict[str, Any], text_type: str, lang_code: str): """ Genera recomendaciones personalizadas utilizando la API de Claude. Args: text: El texto original que se analizó metrics: Métricas calculadas por el sistema text_type: Tipo de texto (academic_article, student_essay, general_communication) lang_code: Código del idioma Returns: str: HTML formateado con recomendaciones personalizadas """ # Diccionario para traducción de tipos de texto text_type_names = { 'academic_article': 'artículo académico', 'student_essay': 'trabajo universitario', 'general_communication': 'comunicación general' } # Identificar las áreas más débiles (ordenadas de peor a mejor) areas = ['vocabulary', 'structure', 'cohesion', 'clarity'] scores = {area: metrics[area]['normalized_score'] for area in areas} weak_areas = sorted(areas, key=lambda x: scores[x]) # Crear un mensaje estructurado para Claude try: client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY")) # Construir el prompt para Claude prompt = f""" Actúa como un asistente experto en escritura académica y comunicación. Analiza el siguiente texto (clasificado como {text_type_names.get(text_type, text_type)}) y genera recomendaciones personalizadas para mejorarlo. Las métricas de análisis del texto son: - Vocabulario: {scores['vocabulary']:.2f}/1.00 - Estructura: {scores['structure']:.2f}/1.00 - Cohesión: {scores['cohesion']:.2f}/1.00 - Claridad: {scores['clarity']:.2f}/1.00 Áreas que necesitan mayor atención (de mayor a menor prioridad): {', '.join([area for area in weak_areas[:2]])} Texto analizado: "{text[:1000]}..." (texto truncado para análisis) Por favor, proporciona: 1. Un breve resumen del análisis (2-3 oraciones) 2. 3-4 recomendaciones específicas para mejorar el texto, identificando problemas concretos 3. Sugerencias de qué herramientas de AIdeaText serían más útiles (Análisis Morfosintáctico, Análisis Semántico, o Análisis del Discurso) 4. Un ejemplo concreto de cómo mejorar una frase del texto Utiliza un tono profesional pero amigable, y estructura tus recomendaciones en HTML simple usando etiquetas

,

,