Class: LlmLogs::PromptVersion

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

Instance Method Summary collapse

Instance Method Details

#render(variables = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/models/llm_logs/prompt_version.rb', line 15

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



11
12
13
# File 'app/models/llm_logs/prompt_version.rb', line 11

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