بنيت خطوطاً لنشر سجلات استشارات الذكاء الاصطناعي من Obsidian إلى WordPress تلقائياً

بنيت خطوطاً لنشر سجلات استشارات الذكاء الاصطناعي من Obsidian إلى WordPress تلقائياً

بنيت خطوطاً لنشر سجلات استشارات الذكاء الاصطناعي من Obsidian إلى WordPress تلقائياً

مقدمة

عندما تتحدث مع الذكاء الاصطناعي حول مسائل تقنية، يأتيك إحساس أحياناً بأن "هذه المحادثة ستفيدني لاحقاً". لكن في الواقع، كثيراً ما تنغمر سجلات المحادثات ولا يُستفاد منها كمعرفة.

في هذه المقالة، أقدّم تصميم وتفاصيل تنفيذ خط أنابيب يحوّل سجلات استشارات الذكاء الاصطناعي الملصوقة في Obsidian إلى مقالات مدونة وينشرها تلقائياً كمسودات على WordPress. آمل أن يفيد من يواجهون نفس التحدي.


النظرة العامة على خط الأنابيب

تنقسم العملية ببساطة إلى 4 خطوات:

  1. المدخلات — حفظ سجلات المحادثات كـ Markdown في مجلد Inbox في Obsidian
  2. التشغيل — اكتشاف تغييرات الملف وبدء المعالجة
  3. المعالجة — تحويل السجل إلى تنسيق مقالة مدونة باستخدام Claude API
  4. المخرجات — النشر التلقائي كمسودة عبر WordPress REST API
Obsidian (Markdown)
  └─ watchdog (مراقبة الملفات)
       └─ Claude API (تحويل المقالة)
            └─ WP REST API (نشر المسودة)

اختيار مكدس التقنيات

مراقبة الملفات: Python watchdog

مكتبة watchdog في Python يمكنها اكتشاف أحداث التغيير في المجلد المحدد في الوقت الفعلي. بما أن الحدث يُطلق في كل مرة يحفظ فيها 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"""
بناءً على سجل استشارات الذكاء الاصطناعي التالي، اكتب مقالة مدونة تقنية.
- استخدم عناوين 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()

النقاط التي يصعب تحديدها في التصميم

إلى أي مدى تحافظ على "الطابع الأصلي" للسجل

تتضمن محادثاتك مع الذكاء الاصطناعي عملية التجربة والخطأ. إذا نسّقت كل شيء، يضيع سياق "كيف توصلت إلى هذه النتيجة". بالإبقاء على جزء من تنسيق سؤال وجواب، تصبح المقالة أسهل للقراء الذين يريدون إعادة تجربة نفس المسار.

الإسناد التلقائي للوسوم والفئات

بتضمين مرشحي الوسوم في استجابة Claude API، يمكن إلغاء العمل اليدوي تماماً. لكن حتى تستقر الدقة، من الأسلم تعيين حالة النشر على draft وإخضاعه لمراجعة بشرية.

منع المعالجة المزدوجة

بما أن watchdog يُطلق حدثاً في كل حفظ للملف، قد يُعالج نفس الملف أكثر من مرة. من الأفضل منع ذلك بقاعدة بيانات لتسجيل الملفات المعالجة (SQLite كافٍ) أو إدارة هاش الملف.


خلاصة

جوهر هذا الخط هو "تحديد تنسيق مخرجات المقالة أولاً". بمجرد تحديد التنسيق، يسير تصميم prompt وتنفيذ الكود بسلاسة.

بدلاً من محاولة أتمتة كل شيء من البداية، الأسلوب العملي هو البدء بسير عمل تحويل → مراجعة → نشر يدوي، ثم التحويل إلى النشر التلقائي عندما تستقر الجودة. محادثاتك مع الذكاء الاصطناعي تمتلك جودة كافية لتصبح مقالات مدونة إذا نظّمتها. من المؤسف إهدارها.