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 |