Class: RubyAmazonBedrock::ResponseFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/bedrock_runtime/response_factory.rb

Overview

The ResponseFactory class is a factory for creating different types of response builder objects. It is designed to instantiate and return an object of a specific response builder class

Instance Method Summary collapse

Constructor Details

#initialize(model_id, response, options = {}) ⇒ ResponseFactory

Initializes a new instance of the ResponseFactory class.

Parameters:

  • model_id (String)

    The model_id of response builder to create (Amazon Bedrock model id).

  • response (Object)

    The raw response object, typically an HTTP response.

  • options (Object) (defaults to: {})

    optional attributes to customize the response.



21
22
23
24
25
# File 'lib/bedrock_runtime/response_factory.rb', line 21

def initialize(model_id, response, options = {})
  @model_id = model_id
  @response = response
  @options = options
end

Instance Method Details

#createResponseBuilders::Class

Creates and returns an instance of the specified response builder. This method uses the @type instance variable to determine which type of response builder to instantiate and return.

it returns an instance of any of the response builder classes. Returns nil if the model_id does not match any known response builders.

Returns:

  • (ResponseBuilders::Class)

    Depending on the model_id,



34
35
36
37
# File 'lib/bedrock_runtime/response_factory.rb', line 34

def create
  builder_class = models_to_builders[@model_id]
  builder_class.new(@response, @options)
end

#models_to_buildersHash

Defines a mapping from model identifiers to their respective builder classes.

Returns:

  • (Hash)

    The mapping of model identifiers to builder classes.



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/bedrock_runtime/response_factory.rb', line 42

def models_to_builders
  {
    'ai21.j2-mid-v1' => ResponseBuilders::Ai21Labs,
    'ai21.j2-ultra-v1' => ResponseBuilders::Ai21Labs,
    'amazon.titan-image-generator-v1' => ResponseBuilders::AmazonImage,
    'amazon.titan-text-lite-v1' => ResponseBuilders::AmazonText,
    'amazon.titan-text-express-v1' => ResponseBuilders::AmazonText,
    'anthropic.claude-instant-v1' => ResponseBuilders::Anthropic,
    'anthropic.claude-v1' => ResponseBuilders::Anthropic,
    'anthropic.claude-v2' => ResponseBuilders::Anthropic,
    'cohere.command-light-text-v14' => ResponseBuilders::CohereCommand,
    'cohere.command-text-v14' => ResponseBuilders::CohereCommand,
    'cohere.embed-english-v3' => ResponseBuilders::CohereEmbed,
    'cohere.embed-multilingual-v3' => ResponseBuilders::CohereEmbed,
    'meta.llama2-13b-chat-v1' => ResponseBuilders::Meta,
    'meta.llama2-70b-chat-v1' => ResponseBuilders::Meta,
    'meta.llama3-70b-instruct-v1:0' => ResponseBuilders::Meta,
    'meta.llama3-8b-instruct-v1:0' => ResponseBuilders::Meta,
    'stability.stable-diffusion-xl-v0' => ResponseBuilders::StabilityAi,
    'stability.stable-diffusion-xl-v1' => ResponseBuilders::StabilityAi
  }
end