Class: Geminize::Models::FunctionDeclaration

Inherits:
Object
  • Object
show all
Defined in:
lib/geminize/models/function_declaration.rb

Overview

Represents a function declaration for function calling in Gemini API

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, description, parameters) ⇒ FunctionDeclaration

Initialize a new function declaration

Parameters:

  • name (String)

    The name of the function

  • description (String)

    A description of what the function does

  • parameters (Hash)

    JSON schema for function parameters

Raises:



21
22
23
24
25
26
# File 'lib/geminize/models/function_declaration.rb', line 21

def initialize(name, description, parameters)
  @name = name
  @description = description
  @parameters = parameters
  validate!
end

Instance Attribute Details

#descriptionString (readonly)

Returns Description of what the function does.

Returns:

  • (String)

    Description of what the function does



11
12
13
# File 'lib/geminize/models/function_declaration.rb', line 11

def description
  @description
end

#nameString (readonly)

Returns Name of the function.

Returns:

  • (String)

    Name of the function



8
9
10
# File 'lib/geminize/models/function_declaration.rb', line 8

def name
  @name
end

#parametersHash (readonly)

Returns JSON schema for function parameters.

Returns:

  • (Hash)

    JSON schema for function parameters



14
15
16
# File 'lib/geminize/models/function_declaration.rb', line 14

def parameters
  @parameters
end

Instance Method Details

#to_hHash

Alias for to_hash

Returns:

  • (Hash)

    The function declaration as a hash



50
51
52
# File 'lib/geminize/models/function_declaration.rb', line 50

def to_h
  to_hash
end

#to_hashHash

Convert the function declaration to a hash for API requests

Returns:

  • (Hash)

    The function declaration as a hash



40
41
42
43
44
45
46
# File 'lib/geminize/models/function_declaration.rb', line 40

def to_hash
  {
    name: @name,
    description: @description,
    parameters: @parameters
  }
end

#validate!Boolean

Validate the function declaration

Returns:

  • (Boolean)

    true if validation passes

Raises:



31
32
33
34
35
36
# File 'lib/geminize/models/function_declaration.rb', line 31

def validate!
  validate_name!
  validate_description!
  validate_parameters!
  true
end