Spaces:
Runtime error
Runtime error
| import re | |
| class PromptGenerator: | |
| def detect_intent(prompt: str) -> dict: | |
| """Detecta la intenci贸n del usuario basado en el prompt""" | |
| prompt_lower = prompt.lower().strip() | |
| # Detecci贸n de c贸digo | |
| code_keywords = [ | |
| 'c贸digo', 'code', 'programa', 'function', 'def ', 'import ', | |
| 'python', 'javascript', 'java', 'c++', 'html', 'css', 'sql', | |
| 'algoritmo', 'loop', 'for ', 'while ', 'if ', 'else', | |
| 'variable', 'clase', 'class ', 'funci贸n', 'method' | |
| ] | |
| is_code = any(keyword in prompt_lower for keyword in code_keywords) | |
| # Detecci贸n de tipo de consulta | |
| if any(word in prompt_lower for word in ['explica', 'explicar', 'qu茅 es', 'qu茅 son', 'defin']): | |
| intent_type = 'explication' | |
| elif any(word in prompt_lower for word in ['ejemplo', 'ejemplifica', 'muestra']): | |
| intent_type = 'example' | |
| elif any(word in prompt_lower for word in ['corrige', 'error', 'bug', 'problema']): | |
| intent_type = 'correction' | |
| else: | |
| intent_type = 'general' | |
| return { | |
| 'is_code': is_code, | |
| 'type': intent_type, | |
| 'language': PromptGenerator._detect_language(prompt_lower) | |
| } | |
| def _detect_language(prompt: str) -> str: | |
| """Detecta el lenguaje de programaci贸n mencionado""" | |
| languages = { | |
| 'python': ['python', 'py'], | |
| 'javascript': ['javascript', 'js', 'node'], | |
| 'java': ['java'], | |
| 'html': ['html'], | |
| 'css': ['css'], | |
| 'sql': ['sql', 'mysql', 'postgresql'], | |
| 'c++': ['c++', 'cpp'], | |
| 'c#': ['c#', 'csharp'] | |
| } | |
| for lang, keywords in languages.items(): | |
| if any(keyword in prompt for keyword in keywords): | |
| return lang | |
| return 'unknown' | |
| def enhance_prompt(original_prompt: str, intent: dict) -> str: | |
| """Mejora el prompt basado en la intenci贸n detectada""" | |
| if intent['is_code']: | |
| if intent['type'] == 'explication': | |
| return f'Explica detalladamente este c贸digo: {original_prompt}' | |
| elif intent['type'] == 'example': | |
| lang = intent['language'] if intent['language'] != 'unknown' else 'Python' | |
| return f'Da un ejemplo en {lang}: {original_prompt}' | |
| elif intent['type'] == 'correction': | |
| return f'Corrige este c贸digo: {original_prompt}' | |
| else: | |
| return f'Responde sobre programaci贸n: {original_prompt}' | |
| else: | |
| if intent['type'] == 'explication': | |
| return f'Explica claramente: {original_prompt}' | |
| elif intent['type'] == 'example': | |
| return f'Proporciona ejemplos: {original_prompt}' | |
| else: | |
| return original_prompt |