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:
2026-01-28 20:55:28 +00:00
parent f458f809ca
commit 11b0ba46fa
36 changed files with 6266 additions and 55 deletions

View 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

View 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

View 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)