Discourse AI لا تحترم مجموعة "الجميع"

يبدو أن هذه هي نفس المشكلة المعروفة التي تسبب مشاكل مع القوالب.
everyone-group-unable-to-see-private-templates

في هذه الحالة، تظهر خيارات ai-bot، لكن الروبوت لا يستجيب أبدًا.

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

شكراً للبحث عن المشكلات السابقة! :sunglasses: :+1:

أعتقد أن نفس الشيء ينطبق هنا:

لا يمكنك منح المستخدمين المجهولين حق الوصول إلى روبوت الدردشة، لذا فإن استخدام trust_level_0 هو حل فعال لحالتك. :slight_smile:

8 إعجابات

@Roman أثناء مراجعة الكود في Discourse، أعتقد أن هذا يعمل الآن.

هل حان الوقت لإغلاق هذا وإزالة كود التوافق القديم؟

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

لا تزال هذه مشكلة. إذا تم تعيين “مجموعات مسموح بها لروبوت الذكاء الاصطناعي” على everyone، فإن الروبوت لا يستجيب.

أعتقد أن الخطأ يكمن هنا

return false if (SiteSetting.ai_bot_allowed_groups_map & post.user.group_ids).blank?

إذا كان الإعداد هو everyone، فإن هذا يُرجع خطأ، لأن 0 ليس ضمن post.user.group_ids

النمط الصحيح هو !user.in_any_groups?(SiteSetting.ai_bot_allowed_groups_map)

والذي يحتوي على حالة خاصة لـ everyone:

  def in_any_groups?(group_ids)
    group_ids.include?(Group::AUTO_GROUPS[:everyone]) ||
      (is_system_user? && (Group.auto_groups_between(:admins, :trust_level_4) & group_ids).any?) ||
      (group_ids & belonging_to_group_ids).any?
  end
4 إعجابات