커스텀 헬퍼 프롬프트 설정 방법

디스커스 헬퍼에서 사용자 지정 프롬프트를 활성화하는 방법에 대해 고민하고 있습니다.

현재까지 제가 해낸 최선은 AI 봇을 통해 에이전트에서 이 프롬프트를 사용하는 것이었습니다. 예를 들어, 특정 함수를 사용하면 복사한 링크의 게시물을 간략하게 작성해 줍니다. 이 기능은 훌륭하게 작동하지만, 개인 메시지를 주제로 변환하고, 위치를 이동한 후, 태그를 추가하는 과정이 매우 번거롭습니다.

원하는 동작 방식은 초기 프롬프트를 다시 붙여넣을 필요 없이, 헬퍼에 이미 설정된 기능에 동일한 기능을 추가할 수 있도록 하는 것입니다.

결국 현재 사용 가능하지만(우리 커뮤니티에서는 아직 사용되지 않는) Discourse에 이미 포함된 헬퍼를 재사용하게 되었습니다.

위치 설정 값 레이블 이름 변경 (Customize → Text)
Ask AI (게시물/주제) ai_helper_translator_agent custom search agent discourse_ai.ai_helper.prompts.translate → custom search label
Composer Translate ai_helper_markdown_tables_agent built-in Translator agent discourse_ai.ai_helper.prompts.markdown_table → Translate
Composer Markdown formatter ai_helper_smart_dates_agent Markdown formatter agent (moved) discourse_ai.ai_helper.prompts.replace_dates → Format as 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 또는 기타 어떤 아이콘 세트에든 번들링할 수 있습니다.