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

@@ -16,7 +16,8 @@ celery_app = Celery(
"worker.tasks.generate_content",
"worker.tasks.publish_post",
"worker.tasks.fetch_interactions",
"worker.tasks.cleanup"
"worker.tasks.cleanup",
"worker.tasks.content_memory"
]
)
@@ -58,4 +59,22 @@ celery_app.conf.beat_schedule = {
"task": "worker.tasks.cleanup.daily_cleanup",
"schedule": crontab(hour=3, minute=0),
},
# Actualizar engagement scores cada 6 horas
"update-engagement-scores": {
"task": "worker.tasks.content_memory.update_engagement_scores",
"schedule": crontab(hour="*/6", minute=15),
},
# Limpiar memoria antigua mensualmente
"cleanup-old-memory": {
"task": "worker.tasks.content_memory.cleanup_old_memory",
"schedule": crontab(day_of_month=1, hour=4, minute=0),
},
# Actualizar best_posts.yaml semanalmente
"refresh-best-posts": {
"task": "worker.tasks.content_memory.refresh_best_posts_yaml",
"schedule": crontab(day_of_week=0, hour=5, minute=0), # Domingos 5 AM
},
}