كيف تضبط أوامر المساعدة المخصصة؟

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

الموقع الإعداد القيمة إعادة تسمية التسمية (تخصيص → نص)
استفسار الذكاء الاصطناعي (المنشورات/المواضيع) ai_helper_translator_agent وكيل البحث المخصص discourse_ai.ai_helper.prompts.translate → تسمية البحث المخصص
ترجمة المحرر ai_helper_markdown_tables_agent وكيل الترجمة المدمج discourse_ai.ai_helper.prompts.markdown_table → ترجمة
منسّق Markdown في المحرر ai_helper_smart_dates_agent وكيل منسّق Markdown (تم نقله) discourse_ai.ai_helper.prompts.replace_dates → تنسيق كـ Markdown

ثم مقتطفان:

javascripts/discourse/api-initializers/ai-helper-slots.gjs

import { apiInitializer } from "discourse/lib/api";

const AI_HELPER_ICONS = {
  translate: "ph-dt-magnifying-glass", // for forum search agent
  markdown_table: "ph-dt-translate", // composer: built-in Translator
  replace_dates: "ph-dt-markdown", // composer: Markdown formatter
};

export default apiInitializer((api) => {
  api.getCurrentUser()?.ai_helper_prompts?.forEach((prompt) => {
    prompt.icon = AI_HELPER_ICONS[prompt.name] ?? prompt.icon;
  });
});

common.scss

.ai-composer-helper-menu ul.ai-helper-options li[data-value="translate"] {
  display: none;
}

ملاحظة: أنا أستخدم مجموعة أيقونات Phosphor مخصصة؛ يمكن دمج الأيقونات الجديدة في Font Awesome أو Material أو أي مجموعة أيقونات أخرى.