Module: OllamaChat::Tools::Concern

Extended by:
Tins::Concern
Included in:
RunTests
Defined in:
lib/ollama_chat/tools/concern.rb

Overview

A module that provides common functionality for OllamaChat tools.

This module serves as a base class for all tool implementations in the OllamaChat application, providing shared behavior and methods that tools can inherit from. It includes delegation to the tool name and registration functionality to integrate tools into the chat system’s tool registry.

Instance Method Summary collapse

Instance Method Details

#nameString

The name method returns the registered name of the tool.

Returns:

  • (String)

    the registered name of the tool instance



33
34
35
# File 'lib/ollama_chat/tools/concern.rb', line 33

def name
  self.class.register_name
end

#to_hashHash

The to_hash method converts the tool to a hash representation.

Returns:

  • (Hash)

    a hash representation of the tool



56
57
58
# File 'lib/ollama_chat/tools/concern.rb', line 56

def to_hash
  tool.to_hash
end

#valid_json?Proc

The valid_json? method returns a proc that validates JSON data from a temporary file.

Returns:

  • (Proc)

    a proc that takes a temporary file and returns its JSON content or raises an error



42
43
44
45
46
47
48
49
50
51
# File 'lib/ollama_chat/tools/concern.rb', line 42

def valid_json?
  -> tmp {
    if data = tmp.read.full?
      JSON.parse(data)
      return data
    else
      raise JSON::ParserError, 'require JSON data'
    end
  }
end