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