mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-07-08 23:32:45 +00:00
FIX: stream messages when directly PMing a persona (#500)
previous to this fix we did not consider personas a bot in the front end
This commit is contained in:
parent
9fb1430e40
commit
59bab2bba3
@ -10,8 +10,9 @@ import copyConversation from "../discourse/lib/copy-conversation";
|
|||||||
|
|
||||||
const AUTO_COPY_THRESHOLD = 4;
|
const AUTO_COPY_THRESHOLD = 4;
|
||||||
|
|
||||||
|
let enabledChatBotIds = [];
|
||||||
function isGPTBot(user) {
|
function isGPTBot(user) {
|
||||||
return user && [-110, -111, -112, -113, -114, -115, -116].includes(user.id);
|
return user && enabledChatBotIds.includes(user.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
function attachHeaderIcon(api) {
|
function attachHeaderIcon(api) {
|
||||||
@ -197,6 +198,7 @@ export default {
|
|||||||
const user = container.lookup("service:current-user");
|
const user = container.lookup("service:current-user");
|
||||||
|
|
||||||
if (user?.ai_enabled_chat_bots) {
|
if (user?.ai_enabled_chat_bots) {
|
||||||
|
enabledChatBotIds = user.ai_enabled_chat_bots.map((bot) => bot.id);
|
||||||
if (settings.ai_bot_add_to_header) {
|
if (settings.ai_bot_add_to_header) {
|
||||||
withPluginApi("1.6.0", attachHeaderIcon);
|
withPluginApi("1.6.0", attachHeaderIcon);
|
||||||
}
|
}
|
||||||
|
@ -97,6 +97,14 @@ module DiscourseAi
|
|||||||
SQL
|
SQL
|
||||||
|
|
||||||
bots.each { |hash| hash["model_name"] = model_map[hash["id"]] }
|
bots.each { |hash| hash["model_name"] = model_map[hash["id"]] }
|
||||||
|
mentionables = AiPersona.mentionables(user: scope.user)
|
||||||
|
if mentionables.present?
|
||||||
|
bots.concat(
|
||||||
|
mentionables.map do |mentionable|
|
||||||
|
{ "id" => mentionable[:user_id], "username" => mentionable[:username] }
|
||||||
|
end,
|
||||||
|
)
|
||||||
|
end
|
||||||
bots
|
bots
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -23,6 +23,27 @@ RSpec.describe DiscourseAi::AiBot::EntryPoint do
|
|||||||
bot_allowed_group.add(admin)
|
bot_allowed_group.add(admin)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "adds mentionables to current_user_serializer" do
|
||||||
|
Group.refresh_automatic_groups!
|
||||||
|
|
||||||
|
persona =
|
||||||
|
Fabricate(
|
||||||
|
:ai_persona,
|
||||||
|
mentionable: true,
|
||||||
|
enabled: true,
|
||||||
|
allowed_group_ids: [bot_allowed_group.id],
|
||||||
|
)
|
||||||
|
persona.create_user!
|
||||||
|
|
||||||
|
serializer = CurrentUserSerializer.new(admin, scope: Guardian.new(admin))
|
||||||
|
serializer = serializer.as_json
|
||||||
|
bots = serializer[:current_user][:ai_enabled_chat_bots]
|
||||||
|
|
||||||
|
persona_bot = bots.find { |bot| bot["id"] == persona.user_id }
|
||||||
|
|
||||||
|
expect(persona_bot["username"]).to eq(persona.user.username)
|
||||||
|
end
|
||||||
|
|
||||||
it "queues a job to generate a reply by the AI" do
|
it "queues a job to generate a reply by the AI" do
|
||||||
expect { PostCreator.create!(admin, post_args) }.to change(
|
expect { PostCreator.create!(admin, post_args) }.to change(
|
||||||
Jobs::CreateAiReply.jobs,
|
Jobs::CreateAiReply.jobs,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user