Module: OmniAI::Anthropic::Chat::ToolCallResultSerializer

Defined in:
lib/omniai/anthropic/chat/tool_call_result_serializer.rb

Overview

Overrides tool-call response serialize / deserialize.

Class Method Summary collapse

Class Method Details

.deserialize(data) ⇒ OmniAI::Chat::ToolCallResult

Parameters:

  • data (Hash)

Returns:

  • (OmniAI::Chat::ToolCallResult)


28
29
30
31
32
33
# File 'lib/omniai/anthropic/chat/tool_call_result_serializer.rb', line 28

def self.deserialize(data, *)
  tool_call_id = data["tool_use_id"]
  content = data["content"]

  OmniAI::Chat::ToolCallResult.new(content:, tool_call_id:)
end

.serialize(tool_call_result, context: nil) ⇒ Hash

A result whose content is media (e.g. an image) is sent as a content block rather than JSON.

Parameters:

  • tool_call_result (OmniAI::Chat::ToolCallResult)
  • context (OmniAI::Context) (defaults to: nil) —

    optional

Returns:

  • (Hash)


14
15
16
17
18
19
20
21
22
23
# File 'lib/omniai/anthropic/chat/tool_call_result_serializer.rb', line 14

def self.serialize(tool_call_result, context: nil)
  content = tool_call_result.content
  content = content.is_a?(OmniAI::Chat::Media) ? [content.serialize(context:)] : tool_call_result.text

  {
    type: "tool_result",
    tool_use_id: tool_call_result.tool_call_id,
    content:,
  }
end