Preparar repositorio para despliegue: código fuente limpio
This commit is contained in:
parent
866f5c432d
commit
3eca832c1a
76 changed files with 5434 additions and 3496 deletions
75
FUNCIONES_DE_ARCHIVOS.md
Normal file
75
FUNCIONES_DE_ARCHIVOS.md
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
# Descripción de Archivos y Funciones del Proyecto RSS2
|
||||
|
||||
Este documento detalla la estructura del proyecto y la función de sus archivos principales.
|
||||
|
||||
## 🐳 Infraestructura y Despliegue
|
||||
|
||||
| Archivo / Directorio | Descripción |
|
||||
|----------------------|-------------|
|
||||
| `docker-compose.yml` | **Orquestador principal**. Define todos los servicios (db, web, workers, redis, qdrant, etc.), redes, volúmenes de persistencia y configuración de recursos. |
|
||||
| `Dockerfile` | Definición de la imagen base para la aplicación web y la mayoría de los workers en Python. |
|
||||
| `Dockerfile.llm_worker` | Imagen específica para el worker de LLM, incluye dependencias de CUDA y PyTorch para ExLlamaV2. |
|
||||
| `Dockerfile.url_worker` | Imagen optimizada para el worker de descubrimiento y procesamiento de URLs. |
|
||||
| `nginx.conf` | Configuración del servidor web Nginx que actúa como proxy inverso y servidos de archivos estáticos. |
|
||||
| `.env` | Variables de entorno con credenciales y configuración sensible (NO compartir). |
|
||||
| `gunicorn_config.py` | Configuración del servidor de aplicaciones WSGI Gunicorn para producción. |
|
||||
|
||||
## 🧠 Núcleo de la Aplicación (Python)
|
||||
|
||||
| Archivo | Descripción |
|
||||
|---------|-------------|
|
||||
| `app.py` | **Punto de entrada**. Inicializa la aplicación Flask, registra blueprints (rutas) y configura extensiones. |
|
||||
| `config.py` | Carga y valida la configuración desde variables de entorno. Define constantes globales. |
|
||||
| `db.py` | Gestión de la conexión a la base de datos PostgreSQL (pool de conexiones). |
|
||||
| `cache.py` | Capa de abstracción para Redis. Maneja caché de respuestas y estados transitorios. |
|
||||
| `scheduler.py` | Planificador de tareas periódicas (cron jobs internos) para mantenimiento y disparadores. |
|
||||
| `requirements.txt` | Lista de dependencias de Python necesarias para el proyecto. |
|
||||
|
||||
## 👷 Workers (Procesamiento en Segundo Plano)
|
||||
|
||||
Ubicados en `workers/`:
|
||||
|
||||
| Archivo | Función |
|
||||
|---------|---------|
|
||||
| `llm_categorizer_worker.py` | Categoriza noticias usando un LLM local (Mistral/ExLlamaV2). Asigna etiquetas temáticas. |
|
||||
| `url_worker_daemon.py` | Procesa y valida URLs extraídas, gestionando la cola de descargas. |
|
||||
| `url_discovery_worker.py` | Busca nuevos feeds RSS a partir de las URLs base. |
|
||||
| `translation_worker.py` | Traduce contenido usando modelos NLLB (No Language Left Behind). |
|
||||
| `embeddings_worker.py` | Genera vectores semánticos para búsqueda y clustering. |
|
||||
| `cluster_worker.py` | Agrupa noticias similares en "historias" o eventos. |
|
||||
| `ner_worker.py` | Extracción de Entidades Nombradas (personas, organizaciones, lugares). |
|
||||
| `topics_worker.py` | Identifica y extrae tópicos principales de los textos. |
|
||||
| `qdrant_worker.py` | Sincroniza los vectores generados con la base de datos vectorial Qdrant. |
|
||||
|
||||
## 🌐 API y Rutas
|
||||
|
||||
Ubicados en `routers/`:
|
||||
|
||||
| Archivo | Descripción |
|
||||
|---------|-------------|
|
||||
| `api.py` | Endpoints generales de la API REST. |
|
||||
| `feeds.py` | Gestión de fuentes RSS (CRUD). |
|
||||
| `news.py` | Endpoints para listar y filtrar noticias. |
|
||||
| `dashboard.py` | Rutas para el panel de administración y estadísticas. |
|
||||
| `auth.py` | Manejo de autenticación y autorización. |
|
||||
| `search.py` | Endpoints para búsqueda semántica y tradicional. |
|
||||
|
||||
## 🛠️ Herramientas y Scripts
|
||||
|
||||
| Archivo | Descripción |
|
||||
|---------|-------------|
|
||||
| `scripts/download_llm_model.sh` | Script para descargar modelos LLM cuantizados desde HuggingFace de forma segura. |
|
||||
| `verify_security.sh` | Auditoría de seguridad automatizada (verifica permisos, configuración TLS, etc.). |
|
||||
| `generate_secure_credentials.sh` | Genera contraseñas seguras y configura el entorno inicial. |
|
||||
| `rss-ingestor-go/` | Ingestor de RSS de alto rendimiento escrito en Go. |
|
||||
|
||||
## 📂 Directorios de Datos
|
||||
|
||||
| Directorio | Contenido |
|
||||
|------------|-----------|
|
||||
| `models/` | Almacenamiento persistente de modelos de IA (LLMs, Embeddings, Traducción). |
|
||||
| `pgdata/` | Persistencia de la base de datos PostgreSQL. |
|
||||
| `qdrant_storage/` | Persistencia de la base de datos vectorial Qdrant. |
|
||||
| `hf_cache/` | Caché de HuggingFace para modelos y tokenizers. |
|
||||
| `templates/` | Plantillas HTML (Jinja2) para la interfaz web. |
|
||||
| `static/` | Archivos CSS, JS e imágenes públicas. |
|
||||
Loading…
Add table
Add a link
Reference in a new issue