Sha256: d0c325c178ce01e1f2fdcb8315b262878f38db0c6efd3c3c22ca2c1ae27b04db

Contents?: true

Size: 1.02 KB

Versions: 7

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

module OmniAI
  class Chat
    # A completion returned by the API.
    class Completion
      attr_accessor :data

      # @param data [Hash]
      def initialize(data:)
        @data = data
      end

      # @return [String]
      def id
        @data['id']
      end

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

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

      # @return [String]
      def model
        @data['model']
      end

      # @return [OmniAI::Chat::Usage]
      def usage
        @usage ||= Usage.new(data: @data['usage']) if @data['usage']
      end

      # @return [Array<OmniAI::Chat::Choice>]
      def choices
        @choices ||= @data['choices'].map { |data| Choice.new(data:) }
      end

      # @param [index] [Integer] optional - default is 0
      # @return [OmniAI::Chat::Choice]
      def choice(index: 0)
        choices[index]
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
omniai-1.0.2 lib/omniai/chat/completion.rb
omniai-1.0.1 lib/omniai/chat/completion.rb
omniai-1.0.0 lib/omniai/chat/completion.rb
omniai-0.2.0 lib/omniai/chat/completion.rb
omniai-0.1.5 lib/omniai/chat/completion.rb
omniai-0.1.4 lib/omniai/chat/completion.rb
omniai-0.1.3 lib/omniai/chat/completion.rb