Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.

Commit 22da440

Browse files
authored
UX: add features to persona list and other style updates (#1405)
1 parent 02bc9f6 commit 22da440

File tree

5 files changed

+467
-32
lines changed

5 files changed

+467
-32
lines changed

app/controllers/discourse_ai/admin/ai_personas_controller.rb

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@ class AiPersonasController < ::Admin::AdminController
99

1010
def index
1111
ai_personas =
12-
AiPersona.ordered.map do |persona|
13-
# we use a special serializer here cause names and descriptions are
14-
# localized for system personas
15-
LocalizedAiPersonaSerializer.new(persona, root: false)
16-
end
12+
AiPersona
13+
.ordered
14+
.includes(:user, :uploads)
15+
.map { |persona| LocalizedAiPersonaSerializer.new(persona, root: false) }
16+
1717
tools =
1818
DiscourseAi::Personas::Persona.all_available_tools.map do |tool|
1919
AiToolSerializer.new(tool, root: false)
2020
end
21+
2122
AiTool
2223
.where(enabled: true)
2324
.each do |tool|
@@ -31,10 +32,12 @@ def index
3132
),
3233
}
3334
end
35+
3436
llms =
3537
DiscourseAi::Configuration::LlmEnumerator.values_for_serialization(
3638
allowed_seeded_llm_ids: SiteSetting.ai_bot_allowed_seeded_models_map,
3739
)
40+
3841
render json: {
3942
ai_personas: ai_personas,
4043
meta: {

app/serializers/localized_ai_persona_serializer.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ class LocalizedAiPersonaSerializer < ApplicationSerializer
3232
:allow_personal_messages,
3333
:force_default_llm,
3434
:response_format,
35-
:examples
35+
:examples,
36+
:features
3637

3738
has_one :user, serializer: BasicUserSerializer, embed: :object
3839
has_many :rag_uploads, serializer: UploadSerializer, embed: :object
@@ -53,4 +54,10 @@ def description
5354
def default_llm
5455
LlmModel.find_by(id: object.default_llm_id)
5556
end
57+
58+
def features
59+
object.features.map do |feature|
60+
{ id: feature.module_id, module_name: feature.module_name, name: feature.name }
61+
end
62+
end
5663
end

0 commit comments

Comments
 (0)