feat: Add Content Generation Engine v2 with quality scoring
Major improvements to AI content generation: ## New Components (app/services/ai/) - PromptLibrary: YAML-based prompt templates with inheritance - ContextEngine: Anti-repetition and best performers tracking - ContentGeneratorV2: Enhanced generation with dynamic parameters - PlatformAdapter: Platform-specific content adaptation - ContentValidator: AI-powered quality scoring (0-100) ## Prompt Library (app/prompts/) - 3 personalities: default, educational, promotional - 5 templates: tip_tech, product_post, service_post, thread, response - 4 platform configs: x, threads, instagram, facebook - Few-shot examples by category: ia, productividad, seguridad ## Database Changes - New table: content_memory (tracks generated content) - New columns in posts: quality_score, score_breakdown, generation_attempts ## New API Endpoints (/api/v2/generate/) - POST /generate - Generation with quality check - POST /generate/batch - Batch generation - POST /quality/evaluate - Evaluate content quality - GET /templates, /personalities, /platforms - List configs ## Celery Tasks - update_engagement_scores (every 6h) - cleanup_old_memory (monthly) - refresh_best_posts_yaml (weekly) ## Tests - Comprehensive tests for all AI engine components Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
94
app/prompts/examples/by_category/ia.yaml
Normal file
94
app/prompts/examples/by_category/ia.yaml
Normal file
@@ -0,0 +1,94 @@
|
||||
# Ejemplos de posts sobre Inteligencia Artificial
|
||||
|
||||
category: ia
|
||||
display_name: "Inteligencia Artificial"
|
||||
description: "Posts sobre IA, machine learning, ChatGPT, automatización inteligente"
|
||||
|
||||
keywords:
|
||||
- inteligencia artificial
|
||||
- ia
|
||||
- machine learning
|
||||
- chatgpt
|
||||
- claude
|
||||
- deepseek
|
||||
- prompts
|
||||
- llm
|
||||
- modelos de lenguaje
|
||||
|
||||
examples:
|
||||
|
||||
tips:
|
||||
- content: |
|
||||
ChatGPT responde mejor cuando le das un rol.
|
||||
|
||||
En lugar de: "Escribe un email"
|
||||
|
||||
Prueba: "Eres un copywriter senior. Escribe un email que..."
|
||||
|
||||
La diferencia en calidad es notable.
|
||||
|
||||
#IA #ChatGPT
|
||||
quality_score: 88
|
||||
why_it_works: "Tip específico y accionable con ejemplo claro"
|
||||
|
||||
- content: |
|
||||
El prompt perfecto tiene 4 partes:
|
||||
|
||||
1. Contexto (quién eres)
|
||||
2. Tarea (qué quieres)
|
||||
3. Formato (cómo lo quieres)
|
||||
4. Restricciones (qué evitar)
|
||||
|
||||
Ejemplo en 🧵
|
||||
|
||||
#PromptEngineering
|
||||
quality_score: 85
|
||||
why_it_works: "Framework memorable y fácil de aplicar"
|
||||
|
||||
educational:
|
||||
- content: |
|
||||
¿Cuándo usar ChatGPT vs Claude vs Gemini?
|
||||
|
||||
ChatGPT: Conversaciones, código, uso general
|
||||
Claude: Textos largos, análisis, razonamiento
|
||||
Gemini: Búsqueda, datos actuales, Google integrado
|
||||
|
||||
No hay "mejor", hay "mejor para X".
|
||||
|
||||
#IA
|
||||
quality_score: 82
|
||||
why_it_works: "Comparación útil sin sesgo, ayuda a decidir"
|
||||
|
||||
misconceptions:
|
||||
- content: |
|
||||
"La IA va a reemplazar mi trabajo"
|
||||
|
||||
Realidad: La IA amplifica, no reemplaza.
|
||||
|
||||
Los que dominan IA + su expertise harán en 1 hora lo que otros en 8.
|
||||
|
||||
El skill a desarrollar no es "usar IA", es "pensar con IA".
|
||||
|
||||
#IA #Futuro
|
||||
quality_score: 90
|
||||
why_it_works: "Aborda miedo común con perspectiva práctica"
|
||||
|
||||
hooks_that_work:
|
||||
- "La mayoría usa [herramienta IA] mal..."
|
||||
- "El prompt que cambió mi flujo de trabajo:"
|
||||
- "ChatGPT no puede hacer esto (pero Claude sí):"
|
||||
- "Dejé de usar [herramienta] después de descubrir..."
|
||||
|
||||
topics_to_cover:
|
||||
- Comparativas de herramientas
|
||||
- Prompts específicos para casos de uso
|
||||
- Limitaciones y cómo superarlas
|
||||
- Integración de IA en flujos existentes
|
||||
- Ética y uso responsable
|
||||
- Novedades relevantes (sin ser news ticker)
|
||||
|
||||
avoid:
|
||||
- Hype sin sustancia ("La IA lo cambia TODO")
|
||||
- Predicciones apocalípticas
|
||||
- Comparativas sin valor ("X es mejor que Y" sin contexto)
|
||||
- Contenido que se desactualiza rápido
|
||||
113
app/prompts/examples/by_category/productividad.yaml
Normal file
113
app/prompts/examples/by_category/productividad.yaml
Normal file
@@ -0,0 +1,113 @@
|
||||
# Ejemplos de posts sobre Productividad
|
||||
|
||||
category: productividad
|
||||
display_name: "Productividad"
|
||||
description: "Posts sobre gestión del tiempo, herramientas, workflows, hábitos"
|
||||
|
||||
keywords:
|
||||
- productividad
|
||||
- gestión del tiempo
|
||||
- herramientas
|
||||
- workflow
|
||||
- hábitos
|
||||
- eficiencia
|
||||
- organización
|
||||
- automatización
|
||||
|
||||
examples:
|
||||
|
||||
tips:
|
||||
- content: |
|
||||
La regla de los 2 minutos:
|
||||
|
||||
Si algo toma menos de 2 minutos, hazlo ahora.
|
||||
|
||||
Suena simple pero elimina el 50% de tu lista de pendientes.
|
||||
|
||||
El truco: ser honesto con lo que realmente toma 2 min.
|
||||
|
||||
#Productividad
|
||||
quality_score: 87
|
||||
why_it_works: "Regla simple con beneficio claro y matiz útil"
|
||||
|
||||
- content: |
|
||||
Mi stack de productividad:
|
||||
|
||||
→ Notion: Todo mi cerebro externo
|
||||
→ Todoist: Tareas diarias
|
||||
→ Cal.com: Agenda sin emails
|
||||
→ Raycast: Launcher + snippets
|
||||
|
||||
Cero apps más. Simplicidad > features.
|
||||
|
||||
#Productividad #Tools
|
||||
quality_score: 84
|
||||
why_it_works: "Recomendaciones específicas con filosofía clara"
|
||||
|
||||
- content: |
|
||||
Tip que me tomó años aprender:
|
||||
|
||||
No planees tu día por tareas.
|
||||
Planéalo por bloques de energía.
|
||||
|
||||
Alta energía → Trabajo creativo/difícil
|
||||
Media energía → Reuniones/colaboración
|
||||
Baja energía → Admin/emails
|
||||
|
||||
Game changer.
|
||||
|
||||
#Productividad
|
||||
quality_score: 91
|
||||
why_it_works: "Insight contraintuitivo con framework aplicable"
|
||||
|
||||
frameworks:
|
||||
- content: |
|
||||
Cómo digo "no" sin decir no:
|
||||
|
||||
"Me encantaría, pero mi calendario no me lo permite ahora"
|
||||
|
||||
"No soy la persona indicada, pero [nombre] podría ayudarte"
|
||||
|
||||
"Podría en [fecha futura], ¿funciona?"
|
||||
|
||||
Proteger tu tiempo no te hace mala persona.
|
||||
|
||||
#Productividad
|
||||
quality_score: 86
|
||||
why_it_works: "Scripts copiables para situación incómoda común"
|
||||
|
||||
myths:
|
||||
- content: |
|
||||
"Trabaja más duro" es mal consejo.
|
||||
|
||||
Trabajar duro en lo incorrecto = desperdicio.
|
||||
|
||||
Mejor: trabaja en lo correcto.
|
||||
|
||||
1 hora en la tarea que mueve la aguja > 8 horas en ocupación disfrazada.
|
||||
|
||||
#Productividad
|
||||
quality_score: 89
|
||||
why_it_works: "Desafía sabiduría convencional con lógica clara"
|
||||
|
||||
hooks_that_work:
|
||||
- "El tip que me tomó años aprender:"
|
||||
- "Dejé de hacer [cosa común] y..."
|
||||
- "La diferencia entre ocupado y productivo:"
|
||||
- "Lo que nadie te dice sobre productividad:"
|
||||
- "Mi rutina de [mañana/semana] en 5 pasos:"
|
||||
|
||||
topics_to_cover:
|
||||
- Herramientas específicas con opinión
|
||||
- Frameworks de gestión del tiempo
|
||||
- Hábitos y rutinas que funcionan
|
||||
- Errores comunes de productividad
|
||||
- Balance trabajo-vida
|
||||
- Automatización de tareas repetitivas
|
||||
|
||||
avoid:
|
||||
- "Levántate a las 5am" sin contexto
|
||||
- Hustle culture tóxica
|
||||
- Productividad como fin en sí misma
|
||||
- Consejos que solo funcionan para privilegiados
|
||||
- Listas genéricas sin experiencia personal
|
||||
117
app/prompts/examples/by_category/seguridad.yaml
Normal file
117
app/prompts/examples/by_category/seguridad.yaml
Normal file
@@ -0,0 +1,117 @@
|
||||
# Ejemplos de posts sobre Seguridad Digital
|
||||
|
||||
category: seguridad
|
||||
display_name: "Seguridad Digital"
|
||||
description: "Posts sobre ciberseguridad, privacidad, passwords, protección de datos"
|
||||
|
||||
keywords:
|
||||
- seguridad
|
||||
- ciberseguridad
|
||||
- passwords
|
||||
- privacidad
|
||||
- phishing
|
||||
- malware
|
||||
- protección
|
||||
- 2fa
|
||||
- autenticación
|
||||
|
||||
examples:
|
||||
|
||||
tips:
|
||||
- content: |
|
||||
Tu contraseña más débil no es "123456".
|
||||
|
||||
Es la respuesta a "¿Cuál es el nombre de tu mascota?"
|
||||
|
||||
Esa info está en tu Instagram.
|
||||
|
||||
Tip: usa respuestas falsas que solo tú conozcas.
|
||||
|
||||
#Seguridad #CyberSecurity
|
||||
quality_score: 92
|
||||
why_it_works: "Insight no obvio con solución simple"
|
||||
|
||||
- content: |
|
||||
3 señales de email phishing que el 90% ignora:
|
||||
|
||||
1. Urgencia artificial ("actúa en 24h")
|
||||
2. Errores sutiles en el dominio (@paypa1.com)
|
||||
3. "Haz clic aquí" sin preview del link
|
||||
|
||||
Cuando dudes: ve directo al sitio oficial.
|
||||
|
||||
#Seguridad
|
||||
quality_score: 88
|
||||
why_it_works: "Checklist específico y accionable"
|
||||
|
||||
- content: |
|
||||
La mejor inversión en seguridad: un password manager.
|
||||
|
||||
→ Bitwarden (gratis, código abierto)
|
||||
→ 1Password (mejor UX, $36/año)
|
||||
|
||||
Una contraseña maestra fuerte > 100 contraseñas mediocres.
|
||||
|
||||
Si solo haces una cosa de seguridad, que sea esta.
|
||||
|
||||
#Seguridad #Passwords
|
||||
quality_score: 85
|
||||
why_it_works: "Recomendación específica con opciones claras"
|
||||
|
||||
awareness:
|
||||
- content: |
|
||||
WiFi gratis del café = WiFi que puede ver todo tu tráfico.
|
||||
|
||||
Opciones:
|
||||
|
||||
1. Usa VPN siempre
|
||||
2. Solo visita sitios HTTPS
|
||||
3. Nunca hagas operaciones bancarias
|
||||
|
||||
O mejor: usa tu hotspot móvil.
|
||||
|
||||
#Seguridad #WiFi
|
||||
quality_score: 84
|
||||
why_it_works: "Situación común con soluciones prácticas"
|
||||
|
||||
- content: |
|
||||
"No tengo nada que esconder" es mal argumento.
|
||||
|
||||
Tienes:
|
||||
→ Credenciales bancarias
|
||||
→ Fotos personales
|
||||
→ Conversaciones privadas
|
||||
→ Tu identidad digital
|
||||
|
||||
La privacidad no es para criminales. Es para todos.
|
||||
|
||||
#Privacidad #Seguridad
|
||||
quality_score: 90
|
||||
why_it_works: "Contraargumento a objeción común"
|
||||
|
||||
hooks_that_work:
|
||||
- "El error de seguridad que todos cometen:"
|
||||
- "Esto es lo que un hacker ve cuando..."
|
||||
- "La función de seguridad que deberías activar HOY:"
|
||||
- "Por qué [práctica común] es peligroso:"
|
||||
- "3 minutos que pueden salvarte horas de problemas:"
|
||||
|
||||
topics_to_cover:
|
||||
- Password managers y 2FA
|
||||
- Reconocer phishing y scams
|
||||
- Privacidad en redes sociales
|
||||
- Seguridad en WiFi público
|
||||
- Backups y recuperación
|
||||
- Actualizaciones de software
|
||||
|
||||
tone_guidelines:
|
||||
- Informar sin causar paranoia
|
||||
- Soluciones prácticas, no solo problemas
|
||||
- Evitar jerga técnica innecesaria
|
||||
- Urgencia apropiada sin alarmismo
|
||||
|
||||
avoid:
|
||||
- Asustar sin dar soluciones
|
||||
- Jerga que solo entienden expertos
|
||||
- Promesas de "seguridad 100%"
|
||||
- Contenido que se desactualiza (vulnerabilidades específicas)
|
||||
Reference in New Issue
Block a user