1
0
mirror of synced 2026-08-31 20:14:59 +00:00

FEATURE: Use Persona's when scanning posts for spam (#1465)

This commit is contained in:
Roman Rizzi
2025-06-27 10:35:47 -03:00
committed by GitHub
parent cc4e9e030f
commit b35f9bcc7c
17 changed files with 375 additions and 143 deletions
@@ -35,6 +35,7 @@ export default class AiSpam extends Component {
};
@tracked isEnabled = false;
@tracked selectedLLM = null;
@tracked selectedPersonaId = null;
@tracked customInstructions = "";
@tracked errors = [];
@@ -98,6 +99,7 @@ export default class AiSpam extends Component {
}
this.customInstructions = model.custom_instructions;
this.stats = model.stats;
this.selectedPersonaId = model.ai_persona_id;
}
get availableLLMs() {
@@ -133,6 +135,11 @@ export default class AiSpam extends Component {
this.selectedLLM = value;
}
@action
async updatePersona(value) {
this.selectedPersonaId = value;
}
@action
async save() {
try {
@@ -141,6 +148,7 @@ export default class AiSpam extends Component {
data: {
llm_model_id: this.llmId,
custom_instructions: this.customInstructions,
ai_persona_id: this.selectedPersonaId,
},
});
this.toasts.success({
@@ -256,6 +264,18 @@ export default class AiSpam extends Component {
{{/if}}
</div>
<div class="ai-spam__persona">
<label class="ai-spam__persona-label">{{i18n
"discourse_ai.spam.select_persona"
}}</label>
<ComboBox
@value={{this.selectedPersonaId}}
@content={{@model.available_personas}}
@onChange={{this.updatePersona}}
class="ai-spam__persona-selector"
/>
</div>
<div class="ai-spam__instructions">
<label class="ai-spam__instructions-label">
{{i18n "discourse_ai.spam.custom_instructions"}}