AWS S3 Vectors

Store and query vector embeddings using AWS S3 Vectors with similarity search.

What’s inside

Please refer to the above links for usage and configuration details.

Maven coordinates

<dependency>
    <groupId>org.apache.camel.springboot</groupId>
    <artifactId>camel-aws2-s3-vectors-starter</artifactId>
</dependency>

Spring Boot Auto-Configuration

The starter supports 34 options, which are listed below.

Name Description Default Type

camel.component.aws2-s3-vectors.access-key

Amazon AWS Access Key

String

camel.component.aws2-s3-vectors.autowired-enabled

Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.

true

Boolean

camel.component.aws2-s3-vectors.bridge-error-handler

Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. Important: This is only possible if the 3rd party component allows Camel to be alerted if an exception was thrown. Some components handle this internally only, and therefore bridgeErrorHandler is not possible. In other situations we may improve the Camel component to hook into the 3rd party component and make this possible for future releases. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.

false

Boolean

camel.component.aws2-s3-vectors.configuration

The component configuration. The option is a org.apache.camel.component.aws2.s3vectors.AWS2S3VectorsConfiguration type.

AWS2S3VectorsConfiguration

camel.component.aws2-s3-vectors.consumer-metadata-filter

Optional metadata filter for the consumer to filter vectors during polling

String

camel.component.aws2-s3-vectors.consumer-query-vector

The query vector to use for the consumer to poll for similar vectors. Specified as comma-separated float values (e.g., 0.1,0.2,0.3). If not specified, the consumer will not poll.

String

camel.component.aws2-s3-vectors.data-type

The data type of the vector. Options: float32, float16

float32

String

camel.component.aws2-s3-vectors.delay

Milliseconds before the next poll for the consumer

500

Long

camel.component.aws2-s3-vectors.delete-after-read

Delete vectors after they have been consumed

false

Boolean

camel.component.aws2-s3-vectors.distance-metric

The distance metric to use for similarity search. Options: cosine, euclidean, dot-product

cosine

String

camel.component.aws2-s3-vectors.enabled

Whether to enable auto configuration of the aws2-s3-vectors component. This is enabled by default.

Boolean

camel.component.aws2-s3-vectors.health-check-consumer-enabled

Used for enabling or disabling all consumer based health checks from this component

true

Boolean

camel.component.aws2-s3-vectors.health-check-producer-enabled

Used for enabling or disabling all producer based health checks from this component. Notice: Camel has by default disabled all producer based health-checks. You can turn on producer checks globally by setting camel.health.producersEnabled=true.

true

Boolean

camel.component.aws2-s3-vectors.lazy-start-producer

Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.

false

Boolean

camel.component.aws2-s3-vectors.max-messages-per-poll

The maximum number of messages to consume per poll for the consumer

10

Integer

camel.component.aws2-s3-vectors.operation

The operation to perform

AWS2S3VectorsOperations

camel.component.aws2-s3-vectors.override-endpoint

Set the need for overriding the endpoint. This option needs to be used in combination with uriEndpointOverride option

false

Boolean

camel.component.aws2-s3-vectors.profile-credentials-name

If using a profile credentials provider, this parameter will set the profile name

String

camel.component.aws2-s3-vectors.proxy-host

To define a proxy host when instantiating the S3 Vectors client

String

camel.component.aws2-s3-vectors.proxy-port

To define a proxy port when instantiating the S3 Vectors client

Integer

camel.component.aws2-s3-vectors.proxy-protocol

To define a proxy protocol when instantiating the S3 Vectors client

https

Protocol

camel.component.aws2-s3-vectors.region

The region in which S3 Vectors client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1)

String

camel.component.aws2-s3-vectors.s3-vectors-client

Reference to a software.amazon.awssdk.services.s3vectors.S3VectorsClient in the registry. The option is a software.amazon.awssdk.services.s3vectors.S3VectorsClient type.

S3VectorsClient

camel.component.aws2-s3-vectors.secret-key

Amazon AWS Secret Key

String

camel.component.aws2-s3-vectors.session-token

Amazon AWS Session Token used when the user needs to assume an IAM role

String

camel.component.aws2-s3-vectors.similarity-threshold

The minimum similarity threshold for results

Float

camel.component.aws2-s3-vectors.top-k

The number of top similar vectors to return in a query

10

Integer

camel.component.aws2-s3-vectors.trust-all-certificates

If we want to trust all certificates in case of overriding the endpoint

false

Boolean

camel.component.aws2-s3-vectors.uri-endpoint-override

Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option

String

camel.component.aws2-s3-vectors.use-default-credentials-provider

Set whether the S3 Vectors client should expect to load credentials through a default credentials provider.

false

Boolean

camel.component.aws2-s3-vectors.use-profile-credentials-provider

Set whether the S3 Vectors client should expect to load credentials through a profile credentials provider.

false

Boolean

camel.component.aws2-s3-vectors.use-session-credentials

Set whether the S3 Vectors client should expect to use Session Credentials. This is useful in a situation in which the user needs to assume an IAM role for doing operations in S3 Vectors.

false

Boolean

camel.component.aws2-s3-vectors.vector-dimensions

The dimensions of the vector embeddings (default: 1536, which is the dimension for OpenAI text-embedding-3-small)

1536

Integer

camel.component.aws2-s3-vectors.vector-index-name

The name of the vector index

String