我建立了一個將Obsidian中AI諮詢記錄自動發布到WordPress的流水線

我建立了一個將Obsidian中AI諮詢記錄自動發布到WordPress的流水線

我建立了一個將Obsidian中AI諮詢記錄自動發布到WordPress的流水線

前言

與AI進行技術諮詢時,有時會有「這段對話以後會有用」的感覺。然而實際上,聊天記錄往往被埋沒,無法作為知識加以利用。

本文介紹將貼到Obsidian中的AI諮詢記錄自動轉化為部落格文章、以草稿形式發布到WordPress的流水線的設計與實作要點。希望能為有同樣困擾的人提供參考。


流水線全貌

處理流程簡單分為4個步驟。

  1. 輸入 — 將聊天記錄以Markdown格式儲存到Obsidian的Inbox資料夾
  2. 觸發 — 偵測檔案變化並啟動處理
  3. 處理 — 用Claude API將記錄轉換為部落格文章格式
  4. 輸出 — 透過WordPress REST API自動發布為草稿
Obsidian (Markdown)
  └─ watchdog(檔案監控)
       └─ Claude API(文章轉換)
            └─ WP REST API(草稿發布)

技術堆疊選型

檔案監控:Python watchdog

Python的watchdog函式庫能即時偵測指定目錄的變更事件。由於Obsidian每次儲存時都會觸發事件,用作觸發器再合適不過。

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

文章轉換:Claude API

不直接發布記錄,而是將「文章化prompt」傳入Claude API進行格式化。這裡的關鍵是事先確定文章格式

  • 保留問答形式 → 易於傳達對話脈絡
  • 轉為摘要文章 → 便於快速瀏覽和閱讀
  • 混合形式 → 引言 + 問答摘錄 + 總結

Prompt範例:

prompt = f"""
請根據以下AI諮詢記錄,撰寫一篇技術部落格文章。
- 使用H2/H3標題
- 適當使用程式碼區塊
- 提議3個標籤
- 輸出格式:JSON {{ "title": "", "content": "", "tags": [] }}

---記錄---
{raw_log}
"""

WordPress發布:REST API

使用WP REST API可從外部以程式方式發布。目前使用Application Password進行認證是最佳實踐。

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",  # 必須以草稿形式發布
        "tags": tags,
    }
    
    response = requests.post(
        "https://example.com/wp-json/wp/v2/posts",
        json=payload,
        headers=headers,
    )
    return response.json()

設計中容易糾結的地方

保留多少記錄的「原始感」

與AI的互動包含試錯過程。全部格式化之後,「為何得出該結論」的上下文就會消失。保留部分問答形式,可以讓讀者更容易重現思考過程。

標籤與分類的自動指派

在Claude API的回應中包含標籤候選,可以將手動工作降為零。但在精度穩定之前,將發布狀態設為draft讓人工審核的運作方式更為穩妥。

防止重複處理

由於watchdog每次檔案儲存都會觸發事件,可能出現同一檔案被處理多次的情況。用記錄已處理檔案的DB(SQLite足矣)或檔案雜湊管理來防止是個好辦法。


總結

這條流水線的核心是「先確定文章輸出格式」。格式確定後,prompt設計和程式碼實作都會順暢推進。

不必一開始就把一切都自動化,從轉換→審核→手動發布的流程開始,待品質穩定後再切換至自動發布,這才是現實的做法。與AI的對話,整理之後完全具備成為部落格文章的品質。讓它們被埋沒實在可惜。