Files
social-media-automation/docs/CONTEXT_SESSION_2026-01-29.md
Consultoría AS cf1e06bb11 docs: Add session context document for continuity
Complete project state documentation including:
- System architecture and services
- Implemented features (content engine, threads, interactions, reports)
- Scheduled tasks and database schema
- Useful commands and pending items

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 09:00:19 +00:00

7.2 KiB

Contexto del Proyecto - Sesión 29 Enero 2026

Resumen Ejecutivo

Sistema de automatización de redes sociales para Consultoría AS (Tijuana, México). Publica contenido automáticamente en X (Twitter), con soporte futuro para Facebook, Instagram y Threads.

Estado Actual del Sistema

Servicios en Ejecución (Docker Compose)

Servicio Puerto Descripción
app 8000 FastAPI backend + Dashboard
worker - Celery worker para tareas async
beat - Celery beat scheduler
db 5432 PostgreSQL
redis 6379 Broker para Celery

Credenciales Configuradas (.env)

  • X (Twitter): Configurado y funcionando (plan de pago activo - $5 USD)
  • DeepSeek API: Configurado para generación de contenido
  • Telegram Bot: Configurado para notificaciones
  • Odoo: Configurado pero no probado

Funcionalidades Implementadas

1. Content Generation Engine v2

Motor de generación de contenido con IA usando DeepSeek.

Arquitectura modular:

app/services/ai/
├── __init__.py          # Exports y singletons
├── prompt_library.py    # Carga prompts YAML
├── context_engine.py    # Anti-repetición + best performers
├── generator.py         # Generador principal
├── platform_adapter.py  # Adapta contenido por plataforma
└── validator.py         # Scoring de calidad con IA

Biblioteca de prompts:

app/prompts/
├── personalities/       # Tonos de comunicación
├── templates/           # Tipos de contenido (tip, thread, promo)
├── examples/            # Ejemplos para few-shot learning
└── platforms/           # Reglas por plataforma

API Endpoints:

  • POST /api/v2/generate - Genera contenido con el motor v2
  • GET /api/v2/templates - Lista templates disponibles

2. Publicación de Hilos (Threads)

Los hilos se detectan automáticamente cuando el template es "thread".

Formato de hilo:

1/ Primer tweet del hilo...

2/ Segundo tweet...

3/ Tercer tweet...

Flujo:

  1. Generador detecta template "thread"
  2. Parsea posts separados por N/ pattern
  3. publish_thread() publica como self-replies
  4. Se guarda el ID del primer tweet

3. Calendario de Contenido

24 posts programados para Febrero 2026:

  • 12 tips tecnológicos (lunes, miércoles, viernes 10:00 AM)
  • 4 hilos educativos (miércoles 12:00 PM)
  • 8 posts promocionales de servicios (domingos 3:00 PM)

Visualización:

  • Dashboard: /calendar
  • API: GET /api/calendar/posts/view?start_date=2026-02-01&days=28

4. Tracking de Interacciones

Tipos de interacciones capturadas:

Tipo Descripción
mention Tweets que mencionan @ConsultASTJ
comment Respuestas a posts publicados
follow Nuevos seguidores

Filtros implementados:

  • Excluye auto-respuestas (tweets del propio sistema)
  • Detecta duplicados (mismo tweet como mención y comentario)
  • Guarda username real (no solo ID numérico)

Datos capturados por follower:

  • Username, nombre, bio, avatar URL

5. Reportes Diarios por Telegram

Reporte Matutino (8:00 AM Tijuana):

  • Posts programados para el día
  • Nuevos followers (24h)
  • Interacciones pendientes

Reporte Vespertino (6:00 PM Tijuana):

  • Posts publicados hoy
  • Posts programados mañana
  • Nuevos followers del día
  • Interacciones sin responder

6. Dashboard Web

URL: http://localhost:8000/

