إنشاء نظام لنقل المواضيع بناءً على معايير معينة مثل الطابع الزمني

بالإشارة إلى تكامل روبوت الذكاء الاصطناعي، انظر Discourse AI - AI bot - Documentation / Site Management - Discourse Meta

النسخة المختصرة إذا كنت لا ترغب في قراءة القصة بأكملها: أريد استخدام روبوت الذكاء الاصطناعي لنقل المواضيع بناءً على “تاريخ الانتهاء” عن طريق التحقق من الطوابع الزمنية لمنشور ما.

لذلك كنت أفكر في طرق لتحسين الإدارة لحالة الاستخدام الخاصة بي لـ Discourse. أدير مجتمع ألعاب Roblox، ونستخدم Discourse لفريق الإشراف لدينا للقيام بمهام تسجيل إجراءات الإشراف على اللعبة وإجراءات Discord.

لدينا العديد من الفئات، بما في ذلك الحظر المؤقت. عندما نقوم بتسجيلاتنا، يتم ذلك كمنشور، ويقوم المشرف بملء تنسيق وإدراج الطوابع الزمنية ذات الصلة بالإجراء المتخذ على سبيل المثال حظر لمدة 7 أيام، على سبيل المثال المدة: 2026-03-01T05:00:00Z2026-03-08T05:00:00Z (الطابع الزمني هنا)

من جانب الإدارة، أضفت حظرًا مؤرشفًا عندما ينتهي الحظر. قبل ذلك… خمنت، كنا نقوم بذلك يدويًا، ونتحقق من الحظر مرة واحدة في الأسبوع.

في الخريف الماضي، أنشأت أداة بايثون [انظر أدناه] تعمل محليًا، مع واجهة برمجة تطبيقات Discourse، وتفتح قائمة وأختار أي قسم من الحظر أريد أرشفته، وتقوم بمعالجة هذه الحظور عن طريق التحقق من كل منشور بحثًا عن طابع زمني صالح وما إذا كان هذا الوقت قد انقضى. إنها تعمل بشكل جيد، لكنني أردت تحسينها أكثر…

وها نحن هنا.. آمل أنك ما زلت هنا، ربما يمكن تلخيص هذا كثيرًا، ولكن مهلاً، Discourse يدور حول المحادثة أليس كذلك؟

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

كانت مشكلتي في التكامل عبر المكون الإضافي متوقفة بسبب عدم فهم (أو الذكاء الاصطناعي) كيفية دمج واجهة مرئية في الواجهة (ليست ملونة مثل هذه مع إصدار بايثون، ولكنها منطقية بطريقة يمكن فهمها) على سبيل المثال زر كبير يقول “تشغيل عملية الأرشفة” واستخدام واجهة برمجة تطبيقات الإشراف (؟) لوضع علامة على تلك التي ليس لها تاريخ صالح أو أخطاء وما إلى ذلك.

لذا… ها نحن في نهاية النسخة الطويلة… أريد بعض المدخلات التي لا يمكنني الحصول عليها إلا من إنسان آخر، ولهذا السبب أنا هنا.

  • هل يمتلك روبوت الذكاء الاصطناعي هذه القدرة؟
  • إذا لم يكن كذلك، ما هو الحل المعقول الذي يجب أن أجربه؟
  • ما الذي أخطأت فيه في مسار المكون الإضافي، مما تسبب في عدم عمله ببساطة/أن يكون مؤلمًا (مثل الأخطاء الشائعة التي ارتكبتها عندما بدأت للتو في هذا المجتمع؟)

أقدر مدخلاتك. شكرًا.

إعجاب واحد (1)

لا أعتقد أنك بحاجة إلى اللجوء إلى الذكاء الاصطناعي لأي من هذا.

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

أيضًا… هل هناك أي سبب لانسحابك من نواة ديسكورس (Discourse core) هنا، لدينا بالفعل سجلات للمستخدمين المحظورين، لماذا لا تمنح المستخدمين الموثوق بهم إمكانية الوصول إلى استعلام مستكشف البيانات (Data Explorer) للاطلاع على السجل؟

