@@ -121,7 +121,7 @@ def to_json
121121 def judge_result ( result )
122122 prompt = judge [ :prompt ] . dup
123123 prompt . sub! ( "{{output}}" , result )
124- prompt . sub! ( "{{input}} " , args [ :input ] )
124+ args . each { | key , value | prompt . sub! ( "{{#{ key } }} " , value . to_s ) }
125125
126126 prompt += <<~SUFFIX
127127
@@ -145,7 +145,8 @@ def judge_result(result)
145145 messages : [ { type : :user , content : prompt } ] ,
146146 )
147147
148- result = judge_llm . llm_model . to_llm . generate ( prompt , user : Discourse . system_user )
148+ result =
149+ judge_llm . llm_model . to_llm . generate ( prompt , user : Discourse . system_user , temperature : 0 )
149150
150151 if rating = result . match ( %r{\[ RATING\] (\d +)\[ /RATING\] } )
151152 rating = rating [ 1 ] . to_i
@@ -219,7 +220,7 @@ def pdf_to_text(llm, path:)
219220 upload . destroy if upload
220221 end
221222
222- def prompt_call ( llm , system_prompt :, message :, tools : nil , stream : false )
223+ def prompt_call ( llm , system_prompt :, message :, temperature : nil , tools : nil , stream : false )
223224 if tools
224225 tools . each do |tool |
225226 tool . symbolize_keys!
@@ -230,16 +231,19 @@ def prompt_call(llm, system_prompt:, message:, tools: nil, stream: false)
230231 DiscourseAi ::Completions ::Prompt . new (
231232 system_prompt ,
232233 messages : [ { type : :user , content : message } ] ,
233- tools : tools ,
234234 )
235235
236+ prompt . tools = tools if tools
237+
236238 result = nil
237239 if stream
238240 result = [ ]
239241 llm
240242 . llm_model
241243 . to_llm
242- . generate ( prompt , user : Discourse . system_user ) { |partial | result << partial }
244+ . generate ( prompt , user : Discourse . system_user , temperature : temperature ) do |partial |
245+ result << partial
246+ end
243247 else
244248 result = llm . llm_model . to_llm . generate ( prompt , user : Discourse . system_user )
245249 end
0 commit comments