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

Commit 86bc8b4

Browse files
committed
FEATURE: Select stop sequences from triage script
1 parent 7ebbcd2 commit 86bc8b4

File tree

5 files changed

+31
-3
lines changed

5 files changed

+31
-3
lines changed

config/locales/client.en.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ en:
8989
max_post_tokens:
9090
label: "Max Post Tokens"
9191
description: "The maximum number of tokens to scan using LLM triage"
92+
stop_sequences:
93+
label: "Stop Sequences"
94+
description: "Instruct the model to halt token generation when arriving at one of these values"
9295
search_for_text:
9396
label: "Search for text"
9497
description: "If the following text appears in the LLM reply, apply these actions"

discourse_automation/llm_triage.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
field :system_prompt, component: :message, required: false
1313
field :search_for_text, component: :text, required: true
1414
field :max_post_tokens, component: :text
15+
field :stop_sequences, component: :text_list, required: false
1516
field :model,
1617
component: :choices,
1718
required: true,
@@ -55,6 +56,8 @@
5556

5657
max_post_tokens = nil if max_post_tokens <= 0
5758

59+
stop_sequences = fields.dig("stop_sequences", "value")
60+
5861
if post.topic.private_message?
5962
include_personal_messages = fields.dig("include_personal_messages", "value")
6063
next if !include_personal_messages
@@ -88,6 +91,7 @@
8891
flag_post: flag_post,
8992
flag_type: flag_type.to_s.to_sym,
9093
max_post_tokens: max_post_tokens,
94+
stop_sequences: stop_sequences,
9195
automation: self.automation,
9296
)
9397
rescue => e

lib/automation/llm_triage.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ def self.handle(
1616
flag_post: nil,
1717
flag_type: nil,
1818
automation: nil,
19-
max_post_tokens: nil
19+
max_post_tokens: nil,
20+
stop_sequences: nil
2021
)
2122
if category_id.blank? && tags.blank? && canned_reply.blank? && hide_topic.blank? &&
2223
flag_post.blank?
@@ -42,6 +43,7 @@ def self.handle(
4243
temperature: 0,
4344
max_tokens: 700, # ~500 words
4445
user: Discourse.system_user,
46+
stop_sequences: stop_sequences,
4547
feature_name: "llm_triage",
4648
feature_context: {
4749
automation_id: automation&.id,

lib/completions/endpoints/canned_response.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def normalize_model_params(model_params)
1717
model_params
1818
end
1919

20-
attr_reader :responses, :completions, :dialect
20+
attr_reader :responses, :completions, :dialect, :model_params
2121

2222
def prompt_messages
2323
dialect.prompt.messages
@@ -26,12 +26,13 @@ def prompt_messages
2626
def perform_completion!(
2727
dialect,
2828
_user,
29-
_model_params,
29+
model_params,
3030
feature_name: nil,
3131
feature_context: nil,
3232
partial_tool_calls: false
3333
)
3434
@dialect = dialect
35+
@model_params = model_params
3536
response = responses[completions]
3637
if response.nil?
3738
raise CANNED_RESPONSE_ERROR,

spec/lib/modules/automation/llm_triage_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,4 +180,22 @@ def triage(**args)
180180
expect(triage_prompt.messages.last[:upload_ids]).to contain_exactly(post_upload.id)
181181
end
182182
end
183+
184+
it "includes stop_sequences in the completion call" do
185+
sequences = %w[GOOD BAD]
186+
187+
DiscourseAi::Completions::Llm.with_prepared_responses(["bad"]) do |spy|
188+
triage(
189+
post: post,
190+
model: "custom:#{llm_model.id}",
191+
system_prompt: "test %%POST%%",
192+
search_for_text: "bad",
193+
flag_post: true,
194+
automation: nil,
195+
stop_sequences: sequences,
196+
)
197+
198+
expect(spy.model_params[:stop_sequences]).to contain_exactly(*sequences)
199+
end
200+
end
183201
end

0 commit comments

Comments
 (0)