Module: OmniAI::OpenAI::Chat::ThinkingSerializer

Defined in:
lib/omniai/openai/chat/thinking_serializer.rb

Overview

Overrides thinking serialize / deserialize.

Class Method Summary collapse

Class Method Details

.deserialize(data, context: nil) ⇒ OmniAI::Chat::Thinking

Parameters:

  • data (Hash)
  • context (Context) (defaults to: nil)

Returns:

  • (OmniAI::Chat::Thinking)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/omniai/openai/chat/thinking_serializer.rb', line 12

def self.deserialize(data, context: nil) # rubocop:disable Lint/UnusedMethodArgument
  summary = data["summary"]

  thinking = case summary
             when Array
               summary.filter_map { |item| item["text"] if item["type"] == "summary_text" }.join("\n")
             when String
               summary
             else
               data["thinking"]
             end

  OmniAI::Chat::Thinking.new(thinking)
end

.serialize(thinking, context: nil) ⇒ Hash

Parameters:

  • thinking (OmniAI::Chat::Thinking)
  • context (Context) (defaults to: nil)

Returns:

  • (Hash)


31
32
33
# File 'lib/omniai/openai/chat/thinking_serializer.rb', line 31

def self.serialize(thinking, context: nil) # rubocop:disable Lint/UnusedMethodArgument
  { type: "reasoning", summary: thinking.thinking }
end