Am creat un pipeline pentru a publica automat pe WordPress jurnalele de consultații AI din Obsidian
Introducere
Când consulți probleme tehnice cu o IA, există momente când gândești „această conversație va fi utilă mai târziu". Cu toate acestea, în practică, istoricul chat-urilor se îngropă și rareori este valorificat ca și cunoaștere.
În acest articol, prezint proiectarea și punctele de implementare ale unui pipeline care convertește automat jurnalele de consultații AI lipite în Obsidian în articole de blog și le publică ca ciorne în WordPress. Sper să fie util celor care se confruntă cu aceeași problemă.
Imaginea de ansamblu a pipeline-ului
Fluxul de procesare se împarte simplu în 4 pași:
- Intrare — Salvarea jurnalelor de conversație ca Markdown în dosarul Inbox din Obsidian
- Declanșator — Detectarea modificărilor de fișier și inițierea procesării
- Procesare — Conversia jurnalului în format articol de blog folosind Claude API
- Ieșire — Publicarea automată ca ciornă prin WordPress REST API
Obsidian (Markdown)
└─ watchdog (monitorizare fișiere)
└─ Claude API (conversie articol)
└─ WP REST API (publicare ciornă)
Selectarea stivei tehnologice
Monitorizarea fișierelor: Python watchdog
Biblioteca watchdog din Python poate detecta în timp real evenimentele de modificare din directorul specificat. Deoarece evenimentul se declanșează de fiecare dată când Obsidian salvează, este ideal ca declanșator.
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()
Conversia articolului: Claude API
În loc să publicăm jurnalul ca atare, transmitem un „prompt de conversie articol" la Claude API pentru formatare. Punctul cheie este stabilirea în prealabil a formatului articolului.
- Păstrarea formatului Q&A → fluxul conversației se transmite ușor
- Convertire în articol rezumat → ușor de scanat și citit
- Hibrid → introducere + extrase Q&A + concluzie
Exemplu de prompt:
prompt = f"""
Pe baza următorului jurnal de consultații AI, scrie un articol de blog tehnic.
- Folosește titluri H2/H3
- Folosește blocuri de cod în mod corespunzător
- Propune 3 etichete
- Format ieșire: JSON {{ "title": "", "content": "", "tags": [] }}
---Jurnal---
{raw_log}
"""
Publicarea WordPress: REST API
Folosind WP REST API, publicarea programatică din exterior este posibilă. Utilizarea Application Password pentru autentificare este cea mai bună practică 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", # Întotdeauna publicat ca ciornă
"tags": tags,
}
response = requests.post(
"https://example.com/wp-json/wp/v2/posts",
json=payload,
headers=headers,
)
return response.json()
Puncte dificil de decis în proiectare
Cât de mult să păstrezi „caracterul original" al jurnalului
Conversațiile cu IA includ procesul de încercare și eroare. Dacă totul este formatat, contextul „cum s-a ajuns la acea concluzie" se pierde. Păstrând o parte din formatul Q&A, articolul devine mai ușor de urmărit de cititori.
Atribuirea automată a etichetelor și categoriilor
Incluzând candidați de etichete în răspunsul Claude API, munca manuală poate fi eliminată complet. Totuși, până când precizia se stabilizează, este mai sigur să menții statusul publicării draft pentru revizuire umană.
Prevenirea procesării duble
Deoarece watchdog declanșează un eveniment la fiecare salvare de fișier, există cazuri în care același fișier este procesat de mai multe ori. Este bine să previi asta cu o bază de date care înregistrează fișierele procesate (SQLite este suficient) sau cu gestionarea hash-ului fișierului.
Concluzie
Esența acestui pipeline este „să stabilești mai întâi formatul de ieșire al articolului". Odată stabilit formatul, proiectarea promptului și implementarea codului avansează fără probleme.
În loc să încerci să automatizezi totul de la bun început, abordarea practică este să începi cu fluxul conversie → revizuire → publicare manuală, apoi să treci la publicare automată când calitatea se stabilizează. Conversațiile cu IA au suficientă calitate pentru a deveni articole de blog dacă sunt organizate. Este păcat să le lași să se piardă.