diff --git a/app/serializers/localized_ai_persona_serializer.rb b/app/serializers/localized_ai_persona_serializer.rb
index 90e14c0d..b2e75fd4 100644
--- a/app/serializers/localized_ai_persona_serializer.rb
+++ b/app/serializers/localized_ai_persona_serializer.rb
@@ -56,8 +56,6 @@ class LocalizedAiPersonaSerializer < ApplicationSerializer
end
def features
- object.features.map do |feature|
- { id: feature.module_id, module_name: feature.module_name, name: feature.name }
- end
+ object.features.map { |feature| { id: feature.module_id, name: feature.module_name } }
end
end
diff --git a/assets/javascripts/discourse/components/ai-persona-list-editor.gjs b/assets/javascripts/discourse/components/ai-persona-list-editor.gjs
index 77b8eb21..ee201de5 100644
--- a/assets/javascripts/discourse/components/ai-persona-list-editor.gjs
+++ b/assets/javascripts/discourse/components/ai-persona-list-editor.gjs
@@ -4,6 +4,7 @@ import { concat, fn, hash } from "@ember/helper";
import { action } from "@ember/object";
import { LinkTo } from "@ember/routing";
import { service } from "@ember/service";
+import { gt } from "truth-helpers";
import DBreadcrumbsItem from "discourse/components/d-breadcrumbs-item";
import DButton from "discourse/components/d-button";
import DPageSubheader from "discourse/components/d-page-subheader";
@@ -59,7 +60,7 @@ export default class AiPersonaListEditor extends Component {
if (this.featureFilter !== "all") {
personas = personas.filter((persona) =>
(persona.features || []).some(
- (feature) => feature.module_name === this.featureFilter
+ (feature) => feature.name === this.featureFilter
)
);
}
@@ -76,7 +77,11 @@ export default class AiPersonaListEditor extends Component {
feature.name?.toLowerCase().includes(term)
);
- return textMatches || featureMatches;
+ const llmMatches = persona.default_llm?.display_name
+ ?.toLowerCase()
+ .includes(term);
+
+ return textMatches || featureMatches || llmMatches;
});
}
@@ -87,8 +92,8 @@ export default class AiPersonaListEditor extends Component {
let features = [];
(this.args.personas || []).forEach((persona) => {
(persona.features || []).forEach((feature) => {
- if (feature?.module_name && !features.includes(feature.module_name)) {
- features.push(feature.module_name);
+ if (feature?.name && !features.includes(feature.name)) {
+ features.push(feature.name);
}
});
});
@@ -98,9 +103,9 @@ export default class AiPersonaListEditor extends Component {
value: "all",
label: i18n("discourse_ai.ai_persona.filters.all_features"),
},
- ...features.map((module_name) => ({
- value: module_name,
- label: i18n(`discourse_ai.features.${module_name}.name`),
+ ...features.map((name) => ({
+ value: name,
+ label: i18n(`discourse_ai.features.${name}.name`),
})),
];
}
@@ -248,6 +253,7 @@ export default class AiPersonaListEditor extends Component {
@@ -274,22 +280,43 @@ export default class AiPersonaListEditor extends Component {
- {{i18n "discourse_ai.ai_persona.name"}}
+ {{i18n "discourse_ai.llms.short_title"}}
{{i18n "discourse_ai.features.short_title"}}