Cómo configurar prompts de ayuda personalizados

Estoy pensando en habilitar algunos prompts personalizados en el asistente de Discourse.

Por ahora, lo máximo que he logrado es utilizarlos desde agentes a través del AI Bot. Una función, por ejemplo, desarrolla brevemente un mensaje a partir de un enlace pegado. Funciona muy bien, pero es mucho trabajo transformar el mensaje personal en un tema, moverlo y luego añadir etiquetas.

El comportamiento deseado permitiría añadir esa misma funcionalidad a los ya establecidos en el asistente, sin necesidad de pegar el prompt inicial de nuevo.

Vale, al final terminé reutilizando helpers que están disponibles actualmente (aunque no se usan en nuestra comunidad) y que ya se incluyen con Discourse.

Dónde Configuración Establecido en Renombrar etiqueta (Personalizar → Texto)
Preguntar a la IA (publicaciones/temas) ai_helper_translator_agent Agente de búsqueda personalizado discourse_ai.ai_helper.prompts.translate → etiqueta de búsqueda personalizada
Traducción en el compositor ai_helper_markdown_tables_agent Agente de traducción integrado discourse_ai.ai_helper.prompts.markdown_table → Traducir
Formateador Markdown en el compositor ai_helper_smart_dates_agent Agente de formateador Markdown (movido) discourse_ai.ai_helper.prompts.replace_dates → Formatear como Markdown

Luego, dos fragmentos de código:

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

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

const AI_HELPER_ICONS = {
  translate: "ph-dt-magnifying-glass", // para el agente de búsqueda del foro
  markdown_table: "ph-dt-translate", // compositor: traductor integrado
  replace_dates: "ph-dt-markdown", // compositor: formateador 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: estoy utilizando un conjunto de iconos Phosphor personalizado; los nuevos iconos pueden integrarse en Font Awesome, Material o cualquier otro conjunto de iconos.