Class: Raif::ModelToolInvocation

Inherits:
ApplicationRecord show all
Defined in:
app/models/raif/model_tool_invocation.rb

Instance Method Summary collapse

Methods inherited from ApplicationRecord

table_name_prefix

Instance Method Details

#as_llm_messageObject



25
26
27
# File 'app/models/raif/model_tool_invocation.rb', line 25

def as_llm_message
  "Invoking tool: #{tool_name} with arguments: #{tool_arguments.to_json}"
end

#ensure_valid_tool_argument_schemaObject



39
40
41
42
43
# File 'app/models/raif/model_tool_invocation.rb', line 39

def ensure_valid_tool_argument_schema
  unless JSON::Validator.validate(tool_arguments_schema, tool_arguments)
    errors.add(:tool_arguments, "does not match schema")
  end
end

#result_llm_messageObject



29
30
31
32
33
# File 'app/models/raif/model_tool_invocation.rb', line 29

def result_llm_message
  return unless tool.respond_to?(:observation_for_invocation)

  tool.observation_for_invocation(self)
end

#to_partial_pathObject



35
36
37
# File 'app/models/raif/model_tool_invocation.rb', line 35

def to_partial_path
  "raif/model_tool_invocations/#{tool.invocation_partial_name}"
end

#toolObject



21
22
23
# File 'app/models/raif/model_tool_invocation.rb', line 21

def tool
  @tool ||= tool_type.constantize
end