From cf1e06bb11e4819ed2e3344c71fa3fb3868c7abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Consultor=C3=ADa=20AS?= Date: Fri, 30 Jan 2026 09:00:19 +0000 Subject: [PATCH] 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 --- docs/CONTEXT_SESSION_2026-01-29.md | 249 +++++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 docs/CONTEXT_SESSION_2026-01-29.md diff --git a/docs/CONTEXT_SESSION_2026-01-29.md b/docs/CONTEXT_SESSION_2026-01-29.md new file mode 100644 index 0000000..9b9c337 --- /dev/null +++ b/docs/CONTEXT_SESSION_2026-01-29.md @@ -0,0 +1,249 @@ +# 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 + +```sql +-- 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 + +```bash +# 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*