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:
84
app/prompts/templates/thread.yaml
Normal file
84
app/prompts/templates/thread.yaml
Normal file
@@ -0,0 +1,84 @@
|
||||
name: thread
|
||||
description: Hilos educativos de múltiples posts
|
||||
personality: educational
|
||||
|
||||
purpose: |
|
||||
Crear hilos educativos que expliquen un tema en profundidad,
|
||||
manteniendo engagement a lo largo de todos los posts.
|
||||
|
||||
requirements:
|
||||
- Cada post debe poder funcionar solo pero mejor en conjunto
|
||||
- Progresión lógica de información
|
||||
- Hooks internos para mantener lectura
|
||||
- Valor concreto en cada post
|
||||
|
||||
structure:
|
||||
post_1: hook_and_promise
|
||||
posts_middle: educational_content
|
||||
post_final: conclusion_and_cta
|
||||
|
||||
variables:
|
||||
- name: topic
|
||||
type: string
|
||||
required: true
|
||||
- name: num_posts
|
||||
type: integer
|
||||
required: false
|
||||
default: 5
|
||||
min: 3
|
||||
max: 10
|
||||
- name: depth
|
||||
type: string
|
||||
required: false
|
||||
default: "intermedio"
|
||||
options: ["básico", "intermedio", "avanzado"]
|
||||
|
||||
parameters:
|
||||
temperature: 0.7
|
||||
max_tokens: 1500
|
||||
|
||||
template: |
|
||||
Genera un hilo educativo de {num_posts} posts sobre: {topic}
|
||||
|
||||
NIVEL DE PROFUNDIDAD: {depth}
|
||||
|
||||
ESTRUCTURA DEL HILO:
|
||||
|
||||
POST 1 (HOOK):
|
||||
- Captura atención con dato sorprendente, pregunta provocadora, o promesa de valor
|
||||
- Indica que es un hilo: "🧵 Hilo:"
|
||||
- Anticipa lo que van a aprender
|
||||
|
||||
POSTS 2 a {num_posts-1} (CONTENIDO):
|
||||
- Cada post = 1 concepto/punto
|
||||
- Empieza cada post con conexión al anterior
|
||||
- Incluye ejemplo práctico cuando sea posible
|
||||
- Usa formato escaneable (bullets, numeración)
|
||||
|
||||
POST {num_posts} (CIERRE):
|
||||
- Resume los puntos clave
|
||||
- Da un paso accionable
|
||||
- CTA de engagement (guardar, compartir, seguir)
|
||||
- Hashtags relevantes
|
||||
|
||||
REGLAS POR POST:
|
||||
- Máximo 280 caracteres cada uno
|
||||
- Numera cada post (1/, 2/, etc.)
|
||||
- Emojis con propósito (1-2 por post)
|
||||
- El último post lleva los hashtags
|
||||
|
||||
TÉCNICAS DE ENGAGEMENT:
|
||||
- "Pero aquí viene lo interesante..." (transiciones)
|
||||
- Preguntas retóricas entre posts
|
||||
- "La mayoría no sabe esto..." (curiosidad)
|
||||
- Ejemplos concretos y relatable
|
||||
|
||||
FORMATO DE RESPUESTA:
|
||||
Responde con cada post separado por una línea vacía.
|
||||
No incluyas explicaciones, solo los posts.
|
||||
|
||||
example_structure:
|
||||
post_1: "🧵 Hilo: 5 errores de productividad que cometes sin darte cuenta (y cómo evitarlos)"
|
||||
post_2: "1/ El primero: revisar email como primera tarea del día..."
|
||||
post_3: "2/ El segundo error es más sutil..."
|
||||
post_n: "5/ Para resumir: [puntos clave]. ¿Cuál vas a cambiar primero? #Productividad"
|
||||
Reference in New Issue
Block a user