Class: OmniAI::Chat::Thinking

Inherits:
Content
  • Object
show all
Defined in:
lib/omniai/chat/thinking.rb

Overview

Represents thinking/reasoning content from a model.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Content

summarize

Constructor Details

#initialize(thinking = nil, metadata: {}) ⇒ Thinking

Returns a new instance of Thinking.

Parameters:

  • thinking (String) (defaults to: nil)
  • metadata (Hash) (defaults to: {})

    Provider-specific data for round-tripping



15
16
17
18
19
# File 'lib/omniai/chat/thinking.rb', line 15

def initialize(thinking = nil, metadata: {})
  super()
  @thinking = thinking
  @metadata =  || {}
end

Instance Attribute Details

#metadataHash

Returns Provider-specific metadata (e.g., Anthropic’s signature).

Returns:

  • (Hash)

    Provider-specific metadata (e.g., Anthropic’s signature)



11
12
13
# File 'lib/omniai/chat/thinking.rb', line 11

def 
  @metadata
end

#thinkingString

Returns:

  • (String)


8
9
10
# File 'lib/omniai/chat/thinking.rb', line 8

def thinking
  @thinking
end

Class Method Details

.deserialize(data, context: nil) ⇒ Object

Parameters:

  • data (Hash)

    required

  • context (Context) (defaults to: nil)

    optional



33
34
35
36
37
38
# File 'lib/omniai/chat/thinking.rb', line 33

def self.deserialize(data, context: nil)
  deserialize = context&.deserializer(:thinking)
  return deserialize.call(data, context:) if deserialize

  new(data["thinking"])
end

Instance Method Details

#inspectString

Returns:

  • (String)


22
23
24
# File 'lib/omniai/chat/thinking.rb', line 22

def inspect
  "#<#{self.class} thinking=#{@thinking.inspect}>"
end

#serialize(context: nil, direction: nil) ⇒ Hash

Parameters:

  • context (Context) (defaults to: nil)

    optional

  • direction (String) (defaults to: nil)

    optional - either “input” or “output”

Returns:

  • (Hash)


44
45
46
47
48
49
# File 'lib/omniai/chat/thinking.rb', line 44

def serialize(context: nil, direction: nil) # rubocop:disable Lint/UnusedMethodArgument
  serializer = context&.serializer(:thinking)
  return serializer.call(self, context:) if serializer

  { type: "thinking", thinking: @thinking }
end

#summarizeString

Returns:

  • (String)


27
28
29
# File 'lib/omniai/chat/thinking.rb', line 27

def summarize
  @thinking
end