mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-03-06 01:10:28 +00:00
* FIX: Llm selector / forced tools / search tool This fixes a few issues: 1. When search was not finding any semantic results we would break the tool 2. Gemin / Anthropic models did not implement forced tools previously despite it being an API option 3. Mechanics around displaying llm selector were not right. If you disabled LLM selector server side persona PM did not work correctly. 4. Disabling native tools for anthropic model moved out of a site setting. This deliberately does not migrate cause this feature is really rare to need now, people who had it set probably did not need it. 5. Updates anthropic model names to latest release * linting * fix a couple of tests I missed * clean up conditional
59 lines
1.8 KiB
Ruby
59 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
RSpec.describe "AI chat channel summarization", type: :system, js: true do
|
|
fab!(:user)
|
|
fab!(:group) { Fabricate(:group, visibility_level: Group.visibility_levels[:staff]) }
|
|
|
|
fab!(:gpt_4) { Fabricate(:llm_model, name: "gpt-4") }
|
|
fab!(:gpt_3_5_turbo) { Fabricate(:llm_model, name: "gpt-3.5-turbo") }
|
|
|
|
before do
|
|
SiteSetting.ai_bot_enabled = true
|
|
toggle_enabled_bots(bots: [gpt_4, gpt_3_5_turbo])
|
|
SiteSetting.ai_bot_allowed_groups = group.id.to_s
|
|
sign_in(user)
|
|
end
|
|
|
|
it "does not show AI button to users not in group" do
|
|
visit "/latest"
|
|
expect(page).not_to have_selector(".ai-bot-button")
|
|
end
|
|
|
|
it "shows the AI bot button, which is clickable (even if group is hidden)" do
|
|
group.add(user)
|
|
group.save
|
|
|
|
allowed_persona = AiPersona.last
|
|
allowed_persona.update!(allowed_group_ids: [group.id], enabled: true)
|
|
|
|
visit "/latest"
|
|
expect(page).to have_selector(".ai-bot-button")
|
|
find(".ai-bot-button").click
|
|
|
|
find(".gpt-persona").click
|
|
expect(page).to have_css(".gpt-persona ul li", count: 1)
|
|
|
|
find(".llm-selector").click
|
|
expect(page).to have_css(".llm-selector ul li", count: 2)
|
|
|
|
expect(page).to have_selector(".d-editor-container")
|
|
|
|
# lets disable bots but still allow 1 persona
|
|
allowed_persona.create_user!
|
|
allowed_persona.update!(default_llm: "custom:#{gpt_4.id}")
|
|
|
|
gpt_4.update!(enabled_chat_bot: false)
|
|
gpt_3_5_turbo.update!(enabled_chat_bot: false)
|
|
|
|
visit "/latest"
|
|
find(".ai-bot-button").click
|
|
|
|
find(".gpt-persona").click
|
|
expect(page).to have_css(".gpt-persona ul li", count: 1)
|
|
expect(page).not_to have_selector(".llm-selector")
|
|
|
|
SiteSetting.ai_bot_add_to_header = false
|
|
visit "/latest"
|
|
expect(page).not_to have_selector(".ai-bot-button")
|
|
end
|
|
end
|