Secciones:

  • Stats (posts hoy/semana, pendientes, programados)
  • Pendientes de aprobación
  • Próximas publicaciones
  • Publicaciones recientes (nuevo)
  • Interacciones recientes
  • Estado de plataformas

Tareas Programadas (Celery Beat)

Tarea Frecuencia Descripción
publish_scheduled_posts Cada minuto Publica posts cuyo scheduled_at llegó
fetch_all_interactions Cada 5 min Obtiene menciones, comentarios, followers
generate_scheduled_content Cada hora Genera contenido según calendario
morning_report 8:00 AM Reporte Telegram matutino
afternoon_report 6:00 PM Reporte Telegram vespertino
daily_cleanup 3:00 AM Limpieza de datos antiguos
update_engagement_scores Cada 6h Actualiza scores de engagement
refresh_best_posts_yaml Domingos 5 AM Regenera best_posts.yaml

Base de Datos

Tablas Principales

-- Posts
posts (id, content, content_x, platforms, status, scheduled_at, published_at, platform_post_ids, content_type, ...)

-- Interacciones
interactions (id, platform, interaction_type, external_id, author_username, author_name, content, responded, ...)

-- Memoria de contenido (anti-repetición)
content_memory (id, content_hash, keywords, template_used, platform, engagement_score, ...)

Post Publicado de Prueba

ID: 31
Tipo: hilo_educativo
Plataforma: X
X Post ID: 2016630637961351287
URL: https://x.com/i/web/status/2016630637961351287
Tema: "3 errores al usar ChatGPT"

Archivos Clave Modificados en Esta Sesión

app/api/routes/dashboard.py      # Agregada sección recent_published
app/publishers/x_publisher.py    # Filtro self-replies + get_followers()
worker/tasks/fetch_interactions.py # Tracking followers + deduplicación
worker/tasks/daily_reports.py    # Nuevo: reportes Telegram
worker/celery_app.py             # Schedule de reportes
dashboard/templates/index.html   # UI para publicaciones recientes

Comandos Útiles

# Reiniciar servicios
docker compose up -d --build app worker

# Ver logs del worker
docker compose logs worker --tail=50

# Ejecutar task manualmente
docker compose exec app python -c "
from worker.tasks.fetch_interactions import fetch_platform_interactions
print(fetch_platform_interactions('x'))
"

# Ver posts programados
docker compose exec db psql -U social_user -d social_automation -c "
SELECT id, status, scheduled_at, content_type FROM posts
WHERE status = 'scheduled' ORDER BY scheduled_at LIMIT 10;
"

# Ver interacciones
docker compose exec db psql -U social_user -d social_automation -c "
SELECT id, interaction_type, author_username, content FROM interactions
ORDER BY interaction_at DESC LIMIT 10;
"

# Enviar reporte de prueba
docker compose exec worker python -c "
from worker.tasks.daily_reports import morning_report
print(morning_report())
"

Pendientes / Ideas Futuras

  1. Integración Meta (Facebook/Instagram/Threads)

    • Credenciales en .env pero sin access token
    • Publishers existen pero no probados
  2. Respuestas Automáticas

    • Infraestructura lista (responded, response_content en interactions)
    • Falta implementar lógica de respuesta con IA
  3. Analytics Dashboard

    • Endpoint /analytics existe
    • Falta poblar con datos reales de engagement
  4. A/B Testing

    • Modelo y rutas existen
    • Falta implementar comparación de variantes
  5. Integración Odoo

    • Credenciales configuradas
    • Sync de leads pendiente de probar

Cuenta de X

  • Username: @ConsultASTJ
  • User ID: 2016319840709918720
  • Plan: Básico con $5 USD de crédito

Contacto / Negocio

  • Empresa: Consultoría AS
  • Ubicación: Tijuana, México
  • Website: https://consultoria-as.com
  • Servicios: Consultoría tecnológica, automatización, IA

Documento generado el 29 de enero de 2026