Sto pensando di abilitare alcune prompt personalizzate nell’helper di Discourse.
Al momento, il massimo che sono riuscito a fare è utilizzarle dagli agenti tramite l’AI Bot. Una funzione, ad esempio, sviluppa brevemente un post a partire da un link incollato. Funziona benissimo, ma richiede molto lavoro per trasformare il messaggio personale in un argomento, spostarlo e poi aggiungere i tag.
Il comportamento desiderato consentirebbe di aggiungere la stessa funzionalità a quelli già stabiliti nell’helper, senza dover incollare di nuovo la prompt iniziale.
Ok, alla fine ho deciso di riutilizzare degli helper già disponibili (ma non utilizzati nella nostra community) e già inclusi in Discourse.
| Dove |
Impostazione |
Imposta su |
Rinomina etichetta (Personalizza → Testo) |
| Chiedi all’AI (post/argomenti) |
ai_helper_translator_agent |
Agente di ricerca personalizzato |
discourse_ai.ai_helper.prompts.translate → etichetta di ricerca personalizzata |
| Traduzione nel Compositore |
ai_helper_markdown_tables_agent |
Agente Traduttore integrato |
discourse_ai.ai_helper.prompts.markdown_table → Traduci |
| Formattatore Markdown nel Compositore |
ai_helper_smart_dates_agent |
Agente formattatore Markdown (spostato) |
discourse_ai.ai_helper.prompts.replace_dates → Formatta come Markdown |
Poi due snippet:
javascripts/discourse/api-initializers/ai-helper-slots.gjs
import { apiInitializer } from "discourse/lib/api";
const AI_HELPER_ICONS = {
translate: "ph-dt-magnifying-glass", // per l'agente di ricerca del forum
markdown_table: "ph-dt-translate", // compositore: Traduttore integrato
replace_dates: "ph-dt-markdown", // compositore: formattatore Markdown
};
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;
}
Nota: sto utilizzando un set di icone Phosphor personalizzato; le nuove icone possono essere incluse in Font Awesome, Material o in qualsiasi altro set di icone.