Creé un pipeline para publicar automáticamente en WordPress los logs de consultas de IA desde Obsidian

Creé un pipeline para publicar automáticamente en WordPress los logs de consultas de IA desde Obsidian

Creé un pipeline para publicar automáticamente en WordPress los logs de consultas de IA desde Obsidian

Introducción

Cuando consultas temas técnicos con una IA, hay momentos en los que piensas "esta conversación me va a ser útil más adelante". Sin embargo, en la práctica, los historiales de chat quedan sepultados y rara vez se aprovechan como conocimiento.

En este artículo presento el diseño y los puntos de implementación de un pipeline que convierte automáticamente los logs de consultas de IA pegados en Obsidian en artículos de blog y los publica como borradores en WordPress. Espero que sirva de referencia a quienes enfrentan el mismo problema.


Visión general del pipeline

El flujo se divide simplemente en 4 pasos:

  1. Entrada — Guardar los logs de conversación como Markdown en la carpeta Inbox de Obsidian
  2. Disparador — Detectar cambios en el archivo e iniciar el procesamiento
  3. Procesamiento — Convertir el log al formato de artículo de blog usando la API de Claude
  4. Salida — Publicar automáticamente como borrador mediante WordPress REST API
Obsidian (Markdown)
  └─ watchdog (vigilancia de archivos)
       └─ Claude API (conversión de artículo)
            └─ WP REST API (publicación como borrador)

Selección del stack tecnológico

Vigilancia de archivos: Python watchdog

La biblioteca watchdog de Python puede detectar en tiempo real eventos de cambio en el directorio especificado. Como el evento se dispara cada vez que Obsidian guarda, es ideal como disparador.

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class MarkdownHandler(FileSystemEventHandler):
    def on_created(self, event):
        if event.src_path.endswith(".md"):
            process_file(event.src_path)

observer = Observer()
observer.schedule(MarkdownHandler(), path="./inbox", recursive=False)
observer.start()

Conversión de artículo: API de Claude

En lugar de publicar el log tal cual, se pasa un "prompt de conversión de artículo" a la API de Claude para formatearlo. El punto clave aquí es definir el formato del artículo de antemano.

  • Mantener formato Q&A → facilita transmitir el flujo de la conversación
  • Convertir en artículo resumen → fácil de escanear y leer
  • Híbrido → introducción + extractos Q&A + conclusión

Ejemplo de prompt:

prompt = f"""
Basándote en el siguiente log de consultas de IA, escribe un artículo de blog técnico.
- Usa encabezados H2/H3
- Usa bloques de código apropiadamente
- Propón 3 etiquetas
- Formato de salida: JSON {{ "title": "", "content": "", "tags": [] }}

---Log---
{raw_log}
"""

Publicación en WordPress: REST API

Usando WP REST API es posible publicar programáticamente desde el exterior. Usar Application Password para la autenticación es la mejor práctica actual.

import requests
import base64

def post_to_wordpress(title, content, tags):
    credentials = base64.b64encode(b"username:app_password").decode("utf-8")
    headers = {"Authorization": f"Basic {credentials}"}
    
    payload = {
        "title": title,
        "content": content,
        "status": "draft",  # Publicar siempre como borrador
        "tags": tags,
    }
    
    response = requests.post(
        "https://example.com/wp-json/wp/v2/posts",
        json=payload,
        headers=headers,
    )
    return response.json()

Puntos difíciles de decidir en el diseño

Hasta qué punto conservar la "naturalidad" del log

Las conversaciones con la IA incluyen el proceso de prueba y error. Si se formatea todo, se pierde el contexto de "cómo se llegó a esa conclusión". Conservar parte del formato Q&A hace que el artículo sea más fácil de seguir para los lectores.

Asignación automática de etiquetas y categorías

Incluir candidatos de etiquetas en la respuesta de la API de Claude permite eliminar completamente el trabajo manual. Sin embargo, hasta que la precisión se estabilice, es más seguro mantener el estado de publicación en draft para que un humano lo revise.

Prevención del procesamiento doble

Como watchdog dispara un evento con cada guardado de archivo, puede procesar el mismo archivo varias veces. Es mejor prevenirlo con una base de datos que registre los archivos procesados (SQLite es suficiente) o con gestión de hash del archivo.


Conclusión

La clave de este pipeline es "decidir primero el formato de salida del artículo". Una vez determinado el formato, el diseño del prompt y la implementación del código avanzan sin problemas.

En lugar de intentar automatizarlo todo desde el principio, el enfoque práctico es empezar con el flujo de conversión → revisión → publicación manual, y luego cambiar a publicación automática cuando la calidad se estabilice. Las conversaciones con la IA tienen suficiente calidad para convertirse en artículos de blog si las organizas bien. Es una lástima desperdiciarlas.