J'ai construit un pipeline pour publier automatiquement des journaux de chat IA depuis Obsidian vers WordPress
Introduction
Lors d'une conversation technique avec une IA, il y a des moments où vous pensez : "cela pourrait être utile plus tard." Mais en pratique, l'historique des discussions finit enfoui — rarement transformé en connaissances réutilisables.
Cet article couvre la conception et les détails clés d'implémentation d'un pipeline qui prend des journaux de consultation IA collés dans Obsidian et les convertit automatiquement en articles de blog, puis crée des brouillons dans WordPress. J'espère que cela aidera ceux qui font face au même problème.
Vue d'ensemble du pipeline
Le flux se décompose en quatre étapes simples :
- Entrée — Enregistrer les journaux de chat en Markdown dans le dossier Inbox d'Obsidian
- Déclencheur — Détecter les changements de fichiers et lancer le traitement
- Traitement — Utiliser l'API Claude pour convertir le journal en format d'article de blog
- Sortie — Publier automatiquement comme brouillon via l'API REST WordPress
Obsidian (Markdown)
└─ watchdog (observateur de fichiers)
└─ API Claude (conversion d'article)
└─ API REST WP (brouillon)
Stack technologique
Observation de fichiers : Python watchdog
La bibliothèque Python watchdog détecte les événements de changement dans un répertoire spécifié en temps réel. Elle déclenche un événement à chaque fois qu'Obsidian enregistre un fichier, en faisant un déclencheur parfait.
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()
Conversion d'article : API Claude
Plutôt que de publier les journaux tels quels, je passe un "prompt de conversion d'article" à l'API Claude. L'essentiel ici est de décider du format d'article à l'avance.
- Conserver le format Q&R → préserve le fil de la conversation
- Résumer → plus facile à parcourir et à lire
- Hybride → introduction + extraits Q&R + conclusion
Exemple de prompt :
prompt = f"""
Sur la base du journal de consultation IA ci-dessous, rédigez un article de blog technique.
- Utilisez des titres H2/H3
- Utilisez des blocs de code si approprié
- Suggérez 3 tags
- Format de sortie : JSON {{ "title": "", "content": "", "tags": [] }}
---LOG---
{raw_log}
"""
Publication WordPress : API REST
L'API REST WP vous permet de publier par programmation depuis l'extérieur de WordPress. Les mots de passe d'application sont la meilleure pratique actuelle pour l'authentification.
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", # toujours publier comme brouillon
"tags": tags,
}
response = requests.post(
"https://example.com/wp-json/wp/v2/posts",
json=payload,
headers=headers,
)
return response.json()
Décisions de conception à réfléchir
Quelle part de la sensation du journal brut conserver ?
Les conversations IA incluent le processus d'essai et d'erreur. Si vous formatez tout, vous perdez le contexte de "pourquoi nous avons abouti à cette conclusion." Conserver une partie du format Q&R aide les lecteurs à suivre le même processus de réflexion.
Attribution automatique des tags et catégories
Inclure des suggestions de tags dans la réponse de l'API Claude peut éliminer entièrement le travail manuel. Cela dit, jusqu'à ce que la précision soit constante, il est plus sûr de garder le statut de la publication à draft et d'avoir une revue humaine avant la publication.
Prévenir le double traitement
watchdog se déclenche à chaque enregistrement, donc le même fichier peut être traité plusieurs fois. Une simple base de données (SQLite suffit) ou le suivi du hash de fichier peut éviter cela.
Résumé
Le cœur de ce pipeline est de décider du format de sortie en premier. Une fois le format établi, la conception du prompt et l'implémentation du code s'enchaînent naturellement.
Plutôt que d'essayer de tout automatiser dès le début, une approche pratique consiste à commencer par convertir → réviser → publier manuellement, puis passer à la publication automatique une fois la qualité stable. Les conversations IA, lorsqu'elles sont organisées, ont plus qu'assez de qualité pour devenir des articles de blog. C'est dommage de les laisser s'enfouir.