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

Commit 786fe95

Browse files
committed
fix various specs... a bunch left
1 parent 93db677 commit 786fe95

File tree

5 files changed

+33
-29
lines changed

5 files changed

+33
-29
lines changed

app/controllers/discourse_ai/admin/ai_personas_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,15 +185,15 @@ def ai_persona_params
185185
:priority,
186186
:top_p,
187187
:temperature,
188-
:default_llm,
188+
:default_llm_id,
189189
:user_id,
190190
:max_context_posts,
191191
:vision_enabled,
192192
:vision_max_pixels,
193193
:rag_chunk_tokens,
194194
:rag_chunk_overlap_tokens,
195195
:rag_conversation_chunks,
196-
:question_consolidator_llm,
196+
:question_consolidator_llm_id,
197197
:allow_chat_channel_mentions,
198198
:allow_chat_direct_messages,
199199
:allow_topic_mentions,

app/serializers/localized_ai_persona_serializer.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ class LocalizedAiPersonaSerializer < ApplicationSerializer
1414
:allowed_group_ids,
1515
:temperature,
1616
:top_p,
17-
:default_llm,
17+
:default_llm_id,
1818
:user_id,
1919
:max_context_posts,
2020
:vision_enabled,
2121
:vision_max_pixels,
2222
:rag_chunk_tokens,
2323
:rag_chunk_overlap_tokens,
2424
:rag_conversation_chunks,
25-
:question_consolidator_llm,
25+
:question_consolidator_llm_id,
2626
:tool_details,
2727
:forced_tool_count,
2828
:allow_chat_channel_mentions,

lib/ai_bot/bot.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ def self.as(bot_user, persona: DiscourseAi::AiBot::Personas::General.new, model:
1616
def initialize(bot_user, persona, model = nil)
1717
@bot_user = bot_user
1818
@persona = persona
19-
@model = model || self.class.guess_model(bot_user) || @persona.class.default_llm
19+
@model =
20+
model || self.class.guess_model(bot_user) || LlmModel.find(@persona.class.default_llm_id)
2021
end
2122

2223
attr_reader :bot_user

spec/lib/modules/ai_bot/playground_spec.rb

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@
240240
system_prompt: "You are a helpful bot",
241241
vision_enabled: true,
242242
vision_max_pixels: 1_000,
243-
default_llm: "custom:#{opus_model.id}",
243+
default_llm_id: opus_model.id,
244244
allow_topic_mentions: true,
245245
)
246246
end
@@ -292,7 +292,7 @@
292292

293293
persona.create_user!
294294
persona.update!(
295-
default_llm: "custom:#{claude_2.id}",
295+
default_llm_id: claude_2.id,
296296
allow_chat_channel_mentions: true,
297297
allow_topic_mentions: true,
298298
)
@@ -312,7 +312,7 @@
312312
SiteSetting.ai_bot_enabled = true
313313
SiteSetting.chat_allowed_groups = "#{Group::AUTO_GROUPS[:trust_level_0]}"
314314
Group.refresh_automatic_groups!
315-
persona.update!(allow_chat_channel_mentions: true, default_llm: "custom:#{opus_model.id}")
315+
persona.update!(allow_chat_channel_mentions: true, default_llm_id: opus_model.id)
316316
end
317317

