Saya Membuat Pipeline untuk Memposting Otomatis Log Konsultasi AI dari Obsidian ke WordPress
Pendahuluan
Saat berdiskusi teknis dengan AI, kadang ada momen ketika Anda berpikir "percakapan ini sepertinya akan berguna nanti". Namun pada kenyataannya, riwayat obrolan sering terkubur begitu saja dan tidak dimanfaatkan sebagai pengetahuan.
Artikel ini memperkenalkan desain dan poin implementasi pipeline yang secara otomatis mengubah log konsultasi AI yang ditempel di Obsidian menjadi artikel blog dan mempostingnya sebagai draf ke WordPress. Semoga bermanfaat bagi yang menghadapi masalah yang sama.
Gambaran Umum Pipeline
Alur prosesnya dibagi menjadi 4 langkah sederhana:
- Input — Simpan log percakapan sebagai Markdown di folder Inbox Obsidian
- Trigger — Deteksi perubahan file dan mulai pemrosesan
- Process — Konversi log ke format artikel blog menggunakan Claude API
- Output — Posting otomatis sebagai draf melalui WordPress REST API
Obsidian (Markdown)
└─ watchdog (pemantauan file)
└─ Claude API (konversi artikel)
└─ WP REST API (posting draf)
Pemilihan Tech Stack
Pemantauan File: Python watchdog
Library watchdog Python dapat mendeteksi event perubahan di direktori yang ditentukan secara real-time. Karena event dipicu setiap kali Obsidian menyimpan, ini ideal sebagai trigger.
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()
Konversi Artikel: Claude API
Daripada memposting log apa adanya, berikan "prompt konversi artikel" ke Claude API untuk memformatnya. Poin utama di sini adalah menentukan format artikel terlebih dahulu.
- Pertahankan format Q&A → alur percakapan mudah dipahami
- Jadikan artikel ringkasan → mudah dipindai dan dibaca
- Hibrida → pendahuluan + kutipan Q&A + kesimpulan
Contoh prompt:
prompt = f"""
Berdasarkan log konsultasi AI berikut, tuliskan artikel blog teknis.
- Gunakan heading H2/H3
- Gunakan blok kode secara tepat
- Usulkan 3 tag
- Format output: JSON {{ "title": "", "content": "", "tags": [] }}
---Log---
{raw_log}
"""
Posting WordPress: REST API
Menggunakan WP REST API, posting secara programatis dari luar dimungkinkan. Menggunakan Application Password untuk autentikasi adalah praktik terbaik saat ini.
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", # Selalu posting sebagai draf
"tags": tags,
}
response = requests.post(
"https://example.com/wp-json/wp/v2/posts",
json=payload,
headers=headers,
)
return response.json()
Poin yang Sering Membingungkan dalam Desain
Sejauh mana mempertahankan "keaslian" log
Percakapan dengan AI mencakup proses trial and error. Jika semuanya diformat, konteks "mengapa sampai pada kesimpulan itu" akan hilang. Dengan mempertahankan sebagian format Q&A, artikel menjadi lebih mudah untuk diikuti kembali oleh pembaca.
Pemberian tag dan kategori otomatis
Dengan menyertakan kandidat tag dalam respons Claude API, pekerjaan manual dapat dieliminasi sepenuhnya. Namun hingga akurasi stabil, lebih aman mempertahankan status posting draft untuk ditinjau manusia.
Pencegahan pemrosesan ganda
Karena watchdog memicu event setiap penyimpanan file, ada kasus di mana file yang sama diproses berkali-kali. Sebaiknya dicegah dengan DB yang mencatat file yang sudah diproses (SQLite sudah cukup) atau manajemen hash file.
Kesimpulan
Inti dari pipeline ini adalah "menentukan format output artikel terlebih dahulu". Setelah format ditentukan, desain prompt dan implementasi kode berjalan lancar.
Daripada mencoba mengotomatiskan segalanya dari awal, pendekatan yang realistis adalah memulai dengan alur konversi → tinjauan → publikasi manual, lalu beralih ke publikasi otomatis ketika kualitas sudah stabil. Percakapan dengan AI memiliki kualitas yang cukup untuk menjadi artikel blog jika diorganisir dengan baik. Sayang sekali jika dibiarkan terkubur.