Obsidian'daki AI Danışma Günlüklerini WordPress'e Otomatik Gönderen Bir Pipeline Oluşturdum

Obsidian'daki AI Danışma Günlüklerini WordPress'e Otomatik Gönderen Bir Pipeline Oluşturdum

Obsidian'daki AI Danışma Günlüklerini WordPress'e Otomatik Gönderen Bir Pipeline Oluşturdum

Giriş

Yapay zeka ile teknik konular hakkında danışırken zaman zaman "bu konuşma daha sonra işime yarayacak" diye düşündüğünüz anlar olur. Ancak gerçekte, sohbet geçmişleri gömülüp gider ve çoğunlukla bilgi olarak değerlendirilemez.

Bu makalede, Obsidian'a kopyala-yapıştır yapılan AI danışma günlüklerini otomatik olarak blog makalesine dönüştüren ve WordPress'e taslak olarak yayınlayan pipeline'ın tasarımını ve uygulama noktalarını tanıtıyorum. Aynı sorunu yaşayanlara faydalı olmasını umuyorum.


Pipeline'a Genel Bakış

İşlem akışı basitçe 4 adıma bölünebilir.

  1. Girdi — Sohbet günlüklerini Obsidian'ın Inbox klasörüne Markdown olarak kaydetme
  2. Tetikleyici — Dosya değişikliğini algılayıp işlemi başlatma
  3. İşlem — Claude API ile günlüğü blog makalesi formatına dönüştürme
  4. Çıktı — WordPress REST API ile taslak olarak otomatik yayınlama
Obsidian (Markdown)
  └─ watchdog (dosya izleme)
       └─ Claude API (makale dönüştürme)
            └─ WP REST API (taslak yayınlama)

Teknoloji Yığını Seçimi

Dosya İzleme: Python watchdog

Python'un watchdog kütüphanesi, belirtilen dizindeki değişiklik olaylarını gerçek zamanlı olarak algılayabilir. Obsidian her kaydettiğinde olay tetiklendiğinden, tetikleyici olarak idealdir.

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()

Makale Dönüştürme: Claude API

Günlüğü olduğu gibi yayınlamak yerine, Claude API'ye "makale dönüştürme promptu" aktararak biçimlendirme yapılır. Buradaki önemli nokta makale formatını önceden belirlemektir.

  • S&C formatında bırakmak → konuşmanın akışını aktarmak kolaylaşır
  • Özet makaleye dönüştürmek → taramak ve okumak kolaydır
  • Hibrit → giriş + S&C alıntıları + özet

Prompt örneği:

prompt = f"""
Aşağıdaki AI danışma günlüğüne dayanarak bir teknik blog makalesi yazın.
- H2/H3 başlıkları kullanın
- Kod bloklarını uygun şekilde kullanın
- 3 etiket önerin
- Çıktı formatı: JSON {{ "title": "", "content": "", "tags": [] }}

---Günlük---
{raw_log}
"""

WordPress Yayınlama: REST API

WP REST API kullanarak dışarıdan programatik olarak yayın yapılabilir. Kimlik doğrulama için Application Password kullanmak mevcut en iyi uygulamadır.

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",  # Her zaman taslak olarak yayınla
        "tags": tags,
    }
    
    response = requests.post(
        "https://example.com/wp-json/wp/v2/posts",
        json=payload,
        headers=headers,
    )
    return response.json()

Tasarımda Kararsız Kalınan Noktalar

Günlüğün "ham hali" ne kadar korunsun

Yapay zeka ile etkileşimler, deneme yanılma sürecini içerir. Hepsini biçimlendirirseniz, "neden o sonuca ulaşıldı" bağlamı kaybolur. S&C formatının bir kısmını korumak, okuyucuların deneyimi yeniden yaşamasını kolaylaştırır.

Etiket ve Kategori Otomatik Atama

Claude API yanıtına etiket adaylarını dahil etmek, manuel çalışmayı sıfıra indirebilir. Ancak doğruluk istikrar kazanana kadar yayın durumunu draft tutup insan incelemesi yapan bir işleyiş daha güvenlidir.

Çift İşlemeyi Önleme

watchdog her dosya kaydında olay tetiklediğinden, aynı dosyanın birden fazla kez işlendiği durumlar olabilir. İşlenen dosyaları kaydeden bir DB (SQLite yeterli) veya dosya hash yönetimiyle önlenmesi önerilir.


Özet

Bu pipeline'ın özü "makale çıktı formatını önce belirlemek"tir. Format belirlendikten sonra, prompt tasarımı ve kod uygulaması sorunsuz ilerler.

Her şeyi baştan otomatikleştirmeye çalışmak yerine, dönüştürme → inceleme → manuel yayınlama akışıyla başlayıp kalite istikrar kazandığında otomatik yayınlamaya geçmek gerçekçi bir yaklaşımdır. Yapay zeka ile sohbetler, organize edildiğinde blog makalesi olmaya yeterli kaliteye sahiptir. Gömülüp gitmesi çok yazık.