Class: Desiru::Modules::Predict

Inherits:
Desiru::Module show all
Defined in:
lib/desiru/modules/predict.rb

Overview

Basic prediction module - the fundamental building block

Direct Known Subclasses

ChainOfThought

Constant Summary collapse

DEFAULT_SIGNATURE =
'question: string -> answer: string'

Instance Attribute Summary

Attributes inherited from Desiru::Module

#config, #demos, #metadata, #model, #signature

Instance Method Summary collapse

Methods inherited from Desiru::Module

#call, #reset, #to_h, #with_demos

Methods included from AsyncCapable

#call_async, #call_batch_async

Methods included from ErrorHandling

#safe_execute, #with_error_context, #with_retry

Methods included from Core::Traceable

#call, #disable_trace!, #enable_trace!, #trace_enabled?

Constructor Details

#initialize(signature = nil, model: nil) ⇒ Predict

Returns a new instance of Predict.



9
10
11
12
# File 'lib/desiru/modules/predict.rb', line 9

def initialize(signature = nil, model: nil, **)
  signature ||= DEFAULT_SIGNATURE
  super
end

Instance Method Details

#forward(inputs) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/desiru/modules/predict.rb', line 14

def forward(inputs)
  prompt = build_prompt(inputs)

  response = model.complete(
    prompt,
    temperature: config[:temperature],
    max_tokens: config[:max_tokens],
    demos: demos
  )

  Desiru.logger.info("Predict response: #{response}")

  parse_response(response[:content])
end