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.
- Girdi — Sohbet günlüklerini Obsidian'ın Inbox klasörüne Markdown olarak kaydetme
- Tetikleyici — Dosya değişikliğini algılayıp işlemi başlatma
- İşlem — Claude API ile günlüğü blog makalesi formatına dönüştürme
- Çı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.