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:
- Entrada — Guardar los logs de conversación como Markdown en la carpeta Inbox de Obsidian
- Disparador — Detectar cambios en el archivo e iniciar el procesamiento
- Procesamiento — Convertir el log al formato de artículo de blog usando la API de Claude
- 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.