318318
it "should behave in a sane way when threading is enabled" do
@@ -427,7 +427,7 @@
427427
allow_chat_direct_messages: true,
428428
allow_topic_mentions: false,
429429
allow_chat_channel_mentions: false,
430-
default_llm: "custom:#{opus_model.id}",
430+
default_llm_id: opus_model.id,
431431
)
432432
SiteSetting.ai_bot_enabled = true
433433
end
@@ -628,7 +628,7 @@
628628
post = nil
629629
DiscourseAi::Completions::Llm.with_prepared_responses(
630630
["Yes I can", "Magic Title"],
631-
llm: "custom:#{claude_2.id}",
631+
llm: claude_2,
632632
) do
633633
post =
634634
create_post(
@@ -647,10 +647,7 @@
647647

648648
llm2.toggle_companion_user
649649

650-
DiscourseAi::Completions::Llm.with_prepared_responses(
651-
["Hi from bot two"],
652-
llm: "custom:#{llm2.id}",
653-
) do
650+
DiscourseAi::Completions::Llm.with_prepared_responses(["Hi from bot two"], llm: llm2) do
654651
create_post(
655652
user: admin,
656653
raw: "hi @#{llm2.user.username.capitalize} how are you",
@@ -665,10 +662,7 @@
665662
# tether llm, so it can no longer be switched
666663
persona.update!(force_default_llm: true, default_llm: "custom:#{claude_2.id}")
667664

668-
DiscourseAi::Completions::Llm.with_prepared_responses(
669-
["Hi from bot one"],
670-
llm: "custom:#{claude_2.id}",
671-
) do
665+
DiscourseAi::Completions::Llm.with_prepared_responses(["Hi from bot one"], llm: claude_2) do
672666
create_post(
673667
user: admin,
674668
raw: "hi @#{llm2.user.username.capitalize} how are you",
@@ -688,7 +682,7 @@
688682

689683
DiscourseAi::Completions::Llm.with_prepared_responses(
690684
["Yes I can", "Magic Title"],
691-
llm: "custom:#{claude_2.id}",
685+
llm: claude_2,
692686
) do
693687
post =
694688
create_post(
@@ -730,11 +724,11 @@
730724
toggle_enabled_bots(bots: [gpt_35_turbo, claude_2])
731725

732726
post = nil
733-
persona.update!(force_default_llm: true, default_llm: "custom:#{gpt_35_turbo.id}")
727+
persona.update!(force_default_llm: true, default_llm_id: gpt_35_turbo.id)
734728

735729
DiscourseAi::Completions::Llm.with_prepared_responses(
736730
["Yes I can", "Magic Title"],
737-
llm: "custom:#{gpt_35_turbo.id}",
731+
llm: gpt_35_turbo,
738732
) do
739733
post =
740734
create_post(

spec/requests/admin/ai_personas_controller_spec.rb

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,13 @@
2727
expect(response).to be_successful
2828

2929
expect(response.parsed_body["meta"]["llms"]).to eq(
30-
DiscourseAi::Configuration::LlmEnumerator.values.map do |hash|
31-
{ "id" => hash[:value], "name" => hash[:name] }
32-
end,
30+
[
31+
{
32+
id: llm_model.id,
33+
name: llm_model.display_name,
34+
vision: llm_model.vision_enabled,
35+
}.stringify_keys,
36+
],
3337
)
3438
end
3539

@@ -45,6 +49,7 @@
4549
allow_chat_channel_mentions: true,
4650
allow_chat_direct_messages: true,
4751
default_llm_id: llm_model.id,
52+
question_consolidator_llm_id: llm_model.id,
4853
forced_tool_count: 2,
4954
)
5055
persona2.create_user!
@@ -60,7 +65,8 @@
6065
expect(serializer_persona2["allow_chat_channel_mentions"]).to eq(true)
6166
expect(serializer_persona2["allow_chat_direct_messages"]).to eq(true)
6267

63-
expect(serializer_persona2["default_llm"]).to eq("anthropic:claude-2")
68+
expect(serializer_persona2["default_llm_id"]).to eq(llm_model.id)
69+
expect(serializer_persona2["question_consolidator_llm_id"]).to eq(llm_model.id)
6470
expect(serializer_persona2["user_id"]).to eq(persona2.user_id)
6571
expect(serializer_persona2["user"]["id"]).to eq(persona2.user_id)
6672
expect(serializer_persona2["forced_tool_count"]).to eq(2)
@@ -179,6 +185,7 @@
179185
allow_chat_channel_mentions: true,
180186
allow_chat_direct_messages: true,
181187
default_llm_id: llm_model.id,
188+
question_consolidator_llm_id: llm_model.id,
182189
forced_tool_count: 2,
183190
}
184191
end
@@ -190,18 +197,20 @@
190197
headers: {
191198
"CONTENT_TYPE" => "application/json",
192199
}
200+
193201
expect(response).to be_successful
194202
persona_json = response.parsed_body["ai_persona"]
195203

196204
expect(persona_json["name"]).to eq("superbot")
197205
expect(persona_json["top_p"]).to eq(0.1)
198206
expect(persona_json["temperature"]).to eq(0.5)
199-
expect(persona_json["default_llm"]).to eq("anthropic:claude-2")
207+
expect(persona_json["default_llm_id"]).to eq(llm_model.id)
200208
expect(persona_json["forced_tool_count"]).to eq(2)
201209
expect(persona_json["allow_topic_mentions"]).to eq(true)
202210
expect(persona_json["allow_personal_messages"]).to eq(true)
203211
expect(persona_json["allow_chat_channel_mentions"]).to eq(true)
204212
expect(persona_json["allow_chat_direct_messages"]).to eq(true)
213+
expect(persona_json["question_consolidator_llm_id"]).to eq(llm_model.id)
205214

206215
persona = AiPersona.find(persona_json["id"])
207216

@@ -424,7 +433,7 @@
424433
end
425434

426435
it "ensures question exists" do
427-
ai_persona.update!(default_llm: "custom:#{llm.id}")
436+
ai_persona.update!(default_llm_id: llm.id)
428437

429438
post "/admin/plugins/discourse-ai/ai-personas/stream-reply.json",
430439
params: {
@@ -436,7 +445,7 @@
436445
end
437446

438447
it "ensure persona has a user specified" do
439-
ai_persona.update!(default_llm: "custom:#{llm.id}")
448+
ai_persona.update!(default_llm_id: llm.id)
440449

441450
post "/admin/plugins/discourse-ai/ai-personas/stream-reply.json",
442451
params: {
@@ -498,7 +507,7 @@ def validate_streamed_response(raw_http, expected)
498507
ai_persona.create_user!
499508
ai_persona.update!(
500509
allowed_group_ids: [Group::AUTO_GROUPS[:trust_level_0]],
501-
default_llm: "custom:#{llm.id}",
510+
default_llm_id: llm.id,
502511
allow_personal_messages: true,
503512
system_prompt: "you are a helpful bot",
504513
)

0 commit comments

Comments
 (0)