ما هي العملية الصحيحة للأتمتة المخصصة؟

أنا مبتدئ ولدي بعض الأسئلة حول إنشاء أتمتة مخصصة (Create Custom Automations).

لقد حاولت لأول مرة كتابة برنامج نصي للأتمتة مباشرة في بيئة التطوير GitHub Codespace (أنا لا أفهم القواعد البرمجية، وقد كتب كلود الكود).
بعد التعديل، يجب أن يكون هيكل الملفات كما يلي:

plugins/automation/
├── lib/
│   └── discourse_automation/
│       ├── scripts.rb                 # تم التعديل
│       └── scripts/
│           ├── ...                    # نصوص برمجية أخرى
│           └── remove_expired_group_members.rb  # مضاف حديثًا
└── config/
    └── locales/
        ├── server.en.yml              # تم التعديل
        ├── client.en.yml              # تم التعديل
        ├── server.zh_CN.yml           # تم التعديل
        └── client.zh_CN.yml           # تم التعديل

لكنني لست متأكدًا مما إذا كان يمكنني القيام بذلك في بيئة الإنتاج.
أيضًا، لست متأكدًا مما إذا كانت هذه التعديلات ستضيع مع إعادة البناء (rebuild) أو تحديث إضافة الأتمتة (automation plugin)، لذلك لا أجرؤ على تجربتها في بيئة الإنتاج. ربما يجب تقديم طلب ميزة ليضيفها مطورو الإضافة؟

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

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

أعتقد أنه سيتعين أن يكون في إضافة (plugin) جديدة.
يمكنك الاطلاع على:

3 إعجابات

لقد اطلعت على الرابط الذي قدمته
هل يمكنك أن تشرح لي لماذا يجب استخدام المكونات الإضافية (plugins) بدلاً من إنشاء البرامج النصية (scripts) داخل الأتمتة (automation)؟

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

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

4 إعجابات

حسنًا، هذا ما كنت أخشاه
إذًا، هل الميزات الآلية المخصصة لا تعني الكثير للمستخدمين؟ :joy:
سأراجع المستندات مرة أخرى، وإذا لم ينجح الأمر، فسأحاول إنشاء إضافة (plugin).

إعجابَين (2)

أعتقد أن البرنامج التعليمي (وهو مسودة) يفتقر إلى هذه المعلومات. إنه يشرح كيفية إنشاء عمليات أتمتة جديدة، ولكن ليس أين يتم ذلك. تذكر الإجابات أمثلة إضافات (plugins)، مثل تلك التي أشار إليها @NateDhaliwal.

يقترح سايمون أيضًا إلقاء نظرة على إضافة مستكشف البيانات: Create custom Automations - #6 by simon.

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

بما أنك ذكرت أنك لا تفهم الكود، ولكن يمكنك استخدام الذكاء الاصطناعي لهذا الغرض، فربما تجد هذه المناقشة مثيرة للاهتمام. Claude & Discourse-related development. How good is it?.

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

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

3 إعجابات

لا. ما يجعلها أتمتة مخصصة هو أنها ليست أتمتة مدمجة. ستحتاج إلى إضافة واحدة جديدة في إضافة (plugin). https://github.com/scossar/automation-script-example، وهو رابط موجود في البرنامج التعليمي. يمكنك البدء بهذا ومحاولة إخبار أي ذكاء اصطناعي تريده بإضافة تخصيص جديد.

ماذا تريد أن تفعل الأتمتة المخصصة الخاصة بك؟

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

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

على سبيل المثال:
الإعداد: مجموعة VIP، مدة 30 يومًا.
بمجرد انضمام المستخدم إلى مجموعة VIP، تتم إزالته بعد 30 يومًا.

أنا مرتبك بشكل متزايد بشأن ما إذا كان المكون الإضافي للأتمتة يمكنه حفظ البرامج النصية الآلية التي أكتبها بنفسي (تشير التعليقات السابقة إلى أنه سيتم الكتابة فوقها).

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

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

لا تتم إزالة الأتمتة، ولكن يتم تعديل الكود في الحاوية الخاصة بك.

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

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