Sha256: 332f76f9153a97c22955bc095ac92ee2a7fea3b11d35e66763e42f73bf482665

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

module RubyAmazonBedrock
  module ResponseBuilders
    # The AmazonText class is responsible for parsing and building a structured response from a raw text response.
    # It converts the HTTP response for an Amazon Titan model into a structured format to make it easier to access
    # the response data.
    class AmazonText
      # Initializes a new instance of the Text class.
      #
      # @param response [Object] The raw response object with is an HTTP response.
      def initialize(response, _options = {})
        @response = response
      end

      # Builds and returns a structured representation of the raw text response.
      # This method parses the raw response body as JSON and symbolizes the names
      # for easier access in Ruby.
      #
      # @return [Hash] A hash representing the structured data from the response body.
      # The keys of the hash are symbolized for convenient access.
      def build
        response = JSON.parse(@response.body.read, symbolize_names: true)

        {
          text: response[:results]&.first&.dig(:outputText),
          full_response: response
        }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-amazon-bedrock-0.2.4 lib/bedrock_runtime/response_builders/amazon_text.rb
ruby-amazon-bedrock-0.2.3 lib/bedrock_runtime/response_builders/amazon_text.rb