Class: LlmLogs::PromptVersion

Inherits:
ApplicationRecord show all
Defined in:
app/models/llm_logs/prompt_version.rb

Instance Method Summary collapse

Instance Method Details

#reasoning_effortObject



12
13
14
15
16
# File 'app/models/llm_logs/prompt_version.rb', line 12

def reasoning_effort
  return nil unless model_params.is_a?(Hash)

  model_params["reasoning_effort"] || model_params[:reasoning_effort]
end

#render(variables = {}) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/models/llm_logs/prompt_version.rb', line 22

def render(variables = {})
  merged = (default_variables || {}).merge(variables.stringify_keys)

  rendered_messages = messages.map do |msg|
    {
      role: msg["role"],
      content: LlmLogs::PromptRenderer.render(msg["content"], merged)
    }
  end

  params = { messages: rendered_messages }
  params[:model] = model if model.present?
  params.merge!(model_params.symbolize_keys) if model_params.present?
  params
end

#variablesObject



18
19
20
# File 'app/models/llm_logs/prompt_version.rb', line 18

def variables
  messages.flat_map { |msg| msg["content"].to_s.scan(/\{\{[#^]?([^\/}]+)\}\}/) }.flatten.uniq.sort
end