Sha256: b34abcb5f56d805060cf630d778ce96da300825685bc589fac02313a0bd23467

Contents?: true

Size: 1.31 KB

Versions: 11

Compression:

Stored size: 1.31 KB

Contents

# frozen_string_literal: true

module OmniAI
  class Chat
    # Used when processing everything at once.
    class Response
      # @return [Hash]
      attr_accessor :data

      # @param data [Hash]
      # @param context [Context, nil]
      def initialize(data:, context: nil)
        @data = data
        @context = context
      end

      # @return [Payload]
      def completion
        @completion ||= Payload.deserialize(@data, context: @context)
      end

      # @return [Usage, nil]
      def usage
        completion.usage
      end

      # @return [Array<Choice>]
      def choices
        completion.choices
      end

      # @return [Array<Message>]
      def messages
        completion.messages
      end

      # @param index [Integer]
      # @return [Choice]
      def choice(index: 0)
        completion.choice(index:)
      end

      # @param index [Integer]
      # @return [Message]
      def message(index: 0)
        completion.message(index:)
      end

      # @return [String]
      def text
        message.text
      end

      # @return [Boolean]
      def text?
        message.text?
      end

      # @return [Array<ToolCall>]
      def tool_call_list
        choice.tool_call_list
      end

      # @return [Boolean]
      def tool_call_list?
        tool_call_list&.any?
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
omniai-1.9.5 lib/omniai/chat/response.rb
omniai-1.9.4 lib/omniai/chat/response.rb
omniai-1.9.3 lib/omniai/chat/response.rb
omniai-1.9.2 lib/omniai/chat/response.rb
omniai-1.9.1 lib/omniai/chat/response.rb
omniai-1.9.0 lib/omniai/chat/response.rb
omniai-1.8.4 lib/omniai/chat/response.rb
omniai-1.8.3 lib/omniai/chat/response.rb
omniai-1.8.2 lib/omniai/chat/response.rb
omniai-1.8.1 lib/omniai/chat/response.rb
omniai-1.8.0 lib/omniai/chat/response.rb