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

Commit 2181e2a

Browse files
committed
fix various specs... a bunch left
1 parent fdd4a9b commit 2181e2a

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
@@ -190,15 +190,15 @@ def ai_persona_params
190190
:priority,
191191
:top_p,
192192
:temperature,
193-
:default_llm,
193+
:default_llm_id,
194194
:user_id,
195195
:max_context_posts,
196196
:vision_enabled,
197197
:vision_max_pixels,
198198
:rag_chunk_tokens,
199199
:rag_chunk_overlap_tokens,
200200
:rag_conversation_chunks,
201-
:question_consolidator_llm,
201+
:question_consolidator_llm_id,
202202
:allow_chat_channel_mentions,
203203
:allow_chat_direct_messages,
204204
: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
@@ -241,7 +241,7 @@
241241
system_prompt: "You are a helpful bot",
242242
vision_enabled: true,
243243
vision_max_pixels: 1_000,
244-
default_llm: "custom:#{opus_model.id}",
244+
default_llm_id: opus_model.id,
245245
allow_topic_mentions: true,
246246
)
247247
end
@@ -293,7 +293,7 @@
293293

294294
persona.create_user!
295295
persona.update!(
296-
default_llm: "custom:#{claude_2.id}",
296+
default_llm_id: claude_2.id,
297297
allow_chat_channel_mentions: true,
298298
allow_topic_mentions: true,
299299
)
@@ -313,7 +313,7 @@
313313
SiteSetting.ai_bot_enabled = true
314314
SiteSetting.chat_allowed_groups = "#{Group::AUTO_GROUPS[:trust_level_0]}"
315315
Group.refresh_automatic_groups!
316-
persona.update!(allow_chat_channel_mentions: true, default_llm: "custom:#{opus_model.id}")
316+
persona.update!(allow_chat_channel_mentions: true, default_llm_id: opus_model.id)
317317
end
318318

319319
it "should behave in a sane way when threading is enabled" do
@@ -428,7 +428,7 @@
428428
allow_chat_direct_messages: true,
429429
allow_topic_mentions: false,
430430
allow_chat_channel_mentions: false,
431-
default_llm: "custom:#{opus_model.id}",
431+
default_llm_id: opus_model.id,
432432
)
433433
SiteSetting.ai_bot_enabled = true
434434
end
@@ -629,7 +629,7 @@
629629
post = nil
630630
DiscourseAi::Completions::Llm.with_prepared_responses(
631631
["Yes I can", "Magic Title"],
632-
llm: "custom:#{claude_2.id}",
632+
llm: claude_2,
633633
) do
634634
post =
635635
create_post(
@@ -648,10 +648,7 @@
648648

649649
llm2.toggle_companion_user
650650

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

669-
DiscourseAi::Completions::Llm.with_prepared_responses(
670-
["Hi from bot one"],
671-
llm: "custom:#{claude_2.id}",
672-
) do
666+
DiscourseAi::Completions::Llm.with_prepared_responses(["Hi from bot one"], llm: claude_2) do
673667
create_post(
674668
user: admin,
675669
raw: "hi @#{llm2.user.username.capitalize} how are you",
@@ -689,7 +683,7 @@
689683

690684
DiscourseAi::Completions::Llm.with_prepared_responses(
691685
["Yes I can", "Magic Title"],
692-
llm: "custom:#{claude_2.id}",
686+
llm: claude_2,
693687
) do
694688
post =
695689
create_post(
@@ -731,11 +725,11 @@
731725
toggle_enabled_bots(bots: [gpt_35_turbo, claude_2])
732726

733727
post = nil
734-
persona.update!(force_default_llm: true, default_llm: "custom:#{gpt_35_turbo.id}")
728+
persona.update!(force_default_llm: true, default_llm_id: gpt_35_turbo.id)
735729

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

spec/requests/admin/ai_personas_controller_spec.rb

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

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

@@ -46,6 +50,7 @@
4650
allow_chat_channel_mentions: true,
4751
allow_chat_direct_messages: true,
4852
default_llm_id: llm_model.id,
53+
question_consolidator_llm_id: llm_model.id,
4954
forced_tool_count: 2,
5055
)
5156
persona2.create_user!
@@ -61,7 +66,8 @@
6166
expect(serializer_persona2["allow_chat_channel_mentions"]).to eq(true)
6267
expect(serializer_persona2["allow_chat_direct_messages"]).to eq(true)
6368

64-
expect(serializer_persona2["default_llm"]).to eq("anthropic:claude-2")
69+
expect(serializer_persona2["default_llm_id"]).to eq(llm_model.id)
70+
expect(serializer_persona2["question_consolidator_llm_id"]).to eq(llm_model.id)
6571
expect(serializer_persona2["user_id"]).to eq(persona2.user_id)
6672
expect(serializer_persona2["user"]["id"]).to eq(persona2.user_id)
6773
expect(serializer_persona2["forced_tool_count"]).to eq(2)
@@ -180,6 +186,7 @@
180186
allow_chat_channel_mentions: true,
181187
allow_chat_direct_messages: true,
182188
default_llm_id: llm_model.id,
189+
question_consolidator_llm_id: llm_model.id,
183190
forced_tool_count: 2,
184191
}
185192
end
@@ -191,18 +198,20 @@
191198
headers: {
192199
"CONTENT_TYPE" => "application/json",
193200
}
201+
194202
expect(response).to be_successful
195203
persona_json = response.parsed_body["ai_persona"]
196204

197205
expect(persona_json["name"]).to eq("superbot")
198206
expect(persona_json["top_p"]).to eq(0.1)
199207
expect(persona_json["temperature"]).to eq(0.5)
200-
expect(persona_json["default_llm"]).to eq("anthropic:claude-2")
208+
expect(persona_json["default_llm_id"]).to eq(llm_model.id)
201209
expect(persona_json["forced_tool_count"]).to eq(2)
202210
expect(persona_json["allow_topic_mentions"]).to eq(true)
203211
expect(persona_json["allow_personal_messages"]).to eq(true)
204212
expect(persona_json["allow_chat_channel_mentions"]).to eq(true)
205213
expect(persona_json["allow_chat_direct_messages"]).to eq(true)
214+
expect(persona_json["question_consolidator_llm_id"]).to eq(llm_model.id)
206215

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

@@ -425,7 +434,7 @@
425434
end
426435

427436
it "ensures question exists" do
428-
ai_persona.update!(default_llm: "custom:#{llm.id}")
437+
ai_persona.update!(default_llm_id: llm.id)
429438

430439
post "/admin/plugins/discourse-ai/ai-personas/stream-reply.json",
431440
params: {
@@ -437,7 +446,7 @@
437446
end
438447

439448
it "ensure persona has a user specified" do
440-
ai_persona.update!(default_llm: "custom:#{llm.id}")
449+
ai_persona.update!(default_llm_id: llm.id)
441450

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

0 commit comments

Comments
 (0)