Tabla de Contenidos 10 secciones
Para que el sistema funcione, necesitas tener tres componentes activos en tu Mac Mini M4:
- Ollama Server: El motor de IA local debe estar corriendo en segundo plano.
- Modelo Cargado: Ollama debe tener disponible el modelo pesado de contexto
qwen2.5-coder:7b-64k. - El Bot de Telegram: El script de Python debe estar ejecutándose de forma continua en una terminal para escuchar tus mensajes utilizando el intérprete explícito de
python3.
El camino que sigue la información desde tu móvil o Telegram hasta tu web funciona así:
[ Usuario ] ➔ (Envía URL por Telegram) ➔ [ src/telegram_bot.py ]
│ (Llama vía 'uv')
▼
[ Archivo Markdown Final ] ◀ [ src/generar_articulo.py ] ◀ (Ollama - Qwen)
- Entrada: Envías un enlace válido (ej. Wikipedia o un artículo web) al chat de tu bot de Telegram.
- Recepción:
telegram_bot.pyrecibe el enlace, te avisa de que ha comenzado y ejecuta internamente el segundo script usando la herramienta de entornos rápidosuv. - Extracción:
generar_articulo.pydescarga la página web y limpia el ruido (anuncios, menús) para quedarse solo con el texto útil usando librerías comotrafilaturaoBeautifulSoup. - Enriquecimiento (Si no es URL): Si en vez de una URL le pasas un concepto suelto, el script busca de forma autónoma en DuckDuckGo para recopilar información.
- Procesamiento Local: Se le envía todo el texto limpio a Ollama con un prompt estructurado. El modelo procesa la información y redacta un artículo de gran extensión en formato Markdown con Frontmatter (metadatos de Astro).
- Almacenamiento y Salida: El script guarda el archivo
.mddirectamente en la carpeta de posts de tu proyecto Astro:/Users/ernestouriszar/markeup/src/content/posts/[Categoría]/[slug].md. El bot de Telegram detecta el nuevo archivo, te lo envía de vuelta por el chat como documento adjunto y borra los mensajes temporales.
[!IMPORTANT] En macOS moderno el comando base
pythonno está disponible por defecto. Debe utilizarse estrictamentepython3. La estructura de carpetas requiere ejecutar el entorno desdehermes-agentpero apuntando al script dentro desrc.
Antes de lanzar el bot o realizar pruebas, sitúate en la raíz del proyecto e inicializa el entorno virtual aislado que se encuentra dentro de hermes-agent:
cd /Users/ernestouriszar/markeup
source hermes-agent/.venv/bin/activate
Con el entorno activo y desde la raíz markeup, arranca el script de escucha ubicado en la carpeta src:
Bash
python3 src/telegram_bot.py
Si el bot no responde o se detiene de forma inesperada, inspecciona el archivo de registro en su ruta correcta dentro de src:
Bash
tail -n 20 /Users/ernestouriszar/markeup/src/telegram_bot.log
Si deseas depurar el creador de artículos en aislamiento para comprobar el comportamiento del modelo o de la extracción sin la interfaz de Telegram, ejecuta en otra terminal:
Bash
cd /Users/ernestouriszar/markeup
source hermes-agent/.venv/bin/activate
python3 src/generar_articulo.py [https://es.wikipedia.org/wiki/Valladolid](https://es.wikipedia.org/wiki/Valladolid)
Si en el futuro deseas cambiar el comportamiento del sistema, estos son los puntos clave:
-
Cambiar el Token: Modifica la variable
TOKENsi creas un bot nuevo en@BotFather. -
Modificar los mensajes de respuesta: Busca los textos dentro de
async def startoasync def handle_urlpara cambiar lo que te responde el bot mientras trabaja. -
Cambiar el tiempo de reacción: Si notas que los artículos tardan más de lo normal y el bot da error, ajusta la lógica de búsqueda del archivo más reciente en la función de caída (fallback).
-
Cambiar de Modelo: Modifica la línea
"model": "qwen2.5-coder:7b-64k"dentro dedef generar_articulosi deseas probar otro modelo que tengas en Ollama (ej.deepseek-coder). -
Modificar las Reglas de Redacción o el Frontmatter: Cambia el texto de la variable
prompt = f"""...""". Aquí puedes exigirle que use componentes de DaisyUI específicos, que use otra estructura de encabezados, o añadir nuevos campos obligatorios para el SEO de Astro. -
Añadir o cambiar Categorías: Modifica la lista
CATEGORIASy el diccionarioKEYWORDS_CATEGORIASal inicio del archivo para que el sistema clasifique tus notas bajo nuevos criterios automáticos.