Class: RLM::PromptBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/rlm/prompt_builder.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(signature, input:, context: nil, limits: nil) ⇒ PromptBuilder

Returns a new instance of PromptBuilder.

Raises:



14
15
16
17
18
19
20
21
# File 'lib/rlm/prompt_builder.rb', line 14

def initialize(signature, input:, context: nil, limits: nil)
  raise ConfigurationError, "signature is required" if signature.nil?

  @signature = signature
  @input = input || {}
  @context = context
  @limits = limits
end

Class Method Details

.build(signature, input:, context: nil, limits: nil) ⇒ Object



10
11
12
# File 'lib/rlm/prompt_builder.rb', line 10

def self.build(signature, input:, context: nil, limits: nil)
  new(signature, input: input, context: context, limits: limits).call
end

Instance Method Details

#callObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rlm/prompt_builder.rb', line 23

def call
  manifest = context_manifest
  payload_limits = limits_payload
  sections = [
    "# RLM Prediction Prompt",
    signature_section,
    description_section,
    fields_section,
    input_section
  ]
  sections << context_section(manifest) if manifest
  sections << limits_section(payload_limits) if payload_limits
  sections << helpers_section
  sections << safety_section
  sections << output_instructions_section
  sections.compact.join("\n\n")
end