يُستخدم المنتدى لتسجيل الحظر… هذا هو الغرض بأكمله. لا يوجد لاعبون في المنتدى… فقط مشرف اللعبة/الديسكورد. لا أعتقد أن مؤقت الموضوع سيعمل لأن فترات الحظر تختلف. أنا لا أبتعد عن Discourse Core بقدر ما أستغله لحالة استخدام محددة. (انظر الصورة)

إعجاب واحد (1)

حالة استخدام مثيرة للاهتمام!

أعتقد أنه سيكون من الأفضل لك إجراء بعض التغييرات:

نقل انتهاء صلاحية الحظر إلى حقل موضوع مخصص مخصص

سيسمح لك هذا بالتحقق من أن كل حظر له تاريخ انتهاء صلاحية عند إنشاء موضوع جديد، وسيُسهل الاستعلام عن الحظر منتهي الصلاحية.

يمكنك أيضًا استخدام تقديم قوالب نماذج تجريبية، والتي تمنحك أيضًا وصولًا برمجيًا إلى بيانات محددة في موضوع.

إضافة عوامل تصفية مخصصة /filter

باستخدام الحقل المخصص أو قالب النموذج، أصبح من السهل الآن إضافة عوامل تصفية /filter جديدة مثل الحظر منتهي الصلاحية، والحظر المؤرشف، وما إلى ذلك. ستصبح هذه بعد ذلك قوائم العمل الرئيسية للمشرفين، ويمكن إضافتها إلى الشريط الجانبي لسهولة الاستخدام.

أتمتة عمليات الحظر ككل؟

القطعة الأخيرة هي أن يقوم Discourse بإنشاء عمليات الحظر تلقائيًا على Roblox وDiscord كلما تم إنشاء موضوع، وكذلك إزالة عمليات الحظر تلقائيًا عند انتهاء صلاحيتها.

هذا سهل التنفيذ باستخدام مهمة متكررة والوصول إلى واجهة برمجة التطبيقات (API).


إذا كان لديك إعداد بيئة تطوير Discourse محلية، فيمكنك حتى تمرير منشوري هنا كمواصفات إلى Claude Code وسيقوم ببنائه في دقائق.

3 إعجابات

هذه نظرة مثيرة للاهتمام حقًا! سألقي نظرة على ذلك! خاصة الحقول والقوالب المخصصة. شكرًا لك على رأيك!

المزيد من الخلفية بما أنني يبدو أنني أثير اهتمامكم بحالة الاستخدام الخاصة بي… وأنا أحب المساهمة بأفكار لتجدها مجتمعات الألعاب الأخرى في السنوات القادمة…

لدي بالفعل حالة استخدام فريدة جدًا بالفعل. لقد استخدمنا تريلو (Trello) لسنوات، ولكن بسبب القيود التي بدأوا بفرضها، أصبحت الأمور فوضوية للغاية. اضطررنا إلى استخدام 10 مساحات عمل لإيواء فريقنا بأكمله. (ناهيك عن أنهم بدأوا في تقييد مستويات الوصول كميزة مدفوعة أيضًا)

لذا، مع استمرار الصراع مع تغييرات نموذج العمل، كان من الأسهل الانتقال إلى حل مستضاف ذاتيًا، لقد جربت برامج أخرى بأسلوب كانبان، ولكن مع الاستخدام التجريبي السابق لـ ديسكورس (Discourse)، وحقيقة أنه مفتوح المصدر، ويستخدم ممارسات أكثر حداثة للجزء الخلفي من الأشياء، لم أستطع مقاومة استخدامه، وأنا مندهش دائمًا من الإنجازات والنمو المستمر لهذه المنصة ككل. سبتمبر هو الذكرى السنوية الثانية لي منذ التحول، ولقد أنشأنا أكثر من 6000 موضوع!

