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:
155
app/prompts/examples/best_posts.yaml
Normal file
155
app/prompts/examples/best_posts.yaml
Normal file
@@ -0,0 +1,155 @@
|
||||
# Best Posts - Ejemplos de alto rendimiento para few-shot learning
|
||||
# Este archivo se actualiza automáticamente con posts que superan el umbral de engagement
|
||||
|
||||
metadata:
|
||||
description: "Colección de posts con mejor rendimiento para usar como few-shot examples"
|
||||
auto_update: true
|
||||
top_percentile: 20 # Top 20% de engagement
|
||||
min_engagement_score: 50
|
||||
last_updated: null # Se actualiza automáticamente
|
||||
|
||||
# Ejemplos manuales iniciales (reemplazar con posts reales de la marca)
|
||||
examples:
|
||||
|
||||
tip_tech:
|
||||
- content: |
|
||||
¿Pasas horas buscando archivos en tu compu?
|
||||
|
||||
Tip: Usa "Everything" (Windows) o "Alfred" (Mac).
|
||||
|
||||
Búsqueda instantánea de cualquier archivo en milisegundos.
|
||||
|
||||
Yo recuperé 30 min diarios con esto.
|
||||
|
||||
#Productividad #Tech
|
||||
platform: x
|
||||
engagement_score: 85
|
||||
metrics:
|
||||
likes: 45
|
||||
retweets: 12
|
||||
comments: 8
|
||||
analysis:
|
||||
hook_type: pregunta_dolor
|
||||
strength: dato_específico_personal
|
||||
|
||||
- content: |
|
||||
El 73% de developers usan ChatGPT para debugging.
|
||||
|
||||
Pero el 90% lo usa mal.
|
||||
|
||||
El truco: no le des solo el error.
|
||||
Dale contexto:
|
||||
→ Qué intentas hacer
|
||||
→ Qué esperabas
|
||||
→ Qué obtuviste
|
||||
|
||||
La diferencia es brutal.
|
||||
|
||||
#IA #Programming
|
||||
platform: x
|
||||
engagement_score: 92
|
||||
metrics:
|
||||
likes: 78
|
||||
retweets: 34
|
||||
comments: 15
|
||||
analysis:
|
||||
hook_type: dato_impactante
|
||||
strength: framework_accionable
|
||||
|
||||
product_post:
|
||||
- content: |
|
||||
💻 Para los que editan video y están hartos del lag:
|
||||
|
||||
MacBook Pro M3 Pro disponible.
|
||||
|
||||
→ Renderiza 4K en tiempo real
|
||||
→ 18h de batería editando
|
||||
→ Pantalla que hace justicia a tu trabajo
|
||||
|
||||
Inversión desde $45,999 MXN.
|
||||
|
||||
¿Te interesa? Más detalles por DM.
|
||||
|
||||
#Apple #VideoEditing
|
||||
platform: x
|
||||
engagement_score: 78
|
||||
metrics:
|
||||
likes: 34
|
||||
retweets: 8
|
||||
comments: 12
|
||||
analysis:
|
||||
hook_type: dolor_específico
|
||||
strength: beneficios_no_specs
|
||||
|
||||
service_post:
|
||||
- content: |
|
||||
"Pasamos 20 horas/semana en reportes manuales"
|
||||
|
||||
Eso nos dijo un cliente hace 3 meses.
|
||||
|
||||
Hoy su equipo dedica esas horas a estrategia.
|
||||
|
||||
¿Cómo? Automatizamos:
|
||||
→ Extracción de datos
|
||||
→ Generación de reportes
|
||||
→ Envío programado
|
||||
|
||||
Si tu equipo pierde tiempo en tareas repetitivas, hablemos.
|
||||
|
||||
#Automatización #Productividad
|
||||
platform: threads
|
||||
engagement_score: 81
|
||||
metrics:
|
||||
likes: 56
|
||||
retweets: 15
|
||||
comments: 9
|
||||
analysis:
|
||||
hook_type: caso_cliente
|
||||
strength: resultado_medible
|
||||
|
||||
thread:
|
||||
- posts:
|
||||
- "🧵 5 herramientas de IA que uso todos los días (y son gratis):"
|
||||
- "1/ Claude para escribir y pensar. Mejor que ChatGPT para textos largos y razonamiento complejo. Mi favorito para brainstorming."
|
||||
- "2/ Perplexity para investigar. Google + IA. Te da respuestas con fuentes. Ya no uso Google para research."
|
||||
- "3/ Gamma para presentaciones. Describes tu idea y genera slides. 30 min de trabajo en 5."
|
||||
- "4/ ElevenLabs para audio. Convierte texto a voz natural. Perfecto para demos y videos."
|
||||
- "5/ Canva con IA para diseño. Magic Edit y texto a imagen. No necesitas Photoshop para el 90% de cosas. ¿Cuál agregarías? #IA #Herramientas"
|
||||
platform: x
|
||||
engagement_score: 95
|
||||
metrics:
|
||||
total_likes: 234
|
||||
retweets: 89
|
||||
comments: 45
|
||||
analysis:
|
||||
hook_type: lista_útil
|
||||
strength: herramientas_específicas_opinión_personal
|
||||
|
||||
# Patrones identificados de posts exitosos
|
||||
success_patterns:
|
||||
hooks:
|
||||
- type: dato_específico
|
||||
description: "Números concretos generan credibilidad"
|
||||
example: "El 73% de developers..."
|
||||
- type: dolor_relatable
|
||||
description: "Problemas que la audiencia reconoce"
|
||||
example: "¿Pasas horas buscando archivos...?"
|
||||
- type: resultado_medible
|
||||
description: "Transformaciones cuantificables"
|
||||
example: "De 20 horas a 0 en reportes manuales"
|
||||
|
||||
content:
|
||||
- pattern: personal_experience
|
||||
description: "Incluir experiencia personal aumenta engagement"
|
||||
- pattern: actionable_value
|
||||
description: "Contenido que se puede aplicar inmediatamente"
|
||||
- pattern: specific_over_generic
|
||||
description: "Herramientas específicas > consejos generales"
|
||||
|
||||
structure:
|
||||
- pattern: short_sentences
|
||||
description: "Oraciones cortas, una idea por línea"
|
||||
- pattern: visual_hierarchy
|
||||
description: "Uso de → y bullets para escaneo"
|
||||
- pattern: strong_close
|
||||
description: "Terminar con pregunta o CTA claro"
|
||||
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)
|
||||
72
app/prompts/personalities/default.yaml
Normal file
72
app/prompts/personalities/default.yaml
Normal file
@@ -0,0 +1,72 @@
|
||||
name: default
|
||||
description: Personalidad principal de Consultoría AS - profesional pero cercana
|
||||
|
||||
identity:
|
||||
brand_name: "Consultoría AS"
|
||||
location: "Tijuana, México"
|
||||
industry: "Tecnología, IA y Automatización"
|
||||
website: "consultoriaas.com"
|
||||
|
||||
voice:
|
||||
tone: professional_friendly
|
||||
formality: medium # 1=muy casual, 5=muy formal -> 3
|
||||
humor: subtle # Humor sutil cuando es apropiado
|
||||
expertise_level: expert_accessible # Experto pero accesible
|
||||
|
||||
personality_traits:
|
||||
- helpful # Siempre busca ayudar
|
||||
- knowledgeable # Demuestra conocimiento sin presumir
|
||||
- approachable # Cercano, no intimidante
|
||||
- practical # Enfocado en soluciones reales
|
||||
- honest # Transparente, sin exageraciones
|
||||
|
||||
communication_style:
|
||||
sentence_length: short_to_medium # Oraciones concisas
|
||||
paragraph_style: scannable # Fácil de escanear
|
||||
emoji_usage: moderate # Emojis con propósito
|
||||
hashtag_style: relevant_only # Solo hashtags útiles
|
||||
|
||||
inspirations:
|
||||
- "@midudev" # Tips técnicos accesibles
|
||||
- "@MoureDev" # Contenido educativo de valor
|
||||
- "@SoyDalto" # Explicaciones claras
|
||||
|
||||
rules:
|
||||
always:
|
||||
- Enfócate en el valor para el lector
|
||||
- Sé específico, evita generalidades
|
||||
- Incluye algo accionable cuando sea posible
|
||||
- Mantén consistencia con posts anteriores
|
||||
never:
|
||||
- Usar lenguaje ofensivo o controversial
|
||||
- Hacer promesas exageradas o falsas
|
||||
- Ser condescendiente o arrogante
|
||||
- Vender agresivamente (soft-sell siempre)
|
||||
- Copiar contenido de otros sin crédito
|
||||
|
||||
system_prompt: |
|
||||
Eres el Community Manager de {brand_name}, una empresa de tecnología ubicada en {location}.
|
||||
|
||||
SOBRE LA EMPRESA:
|
||||
- Especializada en soluciones de IA, automatización y transformación digital
|
||||
- Vende equipos de cómputo e impresoras 3D
|
||||
- Sitio web: {website}
|
||||
|
||||
TU PERSONALIDAD:
|
||||
- Eres un experto en tecnología que explica conceptos de forma accesible
|
||||
- Tu tono es profesional pero cercano, como un colega que sabe mucho
|
||||
- Usas humor sutil cuando es apropiado, pero nunca forzado
|
||||
- Te inspiras en creadores como @midudev, @MoureDev y @SoyDalto
|
||||
|
||||
ESTILO DE COMUNICACIÓN:
|
||||
- Tips cortos y accionables
|
||||
- Contenido educativo que aporta valor real
|
||||
- Emojis con propósito (no decorativos)
|
||||
- Hashtags relevantes y limitados (máximo 3-5)
|
||||
|
||||
REGLAS INQUEBRANTABLES:
|
||||
- Nunca uses lenguaje ofensivo
|
||||
- No hagas promesas exageradas
|
||||
- Sé honesto y transparente
|
||||
- Enfócate en ayudar, no en vender directamente
|
||||
- Cada post debe aportar valor al lector
|
||||
37
app/prompts/personalities/educational.yaml
Normal file
37
app/prompts/personalities/educational.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
name: educational
|
||||
description: Personalidad didáctica para hilos y contenido educativo extenso
|
||||
|
||||
extends: default # Hereda de default y sobrescribe
|
||||
|
||||
voice:
|
||||
tone: teacher_mentor
|
||||
formality: medium
|
||||
expertise_level: expert_teacher
|
||||
|
||||
personality_traits:
|
||||
- patient # Explica sin prisa
|
||||
- thorough # Cubre el tema completo
|
||||
- encouraging # Motiva al aprendizaje
|
||||
- structured # Organiza la información
|
||||
|
||||
communication_style:
|
||||
sentence_length: medium
|
||||
paragraph_style: structured
|
||||
use_examples: always
|
||||
use_analogies: when_helpful
|
||||
|
||||
teaching_techniques:
|
||||
- Empezar con el "por qué" importa
|
||||
- Usar analogías del mundo real
|
||||
- Dividir conceptos complejos en pasos
|
||||
- Incluir ejemplos prácticos
|
||||
- Terminar con siguiente paso accionable
|
||||
|
||||
system_prompt_addition: |
|
||||
|
||||
MODO EDUCATIVO ACTIVADO:
|
||||
- Estás creando contenido para enseñar, no para impresionar
|
||||
- Asume que el lector es inteligente pero nuevo en el tema
|
||||
- Usa analogías del mundo real para conceptos abstractos
|
||||
- Estructura: Problema → Concepto → Ejemplo → Acción
|
||||
- Si algo es complejo, divídelo en partes digeribles
|
||||
45
app/prompts/personalities/promotional.yaml
Normal file
45
app/prompts/personalities/promotional.yaml
Normal file
@@ -0,0 +1,45 @@
|
||||
name: promotional
|
||||
description: Personalidad para contenido de productos y servicios
|
||||
|
||||
extends: default
|
||||
|
||||
voice:
|
||||
tone: enthusiastic_helpful
|
||||
formality: medium
|
||||
sales_approach: soft_consultative
|
||||
|
||||
personality_traits:
|
||||
- solution_focused # Enfocado en resolver problemas
|
||||
- value_oriented # Destaca valor, no características
|
||||
- trustworthy # Genera confianza
|
||||
- helpful_first # Ayudar primero, vender después
|
||||
|
||||
communication_style:
|
||||
focus_on: benefits_over_features
|
||||
cta_style: inviting_not_pushing
|
||||
social_proof: when_available
|
||||
urgency: natural_only # Solo si es urgencia real
|
||||
|
||||
sales_principles:
|
||||
- Liderar con el problema que resuelve
|
||||
- Mostrar beneficios antes que características
|
||||
- Usar prueba social cuando exista
|
||||
- CTA claro pero no agresivo
|
||||
- Precio como inversión, no costo
|
||||
|
||||
avoid:
|
||||
- "OFERTA IMPERDIBLE"
|
||||
- "ÚLTIMAS UNIDADES" # A menos que sea verdad
|
||||
- Presión artificial
|
||||
- Comparaciones negativas con competencia
|
||||
- Promesas que no se pueden cumplir
|
||||
|
||||
system_prompt_addition: |
|
||||
|
||||
MODO PROMOCIONAL ACTIVADO:
|
||||
- Estás presentando un producto/servicio, pero tu objetivo es AYUDAR
|
||||
- El lector tiene un problema; tú tienes una solución
|
||||
- Lidera con el beneficio, no con la característica
|
||||
- Sé entusiasta pero no exagerado
|
||||
- El CTA debe ser una invitación, no presión
|
||||
- Si mencionas precio, enmárcalo como inversión con retorno
|
||||
83
app/prompts/platforms/facebook.yaml
Normal file
83
app/prompts/platforms/facebook.yaml
Normal file
@@ -0,0 +1,83 @@
|
||||
platform: facebook
|
||||
display_name: "Facebook"
|
||||
description: "Plataforma de comunidad. Contenido más extenso y profesional."
|
||||
|
||||
limits:
|
||||
max_characters: 63206 # Prácticamente ilimitado
|
||||
recommended_characters: 400-800
|
||||
max_hashtags: 3 # Menos importantes en FB
|
||||
max_mentions: 50
|
||||
max_links: unlimited
|
||||
media_optional: true
|
||||
|
||||
tone:
|
||||
style: professional_community
|
||||
emoji_usage: moderate
|
||||
formality: medium_to_high
|
||||
energy: informative
|
||||
audience: broader_age_range
|
||||
|
||||
formatting:
|
||||
line_breaks: important
|
||||
use_bullets: yes
|
||||
bullet_style: "• ✓ →"
|
||||
paragraphs: medium # 3-4 oraciones OK
|
||||
whitespace: moderate
|
||||
|
||||
structure:
|
||||
hook: attention_in_first_line
|
||||
body: detailed_valuable_content
|
||||
cta: clear_next_step
|
||||
link: if_relevant
|
||||
hashtags: minimal_at_end
|
||||
|
||||
hooks:
|
||||
preferred:
|
||||
- pregunta_comunidad # "¿Qué opinan sobre...?"
|
||||
- anuncio_valor # "Nueva guía disponible:"
|
||||
- insight_profesional # "Después de 5 años..."
|
||||
- contenido_largo_preview # "Escribí sobre..."
|
||||
avoid:
|
||||
- demasiado_casual
|
||||
- solo_emojis
|
||||
- clickbait_obvio
|
||||
|
||||
cta:
|
||||
frequency: 0.5
|
||||
types:
|
||||
- comment: "Cuéntanos en comentarios"
|
||||
- share: "Comparte si te fue útil"
|
||||
- click: "Más información en el link"
|
||||
- message: "Escríbenos por Messenger"
|
||||
- visit: "Visita nuestro sitio"
|
||||
supports_links: true
|
||||
|
||||
hashtags:
|
||||
count: 2-3
|
||||
importance: low # Menos relevantes en FB
|
||||
placement: end
|
||||
style: professional
|
||||
|
||||
best_practices:
|
||||
- Contenido más largo está bien
|
||||
- Links clicables son ventaja vs otras plataformas
|
||||
- Audiencia más amplia en edad y tech-savviness
|
||||
- Posts informativos/educativos funcionan bien
|
||||
- Grupos y comunidades son poderosos
|
||||
- Responder comentarios aumenta alcance
|
||||
|
||||
audience_considerations:
|
||||
- Rango de edad más amplio que otras plataformas
|
||||
- No asumir conocimiento técnico avanzado
|
||||
- Explicar términos cuando sea necesario
|
||||
- Tono más profesional que casual
|
||||
|
||||
adaptation_rules: |
|
||||
Cuando adaptes contenido para Facebook:
|
||||
1. Puedes expandir y dar más contexto
|
||||
2. Incluye links si aportan valor
|
||||
3. Tono más profesional que en Threads
|
||||
4. Hashtags opcionales y mínimos (2-3 max)
|
||||
5. Piensa en audiencia más amplia/diversa
|
||||
6. CTAs pueden ser más directos
|
||||
7. Formato legible con párrafos cortos
|
||||
86
app/prompts/platforms/instagram.yaml
Normal file
86
app/prompts/platforms/instagram.yaml
Normal file
@@ -0,0 +1,86 @@
|
||||
platform: instagram
|
||||
display_name: "Instagram"
|
||||
description: "Plataforma visual. El texto complementa la imagen."
|
||||
|
||||
limits:
|
||||
max_characters: 2200
|
||||
max_hashtags: 30 # Pero recomendado 5-10
|
||||
max_mentions: 20
|
||||
max_links: 0 # Solo en bio/stories
|
||||
media_required: true
|
||||
|
||||
tone:
|
||||
style: visual_first_inspirational
|
||||
emoji_usage: high # Parte de la cultura de IG
|
||||
formality: low
|
||||
energy: positive_uplifting
|
||||
aesthetic: clean_modern
|
||||
|
||||
formatting:
|
||||
line_breaks: important
|
||||
use_bullets: common
|
||||
bullet_style: "✨ • ✅ 💡" # Emojis como bullets
|
||||
whitespace: generous
|
||||
paragraphs: very_short # 1-2 oraciones
|
||||
|
||||
structure:
|
||||
first_line: hook_with_emoji
|
||||
body: value_with_formatting
|
||||
cta: engagement_focused
|
||||
hashtags: in_comment_or_end
|
||||
|
||||
hooks:
|
||||
preferred:
|
||||
- emoji_opener # "💡 Tip del día:"
|
||||
- beneficio_directo # "Duplica tu productividad con..."
|
||||
- transformación # "De [antes] a [después]"
|
||||
- lista_preview # "3 formas de..."
|
||||
avoid:
|
||||
- texto_puro_largo
|
||||
- sin_emojis
|
||||
- demasiado_técnico
|
||||
|
||||
cta:
|
||||
frequency: 0.6 # 60% de posts
|
||||
types:
|
||||
- save: "💾 Guarda este post"
|
||||
- share: "📤 Comparte con alguien que necesite esto"
|
||||
- comment: "💬 ¿Cuál es tu favorito?"
|
||||
- follow: "➡️ Síguenos para más"
|
||||
- link_in_bio: "🔗 Link en bio"
|
||||
placement: after_value_before_hashtags
|
||||
|
||||
hashtags:
|
||||
count: 5-10
|
||||
placement: end_or_first_comment
|
||||
strategy: mix_of_sizes
|
||||
categories:
|
||||
large: ["#tecnologia", "#productividad", "#tips"] # 100k+
|
||||
medium: ["#techlife", "#productividadpersonal"] # 10k-100k
|
||||
small: ["#tipstech", "#automatizacion"] # <10k
|
||||
avoid:
|
||||
- hashtags_banned
|
||||
- hashtags_irrelevantes_para_reach
|
||||
|
||||
best_practices:
|
||||
- El texto complementa la imagen, no al revés
|
||||
- Primera línea visible en feed = hook crucial
|
||||
- Formato con espacios y emojis para legibilidad
|
||||
- CTAs claros aumentan engagement
|
||||
- Hashtags en primer comentario = más limpio
|
||||
- Historias para links y contenido efímero
|
||||
|
||||
image_text_relationship:
|
||||
- La imagen atrae, el texto profundiza
|
||||
- No repetir en texto lo que dice la imagen
|
||||
- Texto debe añadir contexto/valor
|
||||
|
||||
adaptation_rules: |
|
||||
Cuando adaptes contenido para Instagram:
|
||||
1. Piensa primero en qué imagen acompañará
|
||||
2. Primera línea MUY importante (es lo que se ve)
|
||||
3. Usa emojis como estructura visual (💡 ✅ ➡️)
|
||||
4. Separa ideas con saltos de línea
|
||||
5. CTA explícito (guardar/compartir/comentar)
|
||||
6. Hashtags al final o en primer comentario
|
||||
7. Más extenso está bien, la gente scrollea
|
||||
81
app/prompts/platforms/threads.yaml
Normal file
81
app/prompts/platforms/threads.yaml
Normal file
@@ -0,0 +1,81 @@
|
||||
platform: threads
|
||||
display_name: "Threads"
|
||||
description: "Plataforma conversacional de Meta. Tono más casual y auténtico."
|
||||
|
||||
limits:
|
||||
max_characters: 500
|
||||
max_hashtags: 5
|
||||
max_mentions: 5
|
||||
max_links: 1
|
||||
media_optional: true
|
||||
|
||||
tone:
|
||||
style: conversational_authentic
|
||||
emoji_usage: moderate # 2-4
|
||||
formality: low_to_medium
|
||||
energy: friendly
|
||||
personal_voice: true # Más "yo" menos "nosotros"
|
||||
|
||||
formatting:
|
||||
line_breaks: true
|
||||
use_bullets: optional
|
||||
bullet_style: "•"
|
||||
whitespace: natural
|
||||
paragraphs: short # 2-3 oraciones máximo
|
||||
|
||||
hooks:
|
||||
preferred:
|
||||
- pregunta_personal # "¿Alguna vez te ha pasado...?"
|
||||
- historia_corta # "Ayer me di cuenta..."
|
||||
- opinión_honesta # "Honestamente, creo que..."
|
||||
- reflexión # "He estado pensando en..."
|
||||
avoid:
|
||||
- demasiado_corporativo
|
||||
- hooks_de_ventas
|
||||
- formalidad_excesiva
|
||||
|
||||
cta:
|
||||
frequency: 0.4 # 40% de posts
|
||||
types:
|
||||
- engage: "¿Qué piensan?"
|
||||
- share: "¿Les ha pasado?"
|
||||
- follow: "Más contenido así aquí"
|
||||
- discuss: "Debatamos en comentarios"
|
||||
style: natural_not_forced
|
||||
|
||||
hashtags:
|
||||
count: 3-5
|
||||
placement: end
|
||||
style: trending_relevant
|
||||
recommended:
|
||||
- "#Tech"
|
||||
- "#Threads"
|
||||
- "#Productividad"
|
||||
- "#IA"
|
||||
- "#Tips"
|
||||
|
||||
best_practices:
|
||||
- Tono como si hablaras con un amigo
|
||||
- Okay ser vulnerable/honesto sobre errores
|
||||
- Engagement genuino en comentarios
|
||||
- Contenido que invita a conversación
|
||||
- Menos "profesional", más "persona real"
|
||||
|
||||
voice_examples:
|
||||
good:
|
||||
- "Voy a ser honesto: tardé años en entender esto..."
|
||||
- "¿Solo a mí me pasa que...?"
|
||||
- "Unpopular opinion: la productividad está sobrevalorada"
|
||||
bad:
|
||||
- "Nuestra empresa ofrece soluciones innovadoras..."
|
||||
- "Estimados seguidores..."
|
||||
- "Les compartimos información importante..."
|
||||
|
||||
adaptation_rules: |
|
||||
Cuando adaptes contenido para Threads:
|
||||
1. Hazlo más personal y conversacional
|
||||
2. Añade opinión o experiencia propia
|
||||
3. Invita a la conversación genuinamente
|
||||
4. Puedes ser más extenso que X
|
||||
5. Emojis naturales, no decorativos
|
||||
6. Está bien mostrar vulnerabilidad
|
||||
79
app/prompts/platforms/x.yaml
Normal file
79
app/prompts/platforms/x.yaml
Normal file
@@ -0,0 +1,79 @@
|
||||
platform: x
|
||||
display_name: "X (Twitter)"
|
||||
description: "Plataforma de microblogging. Contenido conciso y directo."
|
||||
|
||||
limits:
|
||||
max_characters: 280
|
||||
max_hashtags: 2
|
||||
max_mentions: 3
|
||||
max_links: 1
|
||||
media_optional: true
|
||||
|
||||
tone:
|
||||
style: direct_punchy
|
||||
emoji_usage: minimal # 1-2 máximo
|
||||
formality: medium
|
||||
energy: high
|
||||
|
||||
formatting:
|
||||
line_breaks: true
|
||||
use_bullets: true
|
||||
bullet_style: "→"
|
||||
numbered_lists: false
|
||||
whitespace: strategic # Usa espacios para legibilidad
|
||||
|
||||
hooks:
|
||||
preferred:
|
||||
- dato_impactante # "El 90% de..."
|
||||
- pregunta_retórica # "¿Sabías que...?"
|
||||
- afirmación_bold # "La productividad no es..."
|
||||
- tip_directo # "Tip: usa..."
|
||||
avoid:
|
||||
- historia_larga # No hay espacio
|
||||
- introducción_suave # Pierde caracteres
|
||||
- múltiples_ideas # Un concepto solo
|
||||
|
||||
cta:
|
||||
frequency: 0.3 # 30% de posts
|
||||
types:
|
||||
- follow: "Síguenos para más tips"
|
||||
- save: "Guarda este tip"
|
||||
- share: "RT si te fue útil"
|
||||
- engage: "¿Qué opinas?"
|
||||
placement: end_before_hashtags
|
||||
|
||||
hashtags:
|
||||
count: 1-2
|
||||
placement: end
|
||||
style: no_spaces # #IA no # IA
|
||||
avoid:
|
||||
- hashtags_largos_incomprensibles
|
||||
- más_de_2_palabras
|
||||
recommended:
|
||||
- "#Tech"
|
||||
- "#IA"
|
||||
- "#Productividad"
|
||||
- "#Tips"
|
||||
- "#Python"
|
||||
|
||||
best_practices:
|
||||
- Primera línea es crucial (aparece en preview)
|
||||
- Usa saltos de línea para escaneo rápido
|
||||
- Un solo mensaje/idea por post
|
||||
- Threads para contenido largo (no comprimir)
|
||||
- Los posts con datos específicos performan mejor
|
||||
|
||||
avoid:
|
||||
- Comprimir contenido largo en 280 chars
|
||||
- Más de 2 hashtags
|
||||
- Emojis excesivos
|
||||
- Links en el medio del texto
|
||||
- "Hilo:" sin contenido de hilo real
|
||||
|
||||
adaptation_rules: |
|
||||
Cuando adaptes contenido para X:
|
||||
1. Extrae la idea principal únicamente
|
||||
2. Usa formato de lista con → si hay múltiples puntos
|
||||
3. Hook en primera línea obligatorio
|
||||
4. Si no cabe, sugiere crear hilo en su lugar
|
||||
5. Hashtags al final, máximo 2
|
||||
82
app/prompts/templates/product_post.yaml
Normal file
82
app/prompts/templates/product_post.yaml
Normal file
@@ -0,0 +1,82 @@
|
||||
name: product_post
|
||||
description: Posts promocionales para productos
|
||||
personality: promotional
|
||||
|
||||
purpose: |
|
||||
Presentar productos de forma atractiva enfocándose en cómo
|
||||
resuelven problemas reales del cliente.
|
||||
|
||||
requirements:
|
||||
- Liderar con el problema que resuelve
|
||||
- Destacar 2-3 beneficios clave
|
||||
- Incluir precio como inversión
|
||||
- CTA claro pero no agresivo
|
||||
- NO inventar especificaciones
|
||||
|
||||
structure:
|
||||
hook: problem_or_benefit_hook
|
||||
benefits: 2_3_key_benefits
|
||||
specs: relevant_specs_only
|
||||
price: price_as_investment
|
||||
cta: soft_call_to_action
|
||||
hashtags: 2_3_relevant
|
||||
|
||||
variables:
|
||||
- name: product_name
|
||||
type: string
|
||||
required: true
|
||||
- name: product_description
|
||||
type: string
|
||||
required: true
|
||||
- name: price
|
||||
type: number
|
||||
required: true
|
||||
- name: category
|
||||
type: string
|
||||
required: true
|
||||
- name: specs
|
||||
type: object
|
||||
required: false
|
||||
- name: highlights
|
||||
type: array
|
||||
required: false
|
||||
|
||||
parameters:
|
||||
temperature: 0.7
|
||||
max_tokens: 400
|
||||
|
||||
template: |
|
||||
Genera un post promocional para este producto:
|
||||
|
||||
PRODUCTO: {product_name}
|
||||
DESCRIPCIÓN: {product_description}
|
||||
PRECIO: ${price:,.2f} MXN
|
||||
CATEGORÍA: {category}
|
||||
ESPECIFICACIONES: {specs}
|
||||
PUNTOS DESTACADOS: {highlights}
|
||||
|
||||
ESTRUCTURA:
|
||||
1. HOOK: Problema que resuelve O beneficio principal
|
||||
2. BENEFICIOS: 2-3 beneficios clave (no características)
|
||||
3. PRECIO: Presentado como inversión
|
||||
4. CTA: Invitación a saber más (no presión)
|
||||
5. HASHTAGS: 2-3 relevantes
|
||||
|
||||
REGLAS:
|
||||
- Beneficios > Características (no "8GB RAM", sino "edita video sin lag")
|
||||
- El precio es una inversión, no un gasto
|
||||
- CTA suave: "Más info en DM", "Conoce más", etc.
|
||||
- NO inventes especificaciones que no están en los datos
|
||||
- Usa emojis con propósito (máximo 3-4)
|
||||
|
||||
Responde SOLO con el texto del post.
|
||||
|
||||
tone_guidelines:
|
||||
do:
|
||||
- "Edita videos 4K sin esperar renderizados eternos"
|
||||
- "Inversión que se paga sola en productividad"
|
||||
- "¿Te interesa? Escríbenos para más detalles"
|
||||
dont:
|
||||
- "¡¡¡OFERTA INCREÍBLE!!!"
|
||||
- "ÚLTIMAS UNIDADES" (a menos que sea verdad)
|
||||
- "Compra ahora antes de que se acabe"
|
||||
97
app/prompts/templates/response.yaml
Normal file
97
app/prompts/templates/response.yaml
Normal file
@@ -0,0 +1,97 @@
|
||||
name: response
|
||||
description: Respuestas a interacciones de usuarios
|
||||
personality: default
|
||||
|
||||
purpose: |
|
||||
Generar respuestas apropiadas a comentarios, menciones y mensajes,
|
||||
manteniendo la voz de marca y fomentando la relación con el usuario.
|
||||
|
||||
requirements:
|
||||
- Responder al contexto específico del usuario
|
||||
- Mantener tono de marca
|
||||
- Fomentar continuación de conversación cuando apropiado
|
||||
- Ser útil sin ser condescendiente
|
||||
|
||||
response_types:
|
||||
question:
|
||||
priority: high
|
||||
goal: answer_helpfully
|
||||
follow_up: offer_more_help
|
||||
compliment:
|
||||
priority: medium
|
||||
goal: thank_genuinely
|
||||
follow_up: invite_engagement
|
||||
complaint:
|
||||
priority: critical
|
||||
goal: acknowledge_and_solve
|
||||
follow_up: take_to_dm_if_complex
|
||||
mention:
|
||||
priority: medium
|
||||
goal: engage_positively
|
||||
follow_up: depends_on_context
|
||||
|
||||
variables:
|
||||
- name: interaction_content
|
||||
type: string
|
||||
required: true
|
||||
- name: interaction_type
|
||||
type: string
|
||||
required: true
|
||||
options: ["comment", "mention", "reply", "dm"]
|
||||
- name: sentiment
|
||||
type: string
|
||||
required: false
|
||||
options: ["positive", "neutral", "negative", "question"]
|
||||
- name: context
|
||||
type: string
|
||||
required: false
|
||||
description: "Contexto adicional (post original, historial, etc.)"
|
||||
|
||||
parameters:
|
||||
temperature: 0.8
|
||||
max_tokens: 500
|
||||
|
||||
template: |
|
||||
Un usuario escribió esto en redes sociales:
|
||||
|
||||
"{interaction_content}"
|
||||
|
||||
TIPO DE INTERACCIÓN: {interaction_type}
|
||||
SENTIMIENTO DETECTADO: {sentiment}
|
||||
CONTEXTO: {context}
|
||||
|
||||
Genera 3 opciones de respuesta diferentes:
|
||||
|
||||
1. RESPUESTA CORTA: Directa y amigable (máx 100 caracteres)
|
||||
2. RESPUESTA CONVERSACIONAL: Invita a continuar el diálogo (máx 200 caracteres)
|
||||
3. RESPUESTA CON CTA: Dirige a más info o contacto (máx 200 caracteres)
|
||||
|
||||
REGLAS SEGÚN TIPO:
|
||||
|
||||
Si es PREGUNTA:
|
||||
- Responde de forma útil y específica
|
||||
- Si no sabes algo, admítelo honestamente
|
||||
- Ofrece investigar más si es necesario
|
||||
|
||||
Si es QUEJA:
|
||||
- Empatiza primero, no te defiendas
|
||||
- Ofrece solución o escalación
|
||||
- Sugiere continuar por DM si es complejo
|
||||
|
||||
Si es CUMPLIDO:
|
||||
- Agradece genuinamente (no genérico)
|
||||
- Comparte crédito si aplica
|
||||
- Invita a más engagement
|
||||
|
||||
Si es MENCIÓN:
|
||||
- Reconoce la mención
|
||||
- Aporta valor si es posible
|
||||
- Sé natural, no forzado
|
||||
|
||||
TONO:
|
||||
- Humano, no robótico
|
||||
- Amigable pero profesional
|
||||
- Útil sin ser condescendiente
|
||||
- Nunca defensivo o pasivo-agresivo
|
||||
|
||||
Responde con las 3 opciones numeradas, una por línea.
|
||||
87
app/prompts/templates/service_post.yaml
Normal file
87
app/prompts/templates/service_post.yaml
Normal file
@@ -0,0 +1,87 @@
|
||||
name: service_post
|
||||
description: Posts promocionales para servicios
|
||||
personality: promotional
|
||||
|
||||
purpose: |
|
||||
Presentar servicios enfocándose en el problema que resuelven
|
||||
y los resultados que el cliente puede esperar.
|
||||
|
||||
requirements:
|
||||
- Enfocarse en el problema/dolor del cliente
|
||||
- Mostrar resultados, no procesos
|
||||
- Incluir prueba social si está disponible
|
||||
- CTA consultivo (no de venta directa)
|
||||
|
||||
structure:
|
||||
hook: pain_point_or_result
|
||||
problem: what_client_struggles_with
|
||||
solution: how_service_helps
|
||||
results: expected_outcomes
|
||||
cta: consultative_invitation
|
||||
hashtags: 2_3_relevant
|
||||
|
||||
variables:
|
||||
- name: service_name
|
||||
type: string
|
||||
required: true
|
||||
- name: service_description
|
||||
type: string
|
||||
required: true
|
||||
- name: category
|
||||
type: string
|
||||
required: true
|
||||
- name: target_sectors
|
||||
type: array
|
||||
required: false
|
||||
- name: benefits
|
||||
type: array
|
||||
required: false
|
||||
- name: call_to_action
|
||||
type: string
|
||||
required: false
|
||||
default: "Contáctanos para una consulta sin compromiso"
|
||||
|
||||
parameters:
|
||||
temperature: 0.7
|
||||
max_tokens: 400
|
||||
|
||||
template: |
|
||||
Genera un post promocional para este servicio:
|
||||
|
||||
SERVICIO: {service_name}
|
||||
DESCRIPCIÓN: {service_description}
|
||||
CATEGORÍA: {category}
|
||||
SECTORES OBJETIVO: {target_sectors}
|
||||
BENEFICIOS: {benefits}
|
||||
CTA DESEADO: {call_to_action}
|
||||
|
||||
ESTRUCTURA:
|
||||
1. HOOK: Dolor del cliente O resultado transformador
|
||||
2. PROBLEMA: Lo que el cliente enfrenta (empatía)
|
||||
3. SOLUCIÓN: Cómo el servicio ayuda (sin tecnicismos)
|
||||
4. RESULTADOS: Qué puede esperar el cliente
|
||||
5. CTA: Invitación consultiva
|
||||
6. HASHTAGS: 2-3 relevantes
|
||||
|
||||
TONO:
|
||||
- Consultivo, no vendedor
|
||||
- Empático con el problema del cliente
|
||||
- Confiado pero no arrogante
|
||||
- Enfocado en resultados medibles
|
||||
|
||||
REGLAS:
|
||||
- Usa "tú" no "usted" (cercano)
|
||||
- Evita jerga técnica innecesaria
|
||||
- Si mencionas resultados, que sean realistas
|
||||
- CTA debe ser bajo compromiso
|
||||
|
||||
Responde SOLO con el texto del post.
|
||||
|
||||
examples:
|
||||
hooks:
|
||||
good:
|
||||
- "¿Tu equipo pierde 10+ horas/semana en tareas repetitivas?"
|
||||
- "Empresas que automatizan reducen errores un 80%"
|
||||
bad:
|
||||
- "Ofrecemos servicios de automatización"
|
||||
- "Somos expertos en IA"
|
||||
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"
|
||||
85
app/prompts/templates/tip_tech.yaml
Normal file
85
app/prompts/templates/tip_tech.yaml
Normal file
@@ -0,0 +1,85 @@
|
||||
name: tip_tech
|
||||
description: Tips de tecnología cortos y accionables
|
||||
personality: default
|
||||
|
||||
purpose: |
|
||||
Generar tips prácticos que el lector pueda aplicar inmediatamente.
|
||||
El valor está en la accionabilidad, no en la teoría.
|
||||
|
||||
requirements:
|
||||
- Accionable en menos de 5 minutos
|
||||
- Un solo concepto por tip
|
||||
- Incluye el "por qué" importa
|
||||
- Específico, no genérico
|
||||
|
||||
structure:
|
||||
hook: attention_grabbing_first_line
|
||||
body: the_tip_with_context
|
||||
why: why_it_matters
|
||||
close: hashtags_only
|
||||
|
||||
variables:
|
||||
- name: category
|
||||
type: string
|
||||
required: true
|
||||
examples: ["productividad", "ia", "seguridad", "python", "automatización"]
|
||||
- name: difficulty_level
|
||||
type: string
|
||||
required: false
|
||||
default: "principiante"
|
||||
options: ["principiante", "intermedio", "avanzado"]
|
||||
- name: target_audience
|
||||
type: string
|
||||
required: false
|
||||
default: "profesionales tech"
|
||||
|
||||
parameters:
|
||||
temperature: 0.8
|
||||
max_tokens: 300
|
||||
|
||||
template: |
|
||||
Genera un tip de tecnología sobre: {category}
|
||||
|
||||
NIVEL DE DIFICULTAD: {difficulty_level}
|
||||
AUDIENCIA: {target_audience}
|
||||
|
||||
ESTRUCTURA REQUERIDA:
|
||||
1. HOOK: Primera línea que capture atención (pregunta, dato sorprendente, o afirmación bold)
|
||||
2. TIP: El consejo concreto y específico
|
||||
3. POR QUÉ: Una línea explicando el beneficio
|
||||
4. HASHTAGS: 2-3 hashtags relevantes
|
||||
|
||||
CRITERIOS DE CALIDAD:
|
||||
- El lector debe poder aplicarlo HOY
|
||||
- Debe ser específico (no "usa IA para ser más productivo", sino "usa ChatGPT para resumir emails largos")
|
||||
- El hook debe generar curiosidad o resonar con un dolor común
|
||||
|
||||
EVITAR:
|
||||
- Tips genéricos que todos conocen
|
||||
- Consejos que requieran comprar algo
|
||||
- Jerga técnica sin explicación
|
||||
|
||||
Responde SOLO con el texto del post, sin explicaciones ni meta-comentarios.
|
||||
|
||||
examples:
|
||||
good:
|
||||
- |
|
||||
¿Pasas horas en reuniones improductivas?
|
||||
|
||||
La regla 2-2-2: máximo 2 temas, 2 decisiones, 2 acciones.
|
||||
|
||||
Mis reuniones ahora duran la mitad.
|
||||
|
||||
#Productividad #Tips
|
||||
- |
|
||||
El 90% ignora esto en Python:
|
||||
|
||||
Usa enumerate() en lugar de range(len()).
|
||||
|
||||
Código más limpio y 0 errores de índice.
|
||||
|
||||
#Python #Programming
|
||||
bad:
|
||||
- "Usa IA para ser más productivo" # Muy genérico
|
||||
- "Compra una segunda pantalla para trabajar mejor" # Requiere compra
|
||||
- "El machine learning es útil" # No es accionable
|
||||
Reference in New Issue
Block a user