カスタムヘルパープロンプトの設定方法

Discourseヘルパーでカスタムプロンプトを有効にすることについて考えています。

現時点で実現できているのは、AI Bot経由のエージェントからそれらを使用することだけです。例えば、特定の関数では、貼り付けられたリンクから投稿を簡潔に作成してくれます。動作は非常に良いのですが、パーソナルメッセージをトピックに変換し、移動して、さらにタグを追加する一連の作業は手間がかかります。

望ましい動作としては、初期プロンプトを再度貼り付けることなく、ヘルパーに既に設定済みの機能に同じ機能を追加できるようにすることです。

結局、現在利用可能だが(コミュニティでは未使用)Discourseに同梱されているヘルパーを再利用することになりました。

場所 設定 設定値 ラベルの名前変更(カスタマイズ → テキスト)
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

次に、スニペットを2つ:

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、またはその他のアイコンセットにバンドルできます。