الميزة التي كنت أحاول محاكاتها كانت تشبه تلك الحقبة، وهي أتمتة للانتقال من قائمة إلى أخرى عند تشغيل محدد (لذا بالنسبة لنا كان تاريخ الانتهاء). للأسف، إنها ميزة متميزة لا يمكنني حتى إظهارها بعد الآن.

image

سأعود إلى هنا بمجرد الانتهاء من الاستكشاف وإطلاعكم على ما حدث/ما فعلته خاصة من أجل الآخرين الذين يرون فكرة لاستخدام مماثل!

إعجابَين (2)

بمجرد تشغيل الإضافة الخاصة بك، يجب أن تكون قادرًا أيضًا على التصور كما كنت تفعل بفضل لوحة كانبان (Kanban Board)

إعجابَين (2)

حسنًا، أنا هنا مرة أخرى… مع قدر لا بأس به من التقدم. لقد أمضيت حوالي 6.5 ساعات في هذا.

بدأت ببعض المفاهيم بناءً على اقتراحاتك، ولكن كانت لدي بعض العيوب التي قادتني في النهاية إلى اتجاه آخر، ولكن آمل أن يكون المفهوم رائعًا لا يزال!

كنت أنوي في الأصل استخدام نماذج القوالب (Template Forms)، لكنني لم أكن راضيًا جدًا عن الحشو بين كل إجابة في السطر. كنت أبحث عن تنسيق يشبه مجموعتي الحالية. كما أنني لم أكن سعيدًا بالحاجة إلى كتابة كل شيء يدويًا في الكود، مما أبعدني.

لقد قمت بنقل سكربت بايثون الخاص بي إلى إضافة ديسكورس (Discourse Plugin) (يرجى ملاحظة أنه تم استخدام الذكاء الاصطناعي لغالبية عملية النقل). واجهت بعض المشاكل في البدء، والآن بعد أن أصبحت تعمل، ما زلت بحاجة إلى ضبطها بدقة. التصميم يبدو متكتلًا بعض الشيء، وربما هناك بعض المشكلات الأخرى المتفرقة. أنا لست جيدًا جدًا في لغة روبي (Ruby)، لذا فإن المراجعة هناك هي أفضل ما يمكنني تقديمه.

إذًا، بخصوص الإضافة…

المفهوم/الهدف: القدرة على نقل المواضيع بشكل أسرع من فئة إلى أخرى عبر محفزات محددة.

تأتي مع وضعين للتشغيل، وهما يدوي (Manual) وآلي (Automated) (مجدول).
لبناء المحفز، يمكنك تحديد الفئات “إلى” و “من”، ثم تضييق النطاق بمواصفات إضافية مثل العلامات (tags). المكالمة النهائية/المحفز الفعلي بخلاف المرشحات الضيقة، هو تشغيل المجموعة الحالية من المحفزات عن طريق وقت الانتهاء/الطابع الزمني (أو البدء)، أو الإغلاق، أو الحل، أو الأرشفة.

يوجد أيضًا ميزة سجلات (logs) تتضمن معلومات حول الموضوع الذي يتم نقله، ويمكنك تحديد المدة التي تظل فيها السجلات متاحة.

لم أقم باختبار محفزات الإغلاق أو الحل أو الأرشفة بالكامل حتى وقت هذا الرد.
بمجرد أن أقوم بتنظيفها أكثر قليلاً، واختبارها بشكل أكبر للتأكد من أن كل شيء يعمل، سأنشرها بكل سرور ليتمكن الآخرون من الوصول إليها في فئة الإضافات، ولكن في الوقت الحالي، سأتركها على جيت هب (GitHub) فقط. ربما أحتاج أيضًا إلى العودة ومراجعة الأذونات للتأكد من أن ليس أي شخص يمكنه تشغيلها. أو السماح بذلك بشكل محدد ليكون قابلاً للتبديل.

لا تتردد في إخباري بأفكارك، أو إذا كنت مجنونًا تمامًا بفعل هذا.

المصدر: https://github.com/jdc20181/DiscourseTopicMigrationTool