mirror of
https://github.com/discourse/discourse-ai.git
synced 2025-07-06 06:22:19 +00:00
47 lines
1.5 KiB
Ruby
47 lines
1.5 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
RSpec.describe DiscourseAi::Completions::Dialects::OpenAiCompatible do
|
||
|
context "when system prompts are disabled" do
|
||
|
it "merges the system prompt into the first message" do
|
||
|
system_msg = "This is a system message"
|
||
|
user_msg = "user message"
|
||
|
prompt =
|
||
|
DiscourseAi::Completions::Prompt.new(
|
||
|
system_msg,
|
||
|
messages: [{ type: :user, content: user_msg }],
|
||
|
)
|
||
|
|
||
|
model = Fabricate(:vllm_model, provider_params: { disable_system_prompt: true })
|
||
|
|
||
|
translated_messages = described_class.new(prompt, model).translate
|
||
|
|
||
|
expect(translated_messages.length).to eq(1)
|
||
|
expect(translated_messages).to contain_exactly(
|
||
|
{ role: "user", content: [system_msg, user_msg].join("\n") },
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "when system prompts are enabled" do
|
||
|
it "includes system and user messages separately" do
|
||
|
system_msg = "This is a system message"
|
||
|
user_msg = "user message"
|
||
|
prompt =
|
||
|
DiscourseAi::Completions::Prompt.new(
|
||
|
system_msg,
|
||
|
messages: [{ type: :user, content: user_msg }],
|
||
|
)
|
||
|
|
||
|
model = Fabricate(:vllm_model, provider_params: { disable_system_prompt: false })
|
||
|
|
||
|
translated_messages = described_class.new(prompt, model).translate
|
||
|
|
||
|
expect(translated_messages.length).to eq(2)
|
||
|
expect(translated_messages).to contain_exactly(
|
||
|
{ role: "system", content: system_msg },
|
||
|
{ role: "user", content: user_msg },
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
end
|