📘 بناء أداة تلخيص تلقائي للمقالات (RSS → Python → OpenAI → Notion)
سننشئ أداة تُراقب أي RSS، تجمع الروابط الجديدة، تستخرج نص المقال، تُلخّصه باستخدام واجهة OpenAI، ثم تحفظ الملخّص تلقائيًا في قاعدة بيانات Notion. يمكنك تشغيلها يدويًا أو عبر جدولة/Zap.
💡 الفكرة
التصنيف: دروس الذكاء الاصطناعي — المستوى: مبتدئ/متوسط — المدة: 45–60 دقيقة
🧰 المتطلبات
- حساب OpenAI ومفتاح API فعّال.
- مساحة عمل Notion وقاعدة بيانات (Database) لحفظ الملخصات.
- Python 3.10+ على جهازك.
- رابط RSS لمصدر الأخبار/المدوّنة.
- (اختياري) حساب Zapier لتشغيل الكود عند ورود عنصر RSS جديد.
🔧 الخطوة 1: فهم RSS واختيار المصدر
RSS صيغة معيارية لبث المحتوى المُحدّث (عناوين/ملخص/رابط). ستجد رابط RSS في كثير من المواقع أو عبر أيقونة RSS البرتقالية. سنستخدم الرابط كمدخل للأداة.
🗂️ الخطوة 2: تجهيز قاعدة بيانات في Notion
- أنشئ Database في Notion بعنوان مثل: AI Summaries.
- أضِف الخصائص التالية:
- Title (عنوان الصفحة) — نوعه Title.
- URL — نوعه URL.
- Source — نص قصير.
- Summary — نص طويل.
- Published — تاريخ/وقت (اختياري).
- أنشئ تكامل Integration من Notion Developers، وامنحه صلاحية الوصول لقاعدة البيانات، واحتفظ بـ
NOTION_TOKENوDATABASE_ID. راجع مرجع الإنشاء عبر API إذا احتجت ضبطًا أدق.
🔐 الخطوة 3: حفظ المفاتيح كمتغيرات بيئية
# macOS/Linux
export OPENAI_API_KEY="ضع_المفتاح_هنا"
export NOTION_TOKEN="ضع_رمز_نوتشن"
export NOTION_DATABASE_ID="ضع_معرّف_القاعدة"
📦 الخطوة 4: تثبيت الحزم
pip install feedparser trafilatura requests python-dotenvfeedparser لقراءة RSS، وtrafilatura لاستخراج نص المقال من HTML، وrequests لإرسال الطلبات إلى Notion.
🤖 الخطوة 5: كود Python الكامل
ينفّذ: قراءة RSS → تنزيل نص المقال → تلخيص عبر OpenAI → إنشاء صفحة في Notion.
import os, time, feedparser, requests
from datetime import datetime
import trafilaturaOPENAI_API_KEY = os.environ["OPENAI_API_KEY"]
NOTION_TOKEN = os.environ["NOTION_TOKEN"]
NOTION_DB = os.environ["NOTION_DATABASE_ID"]RSS_URL = "https://example.com/feed" # استبدلها بخلاصة RSS الخاصة بك# 1) قراءة RSS
feed = feedparser.parse(RSS_URL)
items = feed.entries[:5] # جرّب على آخر 5 عناصرdef fetch_article_text(url: str) -> str:
downloaded = trafilatura.fetch_url(url, timeout=20)
return trafilatura.extract(downloaded) or ""def summarize(text: str, title: str) -> str:
...تابع القراءة
سجل دخولك مجاناً لقراءة المقال كاملاً والوصول إلى أدوات الذكاء الاصطناعي.
تسجيل الدخول / إنشاء حساب