Class: OmniAI::Chat::Completion

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

Overview

A completion returned by the API.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data:) ⇒ Completion

Returns a new instance of Completion.

Parameters:

  • data (Hash)


10
11
12
# File 'lib/omniai/chat/completion.rb', line 10

def initialize(data:)
  @data = data
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



7
8
9
# File 'lib/omniai/chat/completion.rb', line 7

def data
  @data
end

Instance Method Details

#choice(index: 0) ⇒ OmniAI::Chat::Choice

Parameters:

  • [Integer] (index)

    optional - default is 0

Returns:



48
49
50
# File 'lib/omniai/chat/completion.rb', line 48

def choice(index: 0)
  choices[index]
end

#choicesArray<OmniAI::Chat::Choice>

Returns:



42
43
44
# File 'lib/omniai/chat/completion.rb', line 42

def choices
  @choices ||= @data['choices'].map { |data| Choice.for(data:) }
end

#createdTime

Returns:

  • (Time)


20
21
22
# File 'lib/omniai/chat/completion.rb', line 20

def created
  Time.at(@data['created']) if @data['created']
end

#idString

Returns:

  • (String)


15
16
17
# File 'lib/omniai/chat/completion.rb', line 15

def id
  @data['id']
end

#modelString

Returns:

  • (String)


30
31
32
# File 'lib/omniai/chat/completion.rb', line 30

def model
  @data['model']
end

#updatedTime

Returns:

  • (Time)


25
26
27
# File 'lib/omniai/chat/completion.rb', line 25

def updated
  Time.at(@data['updated']) if @data['updated']
end

#usageOmniAI::Chat::Usage

Returns:



35
36
37
38
39
# File 'lib/omniai/chat/completion.rb', line 35

def usage
  return unless @data['usage']

  @usage ||= Usage.for(data: @data['usage'])
end