Module: OmniAI::Google::Chat::ToolCallSerializer

Defined in:
lib/omniai/google/chat/tool_call_serializer.rb

Overview

Overrides tool-call serialize / deserialize.

Class Method Summary collapse

Class Method Details

.deserialize(data, context:) ⇒ OmniAI::Chat::ToolCall

Parameters:

  • data (Hash)
  • context (OmniAI::Context)

Returns:

  • (OmniAI::Chat::ToolCall)


20
21
22
23
24
# File 'lib/omniai/google/chat/tool_call_serializer.rb', line 20

def self.deserialize(data, context:)
  function = OmniAI::Chat::Function.deserialize(data["functionCall"], context:)
  options = { thought_signature: data["thoughtSignature"] }.compact
  OmniAI::Chat::ToolCall.new(id: function.name, function:, **options)
end

.serialize(tool_call, context:) ⇒ Hash

Parameters:

  • tool_call (OmniAI::Chat::ToolCall)
  • context (OmniAI::Context)

Returns:

  • (Hash)


11
12
13
14
15
# File 'lib/omniai/google/chat/tool_call_serializer.rb', line 11

def self.serialize(tool_call, context:)
  result = { functionCall: tool_call.function.serialize(context:) }
  result[:thoughtSignature] = tool_call.options[:thought_signature] if tool_call.options[:thought_signature]
  result
end