From 0e3192a8df7dc0a45392e5f27cd91818f4b795d8 Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Sun, 17 Dec 2023 23:31:28 +0100 Subject: [PATCH] Add AWS Bedrock AI support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add spring-ai-bedrock project with support for Cohere, Llama2, Ai21 Jurassic 2, Titan and Anthropic LLM models. - Add native API clients for CohereChat CohereEmbedding , Llama2Chat, JurassicChat, TitanChat and TitanEmbedding models, supporting both single shot and streaming completions (for the models that allows it) - Add ITs tests for the native API clients. - Implement Chat (AiClient) and ChatStreaming (AiStreamingClient) and EmbeddingClients (according to the models’ support for those) for Cohere, Llama2, and Anthropica. Titan and Jurassic2 are WIP. - Add ITs for the ChatClient, ChatStreamingClient and EmbeddingClient implementations. - Add Spring Boot Auto-configurations with flexible properties for the Llama2, Anthropic and Cohere modes + ITs - Add Spring Boot Starter configurations for all Bedrock models. - Add README documentations for all models. - Add BedrockAi APIs AOT hints - Add Ai21Jurassic2ChatBedrockApi, TitanEmbeddingBedrockApi, TitanChatBedrockApi - Add TitanChatBedrockApi Resolves #66 --- pom.xml | 3 + .../openai/client/AzureOpenAiClient.java | 2 +- spring-ai-bedrock/README.md | 83 ++++ spring-ai-bedrock/README_ANTHROPIC_CHAT.md | 90 +++++ spring-ai-bedrock/README_COHERE_CHAT.md | 178 +++++++++ spring-ai-bedrock/README_COHERE_EMBEDDING.md | 72 ++++ spring-ai-bedrock/README_JURASSIC2_CHAT.md | 7 + spring-ai-bedrock/README_LLAMA2_CHAT.md | 89 +++++ spring-ai-bedrock/README_TITAN_CHAT.md | 5 + spring-ai-bedrock/README_TITAN_EMBEDDING.md | 6 + spring-ai-bedrock/pom.xml | 58 +++ .../ai/bedrock/BedrockUsage.java | 61 +++ .../ai/bedrock/MessageToPromptConverter.java | 91 +++++ .../anthropic/BedrockAnthropicChatClient.java | 135 +++++++ .../api/AnthropicChatBedrockApi.java | 224 +++++++++++ .../ai/bedrock/api/AbstractBedrockApi.java | 266 +++++++++++++ .../cohere/BedrockCohereChatClient.java | 154 ++++++++ .../cohere/BedrockCohereEmbeddingClient.java | 102 +++++ .../cohere/api/CohereChatBedrockApi.java | 364 ++++++++++++++++++ .../cohere/api/CohereEmbeddingBedrockApi.java | 181 +++++++++ .../api/Ai21Jurassic2ChatBedrockApi.java | 277 +++++++++++++ .../llama2/BedrockLlama2ChatClient.java | 121 ++++++ .../llama2/api/Llama2ChatBedrockApi.java | 200 ++++++++++ .../titan/api/TitanChatBedrockApi.java | 230 +++++++++++ .../titan/api/TitanEmbeddingBedrockApi.java | 159 ++++++++ .../BedrockAnthropicChatClientIT.java | 167 ++++++++ .../api/AnthropicChatBedrockApiIT.java | 86 +++++ .../cohere/BedrockCohereChatClientIT.java | 167 ++++++++ .../BedrockCohereEmbeddingClientIT.java | 68 ++++ .../cohere/api/CohereChatBedrockApiIT.java | 147 +++++++ .../api/CohereEmbeddingBedrockApiIT.java | 59 +++ .../api/Ai21Jurassic2ChatBedrockApiIT.java | 64 +++ .../llama2/BedrockLlama2ChatClientIT.java | 172 +++++++++ .../llama2/api/Llama2ChatBedrockApiIT.java | 79 ++++ .../titan/api/TitanChatBedrockApiIT.java | 67 ++++ .../titan/api/TitanEmbeddingBedrockApiIT.java | 76 ++++ .../resources/doc/Bedrock Cohere Chat API.jpg | Bin 0 -> 438847 bytes .../doc/Bedrock Cohere Embedding API.jpg | Bin 0 -> 387743 bytes .../resources/doc/Bedrock-Llama2-Chat-API.jpg | Bin 0 -> 314698 bytes .../test/resources/prompts/system-message.st | 4 + .../src/test/resources/spring_framework.png | Bin 0 -> 43647 bytes spring-ai-core/pom.xml | 7 - .../ai/embedding/Embedding.java | 14 + .../ai/embedding/EmbeddingResponse.java | 28 ++ .../ai/parser/BeanOutputParser.java | 3 +- .../ai/prompt/messages/AbstractMessage.java | 5 - .../ai/prompt/messages/Message.java | 2 - spring-ai-huggingface/pom.xml | 5 + spring-ai-openai/pom.xml | 12 +- .../ai/openai/client/OpenAiClientIT.java | 10 +- spring-ai-spring-boot-autoconfigure/pom.xml | 7 + .../ai/autoconfigure/NativeHints.java | 34 +- .../BedrockAwsConnectionConfiguration.java | 49 +++ .../BedrockAwsConnectionProperties.java | 71 ++++ ...BedrockAnthropicChatAutoConfiguration.java | 73 ++++ .../BedrockAnthropicChatProperties.java | 151 ++++++++ .../BedrockCohereChatAutoConfiguration.java | 74 ++++ .../cohere/BedrockCohereChatProperties.java | 202 ++++++++++ ...drockCohereEmbeddingAutoConfiguration.java | 67 ++++ .../BedrockCohereEmbeddingProperties.java | 94 +++++ .../BedrockLlama2ChatAutoConfiguration.java | 68 ++++ .../llama2/BedrockLlama2ChatProperties.java | 106 +++++ .../vertexai/VertexAiAutoConfiguration.java | 10 +- ...ot.autoconfigure.AutoConfiguration.imports | 5 + ...drockAnthropicChatAutoConfigurationIT.java | 153 ++++++++ .../BedrockCohereChatAutoConfigurationIT.java | 164 ++++++++ ...ockCohereEmbeddingAutoConfigurationIT.java | 141 +++++++ .../BedrockLlama2ChatAutoConfigurationIT.java | 154 ++++++++ .../openai/OpenAiAutoConfigurationIT.java | 70 ++++ .../spring-ai-starter-bedrock-ai/pom.xml | 42 ++ .../vertex/generation/VertexAiChatClient.java | 18 +- vector-stores/spring-ai-chroma/pom.xml | 5 + 72 files changed, 6115 insertions(+), 43 deletions(-) create mode 100644 spring-ai-bedrock/README.md create mode 100644 spring-ai-bedrock/README_ANTHROPIC_CHAT.md create mode 100644 spring-ai-bedrock/README_COHERE_CHAT.md create mode 100644 spring-ai-bedrock/README_COHERE_EMBEDDING.md create mode 100644 spring-ai-bedrock/README_JURASSIC2_CHAT.md create mode 100644 spring-ai-bedrock/README_LLAMA2_CHAT.md create mode 100644 spring-ai-bedrock/README_TITAN_CHAT.md create mode 100644 spring-ai-bedrock/README_TITAN_EMBEDDING.md create mode 100644 spring-ai-bedrock/pom.xml create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/BedrockUsage.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/MessageToPromptConverter.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/api/AbstractBedrockApi.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApi.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApi.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApi.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClient.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApi.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApi.java create mode 100644 spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApi.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClientIT.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApiIT.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClientIT.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClientIT.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApiIT.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApiIT.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApiIT.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClientIT.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApiIT.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApiIT.java create mode 100644 spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApiIT.java create mode 100644 spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Chat API.jpg create mode 100644 spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Embedding API.jpg create mode 100644 spring-ai-bedrock/src/test/resources/doc/Bedrock-Llama2-Chat-API.jpg create mode 100644 spring-ai-bedrock/src/test/resources/prompts/system-message.st create mode 100644 spring-ai-bedrock/src/test/resources/spring_framework.png create mode 100644 spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/BedrockAwsConnectionConfiguration.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/BedrockAwsConnectionProperties.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfiguration.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatProperties.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfiguration.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatProperties.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfiguration.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingProperties.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatAutoConfiguration.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatProperties.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfigurationIT.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfigurationIT.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfigurationIT.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatAutoConfigurationIT.java create mode 100644 spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfigurationIT.java create mode 100644 spring-ai-spring-boot-starters/spring-ai-starter-bedrock-ai/pom.xml diff --git a/pom.xml b/pom.xml index 7ca668ba2..56d9da964 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,8 @@ vector-stores/spring-ai-redis spring-ai-vertex-ai spring-ai-spring-boot-starters/spring-ai-starter-vertex-ai + spring-ai-bedrock + spring-ai-spring-boot-starters/spring-ai-starter-bedrock-ai @@ -98,6 +100,7 @@ 1.0.0-beta.3 0.6.1 4.31.1 + 2.22.0 3.0.0 diff --git a/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/client/AzureOpenAiClient.java b/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/client/AzureOpenAiClient.java index 656ba0adf..3ccaaf06c 100644 --- a/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/client/AzureOpenAiClient.java +++ b/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/client/AzureOpenAiClient.java @@ -114,7 +114,7 @@ public class AzureOpenAiClient implements AiClient { List azureMessages = new ArrayList<>(); for (Message message : messages) { - String messageType = message.getMessageTypeValue(); + String messageType = message.getMessageType().getValue(); ChatRole chatRole = ChatRole.fromString(messageType); azureMessages.add(new ChatMessage(chatRole, message.getContent())); } diff --git a/spring-ai-bedrock/README.md b/spring-ai-bedrock/README.md new file mode 100644 index 000000000..492b62b03 --- /dev/null +++ b/spring-ai-bedrock/README.md @@ -0,0 +1,83 @@ +# Bedrock AI Chat and Embedding Clients + +[Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) is a managed service that provides foundation models from various AI providers, available through a unified API. + +Spring AI implements `API` clients for the [Bedrock models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids-arns.html) along with implementations for the `AiClient`, `AiStreamingClient` and the `EmbeddingClient`. + +The API clients provide structured, type-safe implementation for the Bedrock models, while the `AiClient`, `AiStreamingClient` and the `EmbeddingClient` implementations provide Chat and Embedding clients compliant with the Spring-AI API. Later can be used interchangeably with the other (e.g. OpenAI, Azure OpenAI, +Ollama) model clients. + +Also Spring-AI provides Spring Auto-Configurations and Boot Starters for all clients, making it easy to bootstrap and configure for the Bedrocks models. + +## Prerequisite + +* AWS credentials. + + If you dont have AWS account and AWS Cli configured yet then this video guide can help you to configure it: [AWS CLI & SDK Setup in Less Than 4 Minutes!](https://youtu.be/gswVHTrRX8I?si=buaY7aeI0l3-bBVb). + You should be able to obtain your access and security keys. + +* Enable Bedrock models to use + + Go to [Amazon Bedrock](https://us-east-1.console.aws.amazon.com/bedrock/home) and from the [Model Access](https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess) menu on the left configure the access to the models you are going to use. + +## Quick start + +Add the `spring-ai-bedrock-ai-spring-boot-starter` dependency to your project POM: + +```xml + + spring-ai-bedrock-ai-spring-boot-starter + org.springframework.ai + 0.8.0-SNAPSHOT + +``` + +### Connect to AWS Bedrock + +Use the `BedrockAwsConnectionProperties` to configure the AWS credentials and region: + +```shell +spring.ai.bedrock.aws.region=us-east-1 + +spring.ai.bedrock.aws.access-key=YOUR_ACCESS_KEY +spring.ai.bedrock.aws.secret-key=YOUR_SECRET_KEY +``` + +The `region` property is compulsory. + +The AWS credentials are resolved in the following this order: + +* Spring-AI Bedrock `spring.ai.bedrock.aws.access-key` and `spring.ai.bedrock.aws.secret-key` properties. +* Java System Properties - `aws.accessKeyId` and `aws.secretAccessKey` +* Environment Variables - `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` +* Web Identity Token credentials from system properties or environment variables +* Credential profiles file at the default location (`~/.aws/credentials`) shared by all AWS SDKs and the AWS CLI +* Credentials delivered through the Amazon EC2 container service if `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`" environment variable is set and security manager has permission to access the variable, +* Instance profile credentials delivered through the Amazon EC2 metadata service or set the `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` environment variables. + +### Enable selected Bedrock model + +> **NOTE**: By default all models are disabled. You have to enable the chosen Bedrock models explicitly, using the `spring.ai.bedrock...enabled=true` property. + +Here are the supported `` and `` combinations: + +| Model | Chat | Chat Streaming | Embedding | +| ------------- | ------------- | ------------- | ------------- | +| llama2 | Yes | Yes | No | +| cohere | Yes | Yes | Yes | +| anthropic | Yes | Yes | No | +| jurassic2 | Yes | No | No | +| titan | Yes | Yes | Yes (no batch mode!) | + +For example to enable the bedrock Llama2 Chat client you need to set the +`spring.ai.bedrock.llama2.chat.enabled=true`. + +Next you can use the `spring.ai.bedrock...*` properties to configure each model as provided in its documentation: + +* [Spring AI Bedrock Llama2 Chat](./README_LLAMA2_CHAT.md) - `spring.ai.bedrock.llama2.chat=true` +* [Spring AI Bedrock Cohere Chat](./README_COHERE_CHAT.md) - `spring.ai.bedrock.cohere.chat=true` +* [Spring AI Bedrock Cohere Embedding](./README_COHERE_EMBEDDING.md) - `spring.ai.bedrock.cohere.embedding=true` +* [Spring AI Bedrock Anthropic Chat](./README_ANTHROPIC_CHAT.md) - `spring.ai.bedrock.anthropic.chat=true` +* (WIP) [Spring AI Bedrock Titan Chat](./README_TITAN_CHAT.md) - `spring.ai.bedrock.titan.chat=true` +* (WIP) [Spring AI Bedrock Titan Embedding](./README_TITAN_EMBEDING.md) - `spring.ai.bedrock.titan.embedding=true` +* (WIP) [Spring AI Bedrock Ai21 Jurassic2 Chat](./README_JURASSIC2_CHAT.md) - `spring.ai.bedrock.jurassic2.chat=true` diff --git a/spring-ai-bedrock/README_ANTHROPIC_CHAT.md b/spring-ai-bedrock/README_ANTHROPIC_CHAT.md new file mode 100644 index 000000000..a8e6b5fcd --- /dev/null +++ b/spring-ai-bedrock/README_ANTHROPIC_CHAT.md @@ -0,0 +1,90 @@ +# 1. Bedrock Anthropic + +Provides Bedrock Anthropic Chat API and Spring-AI chat clients. + +## 1.1 AnthropicChatBedrockApi + +[AnthropicChatBedrockApi](./src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java) provides is lightweight Java client on top of AWS Bedrock [Anthropic Claude models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-claude.html). + +Following class diagram illustrates the Llama2ChatBedrockApi interface and building blocks: + +![AnthropicChatBedrockApi Class Diagram](./src/test/resources/doc/Bedrock-Anthropic-Chat-API.jpg) + +The AnthropicChatBedrockApi supports the `anthropic.claude-instant-v1` and `anthropic.claude-v2` models. + +Also the AnthropicChatBedrockApi supports both synchronous (e.g. `chatCompletion()`) and streaming (e.g. `chatCompletionStream()`) responses. + +Here is a simple snippet how to use the api programmatically: + +```java +AnthropicChatBedrockApi anthropicChatApi = new AnthropicChatBedrockApi( + AnthropicModel.CLAUDE_V2.id(), + Region.EU_CENTRAL_1.id()); + +AnthropicChatRequest request = AnthropicChatRequest + .builder(String.format(AnthropicChatBedrockApi.PROMPT_TEMPLATE, "Name 3 famous pirates")) + .withTemperature(0.8f) + .withMaxTokensToSample(300) + .withTopK(10) + // .withStopSequences(List.of("\n\nHuman:")) + .build(); + +AnthropicChatResponse response = anthropicChatApi.chatCompletion(request); + +System.out.println(response.completion()); + +// Streaming response +Flux responseStream = anthropicChatApi.chatCompletionStream(request); + +List responses = responseStream.collectList().block(); + +System.out.println(responses); +``` + +Follow the [AnthropicChatBedrockApi.java](./src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java)'s JavaDoc for further information. + +## 1.2 BedrockAnthropicChatClient + +[BedrockAnthropicChatClient](./src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java) implements the Spring-Ai `AiClient` and `AiStreamingClient` on top of the `AnthropicChatBedrockApi`. + +You can use like this: + +```java +@Bean +public AnthropicChatBedrockApi anthropicApi() { + return new AnthropicChatBedrockApi( + AnthropicChatBedrockApi.AnthropicModel.CLAUDE_V2.id(), + EnvironmentVariableCredentialsProvider.create(), + Region.EU_CENTRAL_1.id(), + new ObjectMapper()); +} + +@Bean +public BedrockAnthropicChatClient anthropicChatClient(AnthropicChatBedrockApi anthropicApi) { + return new BedrockAnthropicChatClient(anthropicApi); +} +``` + +or you can leverage the `spring-ai-bedrock-ai-spring-boot-starter` Spring Boot starter: + +```xml + + spring-ai-bedrock-ai-spring-boot-starter + org.springframework.ai + 0.8.0-SNAPSHOT + +``` + +And set `spring.ai.bedrock.anthropic.chat.enabled=true`. +By default the client is disabled. + +Use the `BedrockAnthropicChatProperties` to configure the Bedrock Llama2 Chat client: + +| Property | Description | Default | +| ------------- | ------------- | ------------- | +| spring.ai.bedrock.anthropic.chat.enable | Enable Bedrock Llama2 chat client. Disabled by default | false | +| spring.ai.bedrock.anthropic.chat.awsRegion | AWS region to use. | us-east-1 | +| spring.ai.bedrock.anthropic.chat.temperature | Controls the randomness of the output. Values can range over [0.0,1.0] | 0.8 | +| spring.ai.bedrock.anthropic.chat.topP | The maximum cumulative probability of tokens to consider when sampling. | AWS Bedrock default | +| spring.ai.bedrock.anthropic.chat.maxGenLen | Specify the maximum number of tokens to use in the generated response. | 300 | +| spring.ai.bedrock.anthropic.chat.model | The model id to use. See the `Llama2ChatCompletionModel` for the supported models. | meta.llama2-70b-chat-v1 | diff --git a/spring-ai-bedrock/README_COHERE_CHAT.md b/spring-ai-bedrock/README_COHERE_CHAT.md new file mode 100644 index 000000000..37e64a506 --- /dev/null +++ b/spring-ai-bedrock/README_COHERE_CHAT.md @@ -0,0 +1,178 @@ +# 1. Bedrock Cohere Chat + +Provides Bedrock Cohere Chat clients. + +## 1.1 CohereChatBedrockApi + +[CohereChatBedrockApi](./src/main/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApi.java) provides is lightweight Java client on top of AWS Bedrock [Cohere Command models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-cohere-command.html). + +Following class diagram illustrates the Llama2ChatBedrockApi interface and building blocks: + +![CohereChatBedrockApi Class Diagram](./src/test/resources/doc/Bedrock%20Cohere%20Chat%20API.jpg) + +The CohereChatBedrockApi supports the `cohere.command-light-text-v14` and `cohere.command-text-v14` models for bot synchronous (e.g. `chatCompletion()`) and streaming (e.g. `chatCompletionStream()`) responses. + +Here is a simple snippet how to use the api programmatically: + +```java +CohereChatBedrockApi cohereChatApi = new CohereChatBedrockApi( + CohereChatModel.COHERE_COMMAND_V14.id(), + Region.US_EAST_1.id()); + +var request = CohereChatRequest + .builder("What is the capital of Bulgaria and what is the size? What it the national anthem?") + .withStream(false) + .withTemperature(0.5f) + .withTopP(0.8f) + .withTopK(15) + .withMaxTokens(100) + .withStopSequences(List.of("END")) + .withReturnLikelihoods(CohereChatRequest.ReturnLikelihoods.ALL) + .withNumGenerations(3) + .withLogitBias(null) + .withTruncate(Truncate.NONE) + .build(); + +CohereChatResponse response = cohereChatApi.chatCompletion(request); + +var request = CohereChatRequest + .builder("What is the capital of Bulgaria and what is the size? What it the national anthem?") + .withStream(true) + .withTemperature(0.5f) + .withTopP(0.8f) + .withTopK(15) + .withMaxTokens(100) + .withStopSequences(List.of("END")) + .withReturnLikelihoods(CohereChatRequest.ReturnLikelihoods.ALL) + .withNumGenerations(3) + .withLogitBias(null) + .withTruncate(Truncate.NONE) + .build(); + +Flux responseStream = cohereChatApi.chatCompletionStream(request); +List responses = responseStream.collectList().block(); +``` + +## 1.2 BedrockCohereChatClient + +[BedrockCohereChatClient](./src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java) implements the Spring-Ai `AiClient` and `AiStreamingClient` on top of the `CohereChatBedrockApi`. + +You can use like this: + +```java +@Bean +public CohereChatBedrockApi cohereApi() { + return new CohereChatBedrockApi( + CohereChatModel.COHERE_COMMAND_V14.id(), + EnvironmentVariableCredentialsProvider.create(), + Region.US_EAST_1.id(), + new ObjectMapper()); +} + +@Bean +public BedrockCohereChatClient cohereChatClient(CohereChatBedrockApi cohereApi) { + return new BedrockCohereChatClient(cohereApi); +} +``` + +or you can leverage the `spring-ai-bedrock-ai-spring-boot-starter` Boot starter. For this add the following dependency: + +```xml + + spring-ai-bedrock-ai-spring-boot-starter + org.springframework.ai + 0.8.0-SNAPSHOT + +``` + +**NOTE:** You have to enable the Bedrock Cohere chat client with `spring.ai.bedrock.cohere.chat.enabled=true`. +By default the client is disabled. + +Use the `BedrockCohereChatProperties` to configure the Bedrock Cohere Chat client: + +| Property | Description | Default | +| ------------- | ------------- | ------------- | +| spring.ai.bedrock.cohere.chat.enable | Enable Bedrock Cohere chat client. Disabled by default | false | +| spring.ai.bedrock.cohere.chat.awsRegion | AWS region to use. | us-east-1 | +| spring.ai.bedrock.cohere.chat.model | The model id to use. See the `CohereChatModel` for the supported models. | cohere.command-text-v14 | +| spring.ai.bedrock.cohere.chat.temperature | Controls the randomness of the output. Values can range over [0.0,1.0] | 0.7 | +| spring.ai.bedrock.cohere.chat.topP | The maximum cumulative probability of tokens to consider when sampling. | AWS Bedrock default | +| spring.ai.bedrock.cohere.chat.topK | Specify the number of token choices the model uses to generate the next token | AWS Bedrock default | +| spring.ai.bedrock.cohere.chat.maxTokens | Specify the maximum number of tokens to use in the generated response. | AWS Bedrock default | +| spring.ai.bedrock.cohere.chat.stopSequences | Configure up to four sequences that the model recognizes. | AWS Bedrock default | +| spring.ai.bedrock.cohere.chat.returnLikelihoods | The token likelihoods are returned with the response. | AWS Bedrock default | +| spring.ai.bedrock.cohere.chat.numGenerations | The maximum number of generations that the model should return. | AWS Bedrock default | +| spring.ai.bedrock.cohere.chat.logitBiasToken | Prevents the model from generating unwanted tokens or incentivize the model to include desired tokens. | AWS Bedrock default | +| spring.ai.bedrock.cohere.chat.logitBiasBias | Prevents the model from generating unwanted tokens or incentivize the model to include desired tokens. | AWS Bedrock default | +| spring.ai.bedrock.cohere.chat.truncate | Specifies how the API handles inputs longer than the maximum token length | AWS Bedrock default | + +### 2.3 CohereEmbeddingBedrockApi + +[CohereEmbeddingBedrockApi](./src/main/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApi.java) provides is lightweight Java client on top of AWS Bedrock [Cohere Embed models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-embed.html). + +Following class diagram illustrates the Llama2ChatBedrockApi interface and building blocks: + +![CohereEmbeddingBedrockApi Class Diagram](./src/test/resources/doc/Bedrock%20Cohere%20Embedding%20API.jpg) + +The CohereEmbeddingBedrockApi supports the `cohere.embed-english-v3` and `cohere.embed-multilingual-v3` models for single and batch embedding computation. + +Here is a simple snippet how to use the api programmatically: + +```java +CohereEmbeddingBedrockApi api = new CohereEmbeddingBedrockApi( + CohereEmbeddingModel.COHERE_EMBED_MULTILINGUAL_V1.id(), + EnvironmentVariableCredentialsProvider.create(), + Region.US_EAST_1.id(), new ObjectMapper()); + +CohereEmbeddingRequest request = new CohereEmbeddingRequest( + List.of("I like to eat apples", "I like to eat oranges"), + CohereEmbeddingRequest.InputType.search_document, + CohereEmbeddingRequest.Truncate.NONE); + +CohereEmbeddingResponse response = api.embedding(request); + +assertThat(response.embeddings()).hasSize(2); +assertThat(response.embeddings().get(0)).hasSize(1024); +``` + +### 2.4 BedrockCohereEmbeddingClient + +[BedrockCohereEmbeddingClient](./src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java) implements the Spring-Ai `EmbeddingClient` on top of the `CohereEmbeddingBedrockApi`. + +You can use like this: + +```java +@Bean +public CohereEmbeddingBedrockApi cohereEmbeddingApi() { + return new CohereEmbeddingBedrockApi(CohereEmbeddingModel.COHERE_EMBED_MULTILINGUAL_V1.id(), + EnvironmentVariableCredentialsProvider.create(), Region.US_EAST_1.id(), new ObjectMapper()); +} + +@Bean +public BedrockCohereEmbeddingClient cohereAiEmbedding(CohereEmbeddingBedrockApi cohereEmbeddingApi) { + return new BedrockCohereEmbeddingClient(cohereEmbeddingApi); +} +``` + +or you can leverage the `spring-ai-bedrock-ai-spring-boot-starter` Boot starter. For this add the following dependency: + +```xml + + spring-ai-bedrock-ai-spring-boot-starter + org.springframework.ai + 0.8.0-SNAPSHOT + +``` + +**NOTE:** You have to enable the Bedrock Cohere chat client with `spring.ai.bedrock.cohere.embedding.enabled=true`. +By default the client is disabled. + +Use the `BedrockCohereEmbeddingProperties` to configure the Bedrock Cohere Chat client: + +| Property | Description | Default | +| ------------- | ------------- | ------------- | +| spring.ai.bedrock.cohere.embedding.enable | Enable Bedrock Cohere chat client. Disabled by default | false | +| spring.ai.bedrock.cohere.embedding.awsRegion | AWS region to use. | us-east-1 | +| spring.ai.bedrock.cohere.embedding.model | The model id to use. See the `CohereEmbeddingModel` for the supported models. | cohere.embed-multilingual-v3 | +| spring.ai.bedrock.cohere.embedding.inputType | Prepends special tokens to differentiate each type from one another. You should not mix different types together, except when mixing types for for search and retrieval. In this case, embed your corpus with the search_document type and embedded queries with type search_query type. | search_document | +| spring.ai.bedrock.cohere.embedding.truncate | Specifies how the API handles inputs longer than the maximum token length. | NONE | diff --git a/spring-ai-bedrock/README_COHERE_EMBEDDING.md b/spring-ai-bedrock/README_COHERE_EMBEDDING.md new file mode 100644 index 000000000..3335c040f --- /dev/null +++ b/spring-ai-bedrock/README_COHERE_EMBEDDING.md @@ -0,0 +1,72 @@ +# 1. Bedrock Cohere Embedding + +## 1.1 CohereEmbeddingBedrockApi + +[CohereEmbeddingBedrockApi](./src/main/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApi.java) provides is lightweight Java client on top of AWS Bedrock [Cohere Embed models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-embed.html). + +Following class diagram illustrates the Llama2ChatBedrockApi interface and building blocks: + +![CohereEmbeddingBedrockApi Class Diagram](./src/test/resources/doc/Bedrock%20Cohere%20Embedding%20API.jpg) + +The CohereEmbeddingBedrockApi supports the `cohere.embed-english-v3` and `cohere.embed-multilingual-v3` models for single and batch embedding computation. + +Here is a simple snippet how to use the api programmatically: + +```java +CohereEmbeddingBedrockApi api = new CohereEmbeddingBedrockApi( + CohereEmbeddingModel.COHERE_EMBED_MULTILINGUAL_V1.id(), + EnvironmentVariableCredentialsProvider.create(), + Region.US_EAST_1.id(), new ObjectMapper()); + +CohereEmbeddingRequest request = new CohereEmbeddingRequest( + List.of("I like to eat apples", "I like to eat oranges"), + CohereEmbeddingRequest.InputType.search_document, + CohereEmbeddingRequest.Truncate.NONE); + +CohereEmbeddingResponse response = api.embedding(request); + +assertThat(response.embeddings()).hasSize(2); +assertThat(response.embeddings().get(0)).hasSize(1024); +``` + +## 1.2 BedrockCohereEmbeddingClient + +[BedrockCohereEmbeddingClient](./src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java) implements the Spring-Ai `EmbeddingClient` on top of the `CohereEmbeddingBedrockApi`. + +You can use like this: + +```java +@Bean +public CohereEmbeddingBedrockApi cohereEmbeddingApi() { + return new CohereEmbeddingBedrockApi(CohereEmbeddingModel.COHERE_EMBED_MULTILINGUAL_V1.id(), + EnvironmentVariableCredentialsProvider.create(), Region.US_EAST_1.id(), new ObjectMapper()); +} + +@Bean +public BedrockCohereEmbeddingClient cohereAiEmbedding(CohereEmbeddingBedrockApi cohereEmbeddingApi) { + return new BedrockCohereEmbeddingClient(cohereEmbeddingApi); +} +``` + +or you can leverage the `spring-ai-bedrock-ai-spring-boot-starter` Boot starter. For this add the following dependency: + +```xml + + spring-ai-bedrock-ai-spring-boot-starter + org.springframework.ai + 0.8.0-SNAPSHOT + +``` + +**NOTE:** You have to enable the Bedrock Cohere chat client with `spring.ai.bedrock.cohere.embedding.enabled=true`. +By default the client is disabled. + +Use the `BedrockCohereEmbeddingProperties` to configure the Bedrock Cohere Chat client: + +| Property | Description | Default | +| ------------- | ------------- | ------------- | +| spring.ai.bedrock.cohere.embedding.enable | Enable Bedrock Cohere chat client. Disabled by default | false | +| spring.ai.bedrock.cohere.embedding.awsRegion | AWS region to use. | us-east-1 | +| spring.ai.bedrock.cohere.embedding.model | The model id to use. See the `CohereEmbeddingModel` for the supported models. | cohere.embed-multilingual-v3 | +| spring.ai.bedrock.cohere.embedding.inputType | Prepends special tokens to differentiate each type from one another. You should not mix different types together, except when mixing types for for search and retrieval. In this case, embed your corpus with the search_document type and embedded queries with type search_query type. | search_document | +| spring.ai.bedrock.cohere.embedding.truncate | Specifies how the API handles inputs longer than the maximum token length. | NONE | diff --git a/spring-ai-bedrock/README_JURASSIC2_CHAT.md b/spring-ai-bedrock/README_JURASSIC2_CHAT.md new file mode 100644 index 000000000..83bcad24f --- /dev/null +++ b/spring-ai-bedrock/README_JURASSIC2_CHAT.md @@ -0,0 +1,7 @@ +# (WIP) Ai21 Jurassic2 + +Use the [Ai21Jurassic2ChatBedrockApi.java](src/main/java/org/springframework/ai/bedrock/jurassic/api/Ai21Jurassic2ChatBedrockApi.java) Bedrock Jurassic client to implement `AiClient`. + +The Ai21Jurassic2 model doesn't support streaming! + +Consult the the existing Llama2 and Cohere implementation. diff --git a/spring-ai-bedrock/README_LLAMA2_CHAT.md b/spring-ai-bedrock/README_LLAMA2_CHAT.md new file mode 100644 index 000000000..9c448bac9 --- /dev/null +++ b/spring-ai-bedrock/README_LLAMA2_CHAT.md @@ -0,0 +1,89 @@ +# 1. Bedrock Llama2 + +Provides Bedrock Llama2 Chat API and Spring-AI chat clients. + +## 1.1 Llama2ChatBedrockApi + +[Llama2ChatBedrockApi](./src/main/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApi.java) provides is lightweight Java client on top of AWS Bedrock [Meta Llama 2 and Llama 2 Chat models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-meta.html). + +Following class diagram illustrates the Llama2ChatBedrockApi interface and building blocks: + +![Llama2ChatBedrockApi Class Diagram](./src/test/resources/doc/Bedrock-Llama2-Chat-API.jpg) + +The Llama2ChatBedrockApi supports the `meta.llama2-13b-chat-v1` and `meta.llama2-70b-chat-v1` models. + +Also the Llama2ChatBedrockApi supports both synchronous (e.g. `chatCompletion()`) and streaming (e.g. `chatCompletionStream()`) responses. + +Here is a simple snippet how to use the api programmatically: + +```java +Llama2ChatBedrockApi llama2ChatApi = new Llama2ChatBedrockApi( + Llama2ChatCompletionModel.LLAMA2_70B_CHAT_V1.id(), + Region.US_EAST_1.id()); + +Llama2ChatRequest request = Llama2ChatRequest.builder("Hello, my name is") + .withTemperature(0.9f) + .withTopP(0.9f) + .withMaxGenLen(20) + .build(); + +Llama2ChatResponse response = llama2ChatApi.chatCompletion(request); + +System.out.println(response.generation()); + +// Streaming response +Flux responseStream = llama2ChatApi.chatCompletionStream(request); + +List responses = responseStream.collectList().block(); + +System.out.println(responses); +``` + +Follow the [Llama2ChatBedrockApi.java](./src/main/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApi.java)'s JavaDoc for further information. + +## 1.2 BedrockLlama2ChatClient + +[BedrockLlama2ChatClient](./src/main/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClient.java) implements the Spring-Ai `AiClient` and `AiStreamingClient` on top of the `Llama2ChatBedrockApi`. + +You can use like this: + +```java +@Bean +public Llama2ChatBedrockApi llama2Api() { + return new Llama2ChatBedrockApi( + Llama2ChatCompletionModel.LLAMA2_70B_CHAT_V1.id(), + EnvironmentVariableCredentialsProvider.create(), + Region.US_EAST_1.id(), + new ObjectMapper()); +} + +@Bean +public BedrockLlama2ChatClient llama2ChatClient(Llama2ChatBedrockApi llama2Api) { + return new BedrockLlama2ChatClient(llama2Api); +} +``` + +or you can leverage the `spring-ai-bedrock-ai-spring-boot-starter` Spring Boot starter: + +```xml + + spring-ai-bedrock-ai-spring-boot-starter + org.springframework.ai + 0.8.0-SNAPSHOT + +``` + +And set `spring.ai.bedrock.llama2.chat.enabled=true`. +By default the client is disabled. + +Use the `BedrockLlama2ChatProperties` to configure the Bedrock Llama2 Chat client: + +| Property | Description | Default | +| ------------- | ------------- | ------------- | +| spring.ai.bedrock.llama2.chat.enable | Enable Bedrock Llama2 chat client. Disabled by default | false | +| spring.ai.bedrock.llama2.chat.awsRegion | AWS region to use. | us-east-1 | +| spring.ai.bedrock.llama2.chat.temperature | Controls the randomness of the output. Values can range over [0.0,1.0] | 0.7 | +| spring.ai.bedrock.llama2.chat.topP | The maximum cumulative probability of tokens to consider when sampling. | AWS Bedrock default | +| spring.ai.bedrock.llama2.chat.maxGenLen | Specify the maximum number of tokens to use in the generated response. | 300 | +| spring.ai.bedrock.llama2.chat.model | The model id to use. See the `Llama2ChatCompletionModel` for the supported models. | meta.llama2-70b-chat-v1 | + diff --git a/spring-ai-bedrock/README_TITAN_CHAT.md b/spring-ai-bedrock/README_TITAN_CHAT.md new file mode 100644 index 000000000..0ffe7b1bf --- /dev/null +++ b/spring-ai-bedrock/README_TITAN_CHAT.md @@ -0,0 +1,5 @@ +# (WIP) Bedrock Titan Chat + +Use the [TitanChatBedrockApi.java](src/main/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApi.java) Bedrock Titan chat client to implement `AiClient` and `AiStreamClient`. + +Consult the the existing Llama2 and Cohere implementation. \ No newline at end of file diff --git a/spring-ai-bedrock/README_TITAN_EMBEDDING.md b/spring-ai-bedrock/README_TITAN_EMBEDDING.md new file mode 100644 index 000000000..0c41c4049 --- /dev/null +++ b/spring-ai-bedrock/README_TITAN_EMBEDDING.md @@ -0,0 +1,6 @@ +# (WIP) Bedrock Titan Embedding + +Use the [TitanEmbeddingBedrockApi.java](src/main/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApi.java) Bedrock Embedding client to implement `EmbeddingClient`. + +Consult the the existing Cohere embedding client implementation. +Mind that Titan doesn't support batch embedding. You have to either emulate it (could be very expensive) or throw a not supported exception. diff --git a/spring-ai-bedrock/pom.xml b/spring-ai-bedrock/pom.xml new file mode 100644 index 000000000..903a19bc6 --- /dev/null +++ b/spring-ai-bedrock/pom.xml @@ -0,0 +1,58 @@ + + + 4.0.0 + + org.springframework.ai + spring-ai + 0.8.0-SNAPSHOT + + spring-ai-bedrock + jar + Spring AI Bedrock + Bedrock AI support + https://github.com/spring-projects/spring-ai + + + https://github.com/spring-projects/spring-ai + git://github.com/spring-projects/spring-ai.git + git@github.com:spring-projects/spring-ai.git + + + + + + + org.springframework.ai + spring-ai-core + ${project.parent.version} + + + + org.springframework + spring-web + ${spring-framework.version} + + + + org.springframework + spring-webflux + + + + software.amazon.awssdk + bedrockruntime + ${bedrockruntime.version} + + + + + org.springframework.ai + spring-ai-test + ${project.version} + test + + + + + diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/BedrockUsage.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/BedrockUsage.java new file mode 100644 index 000000000..88427d9e0 --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/BedrockUsage.java @@ -0,0 +1,61 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock; + +import org.springframework.ai.bedrock.api.AbstractBedrockApi.AmazonBedrockInvocationMetrics; +import org.springframework.ai.metadata.Usage; +import org.springframework.util.Assert; + +/** + * {@link Usage} implementation for Bedrock API. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +public class BedrockUsage implements Usage { + + public static BedrockUsage from(AmazonBedrockInvocationMetrics usage) { + return new BedrockUsage(usage); + } + + private final AmazonBedrockInvocationMetrics usage; + + protected BedrockUsage(AmazonBedrockInvocationMetrics usage) { + Assert.notNull(usage, "OpenAI Usage must not be null"); + this.usage = usage; + } + + protected AmazonBedrockInvocationMetrics getUsage() { + return this.usage; + } + + @Override + public Long getPromptTokens() { + return getUsage().inputTokenCount().longValue(); + } + + @Override + public Long getGenerationTokens() { + return getUsage().outputTokenCount().longValue(); + } + + @Override + public String toString() { + return getUsage().toString(); + } + +} diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/MessageToPromptConverter.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/MessageToPromptConverter.java new file mode 100644 index 000000000..937819a02 --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/MessageToPromptConverter.java @@ -0,0 +1,91 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock; + +import java.util.List; +import java.util.stream.Collectors; + +import org.springframework.ai.prompt.messages.Message; +import org.springframework.ai.prompt.messages.MessageType; + +/** + * Converts a list of messages to a prompt for bedrock models. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +public class MessageToPromptConverter { + + private static final String HUMAN_PROMPT = "Human:"; + + private static final String ASSISTANT_PROMPT = "Assistant:"; + + private String humanPrompt = HUMAN_PROMPT; + + private String assistantPrompt = ASSISTANT_PROMPT; + + private MessageToPromptConverter() { + } + + public static MessageToPromptConverter create() { + return new MessageToPromptConverter(); + } + + public MessageToPromptConverter withHumanPrompt(String humanPrompt) { + this.humanPrompt = humanPrompt; + return this; + } + + public MessageToPromptConverter withAssistantPrompt(String assistantPrompt) { + this.assistantPrompt = assistantPrompt; + return this; + } + + public String toPrompt(List messages) { + + final String systemMessages = messages.stream() + .filter(message -> message.getMessageType() == MessageType.SYSTEM) + .map(Message::getContent) + .collect(Collectors.joining("\n")); + + final String userMessages = messages.stream() + .filter(message -> message.getMessageType() == MessageType.USER + || message.getMessageType() == MessageType.ASSISTANT) + .map(this::messageToString) + .collect(Collectors.joining("\n")); + + final String prompt = String.format("%s%n%n%s%n%s", systemMessages, userMessages, ASSISTANT_PROMPT); + + return prompt; + } + + protected String messageToString(Message message) { + switch (message.getMessageType()) { + case SYSTEM: + return message.getContent(); + case USER: + return humanPrompt + " " + message.getContent(); + case ASSISTANT: + return assistantPrompt + " " + message.getContent(); + case FUNCTION: + throw new IllegalArgumentException("Tool execution results are not supported for Bedrock models"); + } + + throw new IllegalArgumentException("Unknown message type: " + message.getMessageType()); + } + +} diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java new file mode 100644 index 000000000..de1e8795c --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClient.java @@ -0,0 +1,135 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.anthropic; + +import java.util.List; + +import reactor.core.publisher.Flux; + +import org.springframework.ai.bedrock.MessageToPromptConverter; +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi; +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatRequest; +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatResponse; +import org.springframework.ai.client.AiClient; +import org.springframework.ai.client.AiResponse; +import org.springframework.ai.client.AiStreamClient; +import org.springframework.ai.client.Generation; +import org.springframework.ai.metadata.ChoiceMetadata; +import org.springframework.ai.prompt.Prompt; + +/** + * Java {@link AiClient} and {@link AiStreamClient} for the Bedrock Anthropic chat model. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +public class BedrockAnthropicChatClient implements AiClient, AiStreamClient { + + private final AnthropicChatBedrockApi anthropicChatApi; + + private Float temperature = 0.8f; + + private Float topP; + + private Integer maxTokensToSample = 500; + + private Integer topK = 10; + + private List stopSequences; + + private String anthropicVersion = AnthropicChatBedrockApi.DEFAULT_ANTHROPIC_VERSION; + + public BedrockAnthropicChatClient(AnthropicChatBedrockApi chatApi) { + this.anthropicChatApi = chatApi; + } + + public BedrockAnthropicChatClient withTemperature(Float temperature) { + this.temperature = temperature; + return this; + } + + public BedrockAnthropicChatClient withMaxTokensToSample(Integer maxTokensToSample) { + this.maxTokensToSample = maxTokensToSample; + return this; + } + + public BedrockAnthropicChatClient withTopK(Integer topK) { + this.topK = topK; + return this; + } + + public BedrockAnthropicChatClient withTopP(Float tpoP) { + this.topP = tpoP; + return this; + } + + public BedrockAnthropicChatClient withStopSequences(List stopSequences) { + this.stopSequences = stopSequences; + return this; + } + + public BedrockAnthropicChatClient withAnthropicVersion(String anthropicVersion) { + this.anthropicVersion = anthropicVersion; + return this; + } + + @Override + public AiResponse generate(Prompt prompt) { + final String promptValue = MessageToPromptConverter.create().toPrompt(prompt.getMessages()); + + AnthropicChatRequest request = AnthropicChatRequest.builder(promptValue) + .withTemperature(this.temperature) + .withMaxTokensToSample(this.maxTokensToSample) + .withTopK(this.topK) + .withTopP(this.topP) + .withStopSequences(this.stopSequences) + .withAnthropicVersion(this.anthropicVersion) + .build(); + + AnthropicChatResponse response = this.anthropicChatApi.chatCompletion(request); + + return new AiResponse(List.of(new Generation(response.completion()))); + } + + @Override + public Flux generateStream(Prompt prompt) { + + final String promptValue = MessageToPromptConverter.create().toPrompt(prompt.getMessages()); + + AnthropicChatRequest request = AnthropicChatRequest.builder(promptValue) + .withTemperature(this.temperature) + .withMaxTokensToSample(this.maxTokensToSample) + .withTopK(this.topK) + .withTopP(this.topP) + .withStopSequences(this.stopSequences) + .withAnthropicVersion(this.anthropicVersion) + .build(); + + Flux fluxResponse = this.anthropicChatApi.chatCompletionStream(request); + + return fluxResponse.map(response -> { + String stopReason = response.stopReason() != null ? response.stopReason() : null; + var generation = new Generation(response.completion()); + if (response.amazonBedrockInvocationMetrics() != null) { + generation = generation + .withChoiceMetadata(ChoiceMetadata.from(stopReason, response.amazonBedrockInvocationMetrics())); + } + return new AiResponse(List.of(generation)); + }); + } + +} diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java new file mode 100644 index 000000000..f059f8093 --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApi.java @@ -0,0 +1,224 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.anthropic.api; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; +import reactor.core.publisher.Flux; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; + +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatRequest; +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatResponse; +import org.springframework.ai.bedrock.api.AbstractBedrockApi; +import org.springframework.util.Assert; + +/** + * @author Christian Tzolov + */ +// @formatter:off +public class AnthropicChatBedrockApi extends + AbstractBedrockApi { + + public static final String PROMPT_TEMPLATE = "\n\nHuman:%s\n\nAssistant:"; + + /** + * Default version of the Anthropic chat model. + */ + public static final String DEFAULT_ANTHROPIC_VERSION = "bedrock-2023-05-31"; + + + /** + * Create a new AnthropicChatBedrockApi instance using the default credentials provider chain, the default object. + * @param modelId The model id to use. See the {@link AnthropicChatModel} for the supported models. + * @param region The AWS region to use. + */ + public AnthropicChatBedrockApi(String modelId, String region) { + super(modelId, region); + } + + /** + * Create a new AnthropicChatBedrockApi instance using the provided credentials provider, region and object mapper. + * + * @param modelId The model id to use. See the {@link AnthropicChatModel} for the supported models. + * @param credentialsProvider The credentials provider to connect to AWS. + * @param region The AWS region to use. + * @param objectMapper The object mapper to use for JSON serialization and deserialization. + */ + public AnthropicChatBedrockApi(String modelId, AwsCredentialsProvider credentialsProvider, String region, + ObjectMapper objectMapper) { + super(modelId, credentialsProvider, region, objectMapper); + } + + // https://github.com/build-on-aws/amazon-bedrock-java-examples/blob/main/example_code/bedrock-runtime/src/main/java/aws/community/examples/InvokeBedrockStreamingAsync.java + + // https://docs.anthropic.com/claude/reference/complete_post + + // https://docs.aws.amazon.com/bedrock/latest/userguide/br-product-ids.html + + // Anthropic Claude models: https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-claude.html + + /** + * AnthropicChatRequest encapsulates the request parameters for the Anthropic chat model. + * https://docs.anthropic.com/claude/reference/complete_post + * + * @param prompt The prompt to use for the chat. + * @param temperature (default 0.5) The temperature to use for the chat. You should either alter temperature or + * top_p, but not both. + * @param maxTokensToSample (default 200) Specify the maximum number of tokens to use in the generated response. + * Note that the models may stop before reaching this maximum. This parameter only specifies the absolute maximum + * number of tokens to generate. We recommend a limit of 4,000 tokens for optimal performance. + * @param topK (default 250) Specify the number of token choices the model uses to generate the next token. + * @param topP (default 1) Nucleus sampling to specify the cumulative probability of the next token in range [0,1]. + * In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in + * decreasing probability order and cut it off once it reaches a particular probability specified by top_p. You + * should either alter temperature or top_p, but not both. + * @param stopSequences (defaults to "\n\nHuman:") Configure up to four sequences that the model recognizes. After a + * stop sequence, the model stops generating further tokens. The returned text doesn't contain the stop sequence. + * @param anthropicVersion The version of the model to use. The default value is bedrock-2023-05-31. + */ + @JsonInclude(Include.NON_NULL) + public record AnthropicChatRequest( + @JsonProperty("prompt") String prompt, + @JsonProperty("temperature") Float temperature, + @JsonProperty("max_tokens_to_sample") Integer maxTokensToSample, + @JsonProperty("top_k") Integer topK, + @JsonProperty("top_p") Float topP, + @JsonProperty("stop_sequences") List stopSequences, + @JsonProperty("anthropic_version") String anthropicVersion) { + + public static Builder builder(String prompt) { + return new Builder(prompt); + } + + public static class Builder { + private final String prompt; + private Float temperature = 0.7f; + private Integer maxTokensToSample = 500; + private Integer topK = 10; + private Float topP; + private List stopSequences; + private String anthropicVersion = DEFAULT_ANTHROPIC_VERSION; + + private Builder(String prompt) { + this.prompt = prompt; + } + + public Builder withTemperature(Float temperature) { + this.temperature = temperature; + return this; + } + + public Builder withMaxTokensToSample(Integer maxTokensToSample) { + this.maxTokensToSample = maxTokensToSample; + return this; + } + + public Builder withTopK(Integer topK) { + this.topK = topK; + return this; + } + + public Builder withTopP(Float tpoP) { + this.topP = tpoP; + return this; + } + + public Builder withStopSequences(List stopSequences) { + this.stopSequences = stopSequences; + return this; + } + + public Builder withAnthropicVersion(String anthropicVersion) { + this.anthropicVersion = anthropicVersion; + return this; + } + + public AnthropicChatRequest build() { + return new AnthropicChatRequest( + prompt, + temperature, + maxTokensToSample, + topK, + topP, + stopSequences, + anthropicVersion + ); + } + } + } + + /** + * AnthropicChatResponse encapsulates the response parameters for the Anthropic chat model. + * + * @param completion The generated text. + * @param stopReason The reason the model stopped generating text. + * @param stop The stop sequence that caused the model to stop generating text. + * @param amazonBedrockInvocationMetrics Metrics about the model invocation. + */ + @JsonInclude(Include.NON_NULL) + public record AnthropicChatResponse( + @JsonProperty("completion") String completion, + @JsonProperty("stop_reason") String stopReason, + @JsonProperty("stop") String stop, + @JsonProperty("amazon-bedrock-invocationMetrics") AmazonBedrockInvocationMetrics amazonBedrockInvocationMetrics) { + } + + /** + * Anthropic models version. + */ + public enum AnthropicChatModel { + /** + * anthropic.claude-instant-v1 + */ + CLAUDE_INSTANT_V1("anthropic.claude-instant-v1"), + /** + * anthropic.claude-v2 + */ + CLAUDE_V2("anthropic.claude-v2"); + + private final String id; + + /** + * @return The model id. + */ + public String id() { + return id; + } + + AnthropicChatModel(String value) { + this.id = value; + } + } + + @Override + public AnthropicChatResponse chatCompletion(AnthropicChatRequest anthropicRequest) { + Assert.notNull(anthropicRequest, "'anthropicRequest' must not be null"); + return this.internalInvocation(anthropicRequest, AnthropicChatResponse.class); + } + + @Override + public Flux chatCompletionStream(AnthropicChatRequest anthropicRequest) { + Assert.notNull(anthropicRequest, "'anthropicRequest' must not be null"); + return this.internalInvocationStream(anthropicRequest, AnthropicChatResponse.class); + } + +} +// @formatter:on \ No newline at end of file diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/api/AbstractBedrockApi.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/api/AbstractBedrockApi.java new file mode 100644 index 000000000..a48baab8a --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/api/AbstractBedrockApi.java @@ -0,0 +1,266 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// @formatter:off +package org.springframework.ai.bedrock.api; + +import java.io.UncheckedIOException; +import java.nio.charset.StandardCharsets; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Sinks; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; +import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider; +import software.amazon.awssdk.core.SdkBytes; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient; +import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeClient; +import software.amazon.awssdk.services.bedrockruntime.model.InvokeModelRequest; +import software.amazon.awssdk.services.bedrockruntime.model.InvokeModelResponse; +import software.amazon.awssdk.services.bedrockruntime.model.InvokeModelWithResponseStreamRequest; +import software.amazon.awssdk.services.bedrockruntime.model.InvokeModelWithResponseStreamResponseHandler; +import software.amazon.awssdk.services.bedrockruntime.model.ResponseStream; + +/** + * Abstract class for the Bedrock API. It provides the basic functionality to invoke the chat completion model and + * receive the response for streaming and non-streaming requests. + *

+ * https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids-arns.html + *

+ * https://us-east-1.console.aws.amazon.com/bedrock/home?region=us-east-1#/modelaccess + * + * @param The input request type. + * @param The output response type. + * @param The streaming response type. For some models this type can be the same as the output response type. + * + * @see Model Parameters + + * @author Christian Tzolov + * @since 0.8.0 + */ +public abstract class AbstractBedrockApi { + + private static final Log logger = LogFactory.getLog(AbstractBedrockApi.class); + + private final String modelId; + private final ObjectMapper objectMapper; + private final AwsCredentialsProvider credentialsProvider; + private final String region; + private final BedrockRuntimeClient client; + private final BedrockRuntimeAsyncClient clientStreaming; + private final Sinks.Many eventSink; + + /** + * Create a new AbstractBedrockApi instance using default credentials provider and object mapper. + * + * @param modelId The model id to use. + * @param region The AWS region to use. + */ + public AbstractBedrockApi(String modelId, String region) { + this(modelId, ProfileCredentialsProvider.builder().build(), region, new ObjectMapper()); + } + + /** + * Create a new AbstractBedrockApi instance using the provided credentials provider, region and object mapper. + * + * @param modelId The model id to use. + * @param credentialsProvider The credentials provider to connect to AWS. + * @param region The AWS region to use. + * @param objectMapper The object mapper to use for JSON serialization and deserialization. + */ + public AbstractBedrockApi(String modelId, AwsCredentialsProvider credentialsProvider, String region, + ObjectMapper objectMapper) { + + this.modelId = modelId; + this.objectMapper = objectMapper; + this.credentialsProvider = credentialsProvider; + this.region = region; + + this.eventSink = Sinks.many().unicast().onBackpressureError(); + + this.client = BedrockRuntimeClient.builder() + .region(Region.of(this.region)) + .credentialsProvider(this.credentialsProvider) + .build(); + + this.clientStreaming = BedrockRuntimeAsyncClient.builder() + .region(Region.of(this.region)) + .credentialsProvider(this.credentialsProvider) + .build(); + } + + /** + * Encapsulates the metrics about the model invocation. + * https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-claude.html + * + * @param inputTokenCount The number of tokens in the input prompt. + * @param firstByteLatency The time in milliseconds between the request being sent and the first byte of the + * response being received. + * @param outputTokenCount The number of tokens in the generated text. + * @param invocationLatency The time in milliseconds between the request being sent and the response being received. + */ + @JsonInclude(Include.NON_NULL) + public record AmazonBedrockInvocationMetrics( + @JsonProperty("inputTokenCount") Long inputTokenCount, + @JsonProperty("firstByteLatency") Long firstByteLatency, + @JsonProperty("outputTokenCount") Long outputTokenCount, + @JsonProperty("invocationLatency") Long invocationLatency) { + } + + /** + * Compute the embedding for the given text. + * + * @param request The embedding request. + * @return Returns the embedding response. + */ + protected O embedding(I request) { + throw new UnsupportedOperationException("Embedding is not supported for this model: " + this.modelId); + } + + /** + * Chat completion invocation. + * + * @param request The chat completion request. + * @return The chat completion response. + */ + protected O chatCompletion(I request) { + throw new UnsupportedOperationException("Chat completion is not supported for this model: " + this.modelId); + } + + /** + * Chat completion invocation with streaming response. + * + * @param request The chat completion request. + * @return The chat completion response stream. + */ + protected Flux chatCompletionStream(I request) { + throw new UnsupportedOperationException( + "Streaming chat completion is not supported for this model: " + this.modelId); + } + + /** + * Internal method to invoke the model and return the response. + * https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html + * https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html + * https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/bedrockruntime/BedrockRuntimeClient.html#invokeModel + * + * @param request Model invocation request. + * @param clazz The response class type + * @return The model invocation response. + * + */ + protected O internalInvocation(I request, Class clazz) { + + SdkBytes body; + try { + body = SdkBytes.fromUtf8String(new ObjectMapper().writeValueAsString(request)); + } + catch (JsonProcessingException e) { + throw new IllegalArgumentException("Invalid JSON format for the input request: " + request, e); + } + + InvokeModelRequest invokeRequest = InvokeModelRequest.builder() + .modelId(this.modelId) + .body(body) + .build(); + + InvokeModelResponse response = this.client.invokeModel(invokeRequest); + + String responseBody = response.body().asString(StandardCharsets.UTF_8); + + try { + return this.objectMapper.readValue(responseBody, clazz); + } + catch (JsonProcessingException | UncheckedIOException e) { + + throw new IllegalArgumentException("Invalid JSON format for the response: " + responseBody, e); + } + } + + /** + * Internal method to invoke the model and return the response stream. + * + * @param request Model invocation request. + * @param clazz Response class type. + * @return The model invocation response stream. + */ + protected Flux internalInvocationStream(I request, Class clazz) { + + SdkBytes body; + try { + body = SdkBytes.fromUtf8String(this.objectMapper.writeValueAsString(request)); + } + catch (JsonProcessingException e) { + this.eventSink.tryEmitError(e); + return this.eventSink.asFlux(); + } + + InvokeModelWithResponseStreamRequest invokeRequest = InvokeModelWithResponseStreamRequest.builder() + .modelId(this.modelId) + .body(body) + .build(); + + InvokeModelWithResponseStreamResponseHandler.Visitor visitor = InvokeModelWithResponseStreamResponseHandler.Visitor + .builder() + .onChunk((chunk) -> { + try { + logger.debug("Received chunk: " + chunk.bytes().asString(StandardCharsets.UTF_8)); + SO response = this.objectMapper.readValue(chunk.bytes().asByteArray(), clazz); + this.eventSink.tryEmitNext(response); + } + catch (Exception e) { + logger.error("Failed to unmarshall", e); + this.eventSink.tryEmitError(e); + } + }) + .onDefault((event) -> { + logger.error("Unknown or unhandled event: " + event.toString()); + this.eventSink.tryEmitError(new Throwable("Unknown or unhandled event: " + event.toString())); + }) + .build(); + + InvokeModelWithResponseStreamResponseHandler responseHandler = InvokeModelWithResponseStreamResponseHandler + .builder() + .onComplete( + () -> { + this.eventSink.tryEmitComplete(); + logger.debug("\nCompleted streaming response."); + }) + .onError((error) -> { + logger.error("\n\nError streaming response: " + error.getMessage()); + this.eventSink.tryEmitError(error); + }) + .onEventStream((stream) -> { + stream.subscribe( + (ResponseStream e) -> { + e.accept(visitor); + }); + }) + .build(); + + this.clientStreaming.invokeModelWithResponseStream(invokeRequest, responseHandler); + + return this.eventSink.asFlux(); + } +} +// @formatter:on \ No newline at end of file diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java new file mode 100644 index 000000000..5befb9dce --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClient.java @@ -0,0 +1,154 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.cohere; + +import java.util.List; + +import reactor.core.publisher.Flux; + +import org.springframework.ai.bedrock.BedrockUsage; +import org.springframework.ai.bedrock.MessageToPromptConverter; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatResponse; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.LogitBias; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.ReturnLikelihoods; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.Truncate; +import org.springframework.ai.client.AiClient; +import org.springframework.ai.client.AiResponse; +import org.springframework.ai.client.AiStreamClient; +import org.springframework.ai.client.Generation; +import org.springframework.ai.metadata.ChoiceMetadata; +import org.springframework.ai.metadata.Usage; +import org.springframework.ai.prompt.Prompt; + +/** + * @author Christian Tzolov + * @since 0.8.0 + */ +public class BedrockCohereChatClient implements AiClient, AiStreamClient { + + private final CohereChatBedrockApi chatApi; + + private Float temperature; + + private Float topP; + + private Integer topK; + + private Integer maxTokens; + + private List stopSequences; + + private ReturnLikelihoods returnLikelihoods; + + private Integer numGenerations; + + private LogitBias logitBias; + + private Truncate truncate; + + public BedrockCohereChatClient(CohereChatBedrockApi chatApi) { + this.chatApi = chatApi; + } + + public BedrockCohereChatClient withTemperature(Float temperature) { + this.temperature = temperature; + return this; + } + + public BedrockCohereChatClient withTopP(Float topP) { + this.topP = topP; + return this; + } + + public BedrockCohereChatClient withTopK(Integer topK) { + this.topK = topK; + return this; + } + + public BedrockCohereChatClient withMaxTokens(Integer maxTokens) { + this.maxTokens = maxTokens; + return this; + } + + public BedrockCohereChatClient withStopSequences(List stopSequences) { + this.stopSequences = stopSequences; + return this; + } + + public BedrockCohereChatClient withReturnLikelihoods(ReturnLikelihoods returnLikelihoods) { + this.returnLikelihoods = returnLikelihoods; + return this; + } + + public BedrockCohereChatClient withNumGenerations(Integer numGenerations) { + this.numGenerations = numGenerations; + return this; + } + + public BedrockCohereChatClient withLogitBias(LogitBias logitBias) { + this.logitBias = logitBias; + return this; + } + + public BedrockCohereChatClient withTruncate(Truncate truncate) { + this.truncate = truncate; + return this; + } + + @Override + public AiResponse generate(Prompt prompt) { + CohereChatResponse response = this.chatApi.chatCompletion(this.createRequest(prompt, false)); + List generations = response.generations().stream().map(g -> { + return new Generation(g.text()); + }).toList(); + + return new AiResponse(generations); + } + + @Override + public Flux generateStream(Prompt prompt) { + return this.chatApi.chatCompletionStream(this.createRequest(prompt, true)).map(g -> { + if (g.isFinished()) { + String finishReason = g.finishReason().name(); + Usage usage = BedrockUsage.from(g.amazonBedrockInvocationMetrics()); + return new AiResponse( + List.of(new Generation("").withChoiceMetadata(ChoiceMetadata.from(finishReason, usage)))); + } + return new AiResponse(List.of(new Generation(g.text()))); + }); + } + + private CohereChatRequest createRequest(Prompt prompt, boolean stream) { + final String promptValue = MessageToPromptConverter.create().toPrompt(prompt.getMessages()); + + return CohereChatRequest.builder(promptValue) + .withTemperature(this.temperature) + .withTopP(this.topP) + .withTopK(this.topK) + .withMaxTokens(this.maxTokens) + .withStopSequences(this.stopSequences) + .withReturnLikelihoods(this.returnLikelihoods) + .withStream(stream) + .withNumGenerations(this.numGenerations) + .withLogitBias(this.logitBias) + .withTruncate(this.truncate) + .build(); + } + +} diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java new file mode 100644 index 000000000..201a5c79e --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClient.java @@ -0,0 +1,102 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.cohere; + +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; + +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingResponse; +import org.springframework.ai.document.Document; +import org.springframework.ai.embedding.AbstractEmbeddingClient; +import org.springframework.ai.embedding.Embedding; +import org.springframework.ai.embedding.EmbeddingResponse; +import org.springframework.util.Assert; + +/** + * {@link org.springframework.ai.embedding.EmbeddingClient} implementation that uses the + * Bedrock Cohere Embedding API. Note: The invocation metrics are not exposed by AWS for + * this API. If this change in the future we will add it as metadata. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +public class BedrockCohereEmbeddingClient extends AbstractEmbeddingClient { + + private final CohereEmbeddingBedrockApi embeddingApi; + + private CohereEmbeddingRequest.InputType inputType = CohereEmbeddingRequest.InputType.search_document; + + private CohereEmbeddingRequest.Truncate truncate = CohereEmbeddingRequest.Truncate.NONE; + + public BedrockCohereEmbeddingClient(CohereEmbeddingBedrockApi cohereEmbeddingBedrockApi) { + this.embeddingApi = cohereEmbeddingBedrockApi; + } + + /** + * Cohere Embedding API input types. + * @param inputType the input type to use. + * @return this client. + */ + public BedrockCohereEmbeddingClient withInputType(CohereEmbeddingRequest.InputType inputType) { + this.inputType = inputType; + return this; + } + + /** + * Specifies how the API handles inputs longer than the maximum token length. If you + * specify LEFT or RIGHT, the model discards the input until the remaining input is + * exactly the maximum input token length for the model. + * @param truncate the truncate option to use. + * @return this client. + */ + public BedrockCohereEmbeddingClient withTruncate(CohereEmbeddingRequest.Truncate truncate) { + this.truncate = truncate; + return this; + } + + @Override + public List embed(String text) { + return this.embed(List.of(text)).iterator().next(); + } + + @Override + public List embed(Document document) { + return embed(document.getContent()); + } + + @Override + public List> embed(List texts) { + Assert.notEmpty(texts, "At least one text is required!"); + + var request = new CohereEmbeddingRequest(texts, this.inputType, this.truncate); + CohereEmbeddingResponse response = this.embeddingApi.embedding(request); + return response.embeddings(); + } + + @Override + public EmbeddingResponse embedForResponse(List texts) { + var indexCounter = new AtomicInteger(0); + List embeddings = this.embed(texts) + .stream() + .map(e -> new Embedding(e, indexCounter.getAndIncrement())) + .toList(); + return new EmbeddingResponse(embeddings); + } + +} diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApi.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApi.java new file mode 100644 index 000000000..6d2cd9fb8 --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApi.java @@ -0,0 +1,364 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// @formatter:off +package org.springframework.ai.bedrock.cohere.api; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; +import reactor.core.publisher.Flux; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; + +import org.springframework.ai.bedrock.api.AbstractBedrockApi; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatResponse; +import org.springframework.util.Assert; + +/** + * Java client for the Bedrock Cohere chat model. + * https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-cohere.html + * + * @author Christian Tzolov + * @since 0.8.0 + */ +public class CohereChatBedrockApi extends + AbstractBedrockApi { + + /** + * Create a new CohereChatBedrockApi instance using the default credentials provider chain, the default object + * mapper, default temperature and topP values. + * + * @param modelId The model id to use. See the {@link CohereChatModel} for the supported models. + * @param region The AWS region to use. + */ + public CohereChatBedrockApi(String modelId, String region) { + super(modelId, region); + } + + /** + * Create a new CohereChatBedrockApi instance using the provided credentials provider, region and object mapper. + * + * @param modelId The model id to use. See the {@link CohereChatModel} for the supported models. + * @param credentialsProvider The credentials provider to connect to AWS. + * @param region The AWS region to use. + * @param objectMapper The object mapper to use for JSON serialization and deserialization. + */ + public CohereChatBedrockApi(String modelId, AwsCredentialsProvider credentialsProvider, String region, + ObjectMapper objectMapper) { + super(modelId, credentialsProvider, region, objectMapper); + } + + /** + * CohereChatRequest encapsulates the request parameters for the Cohere command model. + * + * @param prompt The input prompt to generate the response from. + * @param temperature (optional) Use a lower value to decrease randomness in the response. + * @param topP (optional) Use a lower value to ignore less probable options. Set to 0 or 1.0 to disable. + * @param topK (optional) Specify the number of token choices the model uses to generate the next token. + * @param maxTokens (optional) Specify the maximum number of tokens to use in the generated response. + * @param stopSequences (optional) Configure up to four sequences that the model recognizes. After a stop sequence, + * the model stops generating further tokens. The returned text doesn't contain the stop sequence. + * @param returnLikelihoods (optional) Specify how and if the token likelihoods are returned with the response. + * @param stream (optional) Specify true to return the response piece-by-piece in real-time and false to return the + * complete response after the process finishes. + * @param numGenerations (optional) The maximum number of generations that the model should return. + * @param logitBias (optional) prevents the model from generating unwanted tokens or incentivize the model to + * include desired tokens. The format is {token_id: bias} where bias is a float between -10 and 10. Tokens can be + * obtained from text using any tokenization service, such as Cohere’s Tokenize endpoint. + * @param truncate (optional) Specifies how the API handles inputs longer than the maximum token length. + */ + @JsonInclude(Include.NON_NULL) + public record CohereChatRequest( + @JsonProperty("prompt") String prompt, + @JsonProperty("temperature") Float temperature, + @JsonProperty("p") Float topP, + @JsonProperty("k") Integer topK, + @JsonProperty("max_tokens") Integer maxTokens, + @JsonProperty("stop_sequences") List stopSequences, + @JsonProperty("return_likelihoods") ReturnLikelihoods returnLikelihoods, + @JsonProperty("stream") boolean stream, + @JsonProperty("num_generations") Integer numGenerations, + @JsonProperty("logit_bias") LogitBias logitBias, + @JsonProperty("truncate") Truncate truncate) { + + /** + * Prevents the model from generating unwanted tokens or incentivize the model to include desired tokens. + * + * @param token The token likelihoods. + * @param bias A float between -10 and 10. + */ + @JsonInclude(Include.NON_NULL) + public record LogitBias( + @JsonProperty("token") String token, + @JsonProperty("bias") Float bias) { + } + + /** + * (optional) Specify how and if the token likelihoods are returned with the response. + */ + public enum ReturnLikelihoods { + /** + * Only return likelihoods for generated tokens. + */ + GENERATION, + /** + * Return likelihoods for all tokens. + */ + ALL, + /** + * (Default) Don't return any likelihoods. + */ + NONE + } + + /** + * Specifies how the API handles inputs longer than the maximum token length. If you specify START or END, the + * model discards the input until the remaining input is exactly the maximum input token length for the model. + */ + public enum Truncate { + /** + * Returns an error when the input exceeds the maximum input token length. + */ + NONE, + /** + * Discard the start of the input. + */ + START, + /** + * (Default) Discards the end of the input. + */ + END + } + + /** + * Get CohereChatRequest builder. + * @param prompt compulsory request prompt parameter. + * @return CohereChatRequest builder. + */ + public static Builder builder(String prompt) { + return new Builder(prompt); + } + + /** + * Builder for the CohereChatRequest. + */ + public static class Builder { + private final String prompt; + private Float temperature; + private Float topP; + private Integer topK; + private Integer maxTokens; + private List stopSequences; + private ReturnLikelihoods returnLikelihoods; + private boolean stream; + private Integer numGenerations; + private LogitBias logitBias; + private Truncate truncate; + + public Builder(String prompt) { + this.prompt = prompt; + } + + public Builder withTemperature(Float temperature) { + this.temperature = temperature; + return this; + } + + public Builder withTopP(Float topP) { + this.topP = topP; + return this; + } + + public Builder withTopK(Integer topK) { + this.topK = topK; + return this; + } + + public Builder withMaxTokens(Integer maxTokens) { + this.maxTokens = maxTokens; + return this; + } + + public Builder withStopSequences(List stopSequences) { + this.stopSequences = stopSequences; + return this; + } + + public Builder withReturnLikelihoods(ReturnLikelihoods returnLikelihoods) { + this.returnLikelihoods = returnLikelihoods; + return this; + } + + public Builder withStream(boolean stream) { + this.stream = stream; + return this; + } + + public Builder withNumGenerations(Integer numGenerations) { + this.numGenerations = numGenerations; + return this; + } + + public Builder withLogitBias(LogitBias logitBias) { + this.logitBias = logitBias; + return this; + } + + public Builder withTruncate(Truncate truncate) { + this.truncate = truncate; + return this; + } + + public CohereChatRequest build() { + return new CohereChatRequest( + prompt, + temperature, + topP, + topK, + maxTokens, + stopSequences, + returnLikelihoods, + stream, + numGenerations, + logitBias, + truncate + ); + } + } + } + + /** + * CohereChatResponse encapsulates the response parameters for the Cohere command model. + * + * @param id An identifier for the request (always returned). + * @param prompt The prompt from the input request. (Always returned). + * @param generations A list of generated results along with the likelihoods for tokens requested. (Always + * returned). + */ + @JsonInclude(Include.NON_NULL) + public record CohereChatResponse( + @JsonProperty("id") String id, + @JsonProperty("prompt") String prompt, + @JsonProperty("generations") List generations) { + + /** + * Generated result along with the likelihoods for tokens requested. + * + * @param id An identifier for the generation. (Always returned). + * @param likelihood The likelihood of the output. The value is the average of the token likelihoods in + * token_likelihoods. Returned if you specify the return_likelihoods input parameter. + * @param tokenLikelihoods An array of per token likelihoods. Returned if you specify the return_likelihoods + * input parameter. + * @param finishReason states the reason why the model finished generating tokens. + * @param isFinished A boolean field used only when stream is true, signifying whether or not there are + * additional tokens that will be generated as part of the streaming response. (Not always returned). + * @param text The generated text. + * @param index In a streaming response, use to determine which generation a given token belongs to. When only + * one response is streamed, all tokens belong to the same generation and index is not returned. index therefore + * is only returned in a streaming request with a value for num_generations that is larger than one. + * @param amazonBedrockInvocationMetrics Encapsulates the metrics about the model invocation. + */ + @JsonInclude(Include.NON_NULL) + public record Generation( + @JsonProperty("id") String id, + @JsonProperty("likelihood") Float likelihood, + @JsonProperty("token_likelihoods") List tokenLikelihoods, + @JsonProperty("finish_reason") FinishReason finishReason, + @JsonProperty("is_finished") Boolean isFinished, + @JsonProperty("text") String text, + @JsonProperty("index") Integer index, + @JsonProperty("amazon-bedrock-invocationMetrics") AmazonBedrockInvocationMetrics amazonBedrockInvocationMetrics) { + + /** + * @param token The token. + * @param likelihood The likelihood of the token. + */ + @JsonInclude(Include.NON_NULL) + public record TokenLikelihood( + @JsonProperty("token") String token, + @JsonProperty("likelihood") Float likelihood) { + } + + /** + * The reason the response finished being generated. + */ + public enum FinishReason { + /** + * The model sent back a finished reply. + */ + COMPLETE, + /** + * The reply was cut off because the model reached the maximum number of tokens for its context length. + */ + MAX_TOKENS, + /** + * Something went wrong when generating the reply. + */ + ERROR, + /** + * the model generated a reply that was deemed toxic. finish_reason is returned only when + * is_finished=true. (Not always returned). + */ + ERROR_TOXIC + } + } + } + + /** + * Cohere models version. + */ + public enum CohereChatModel { + + /** + * cohere.command-light-text-v14 + */ + COHERE_COMMAND_LIGHT_V14("cohere.command-light-text-v14"), + + /** + * cohere.command-text-v14 + */ + COHERE_COMMAND_V14("cohere.command-text-v14"); + + private final String id; + + /** + * @return The model id. + */ + public String id() { + return id; + } + + CohereChatModel(String value) { + this.id = value; + } + } + + @Override + public CohereChatResponse chatCompletion(CohereChatRequest request) { + Assert.isTrue(!request.stream(), "The request must be configured to return the complete response!"); + return this.internalInvocation(request, CohereChatResponse.class); + } + + @Override + public Flux chatCompletionStream(CohereChatRequest request) { + Assert.isTrue(request.stream(), "The request must be configured to stream the response!"); + return this.internalInvocationStream(request, CohereChatResponse.Generation.class); + } +} +// @formatter:on \ No newline at end of file diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApi.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApi.java new file mode 100644 index 000000000..af8ffe0aa --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApi.java @@ -0,0 +1,181 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// @formatter:off +package org.springframework.ai.bedrock.cohere.api; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; + +import org.springframework.ai.bedrock.api.AbstractBedrockApi; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingResponse; + +/** + * Cohere Embedding API. + * https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-cohere.html#model-parameters-embed + * + * @author Christian Tzolov + * @since 0.8.0 + */ +public class CohereEmbeddingBedrockApi extends + AbstractBedrockApi { + + /** + * Create a new CohereEmbeddingBedrockApi instance using the default credentials provider chain, the default object + * mapper, default temperature and topP values. + * + * @param modelId The model id to use. See the {@link CohereEmbeddingModel} for the supported models. + * @param region The AWS region to use. + */ + public CohereEmbeddingBedrockApi(String modelId, String region) { + super(modelId, region); + } + + /** + * Create a new CohereEmbeddingBedrockApi instance using the provided credentials provider, region and object + * mapper. + * + * @param modelId The model id to use. See the {@link CohereEmbeddingModel} for the supported models. + * @param credentialsProvider The credentials provider to connect to AWS. + * @param region The AWS region to use. + * @param objectMapper The object mapper to use for JSON serialization and deserialization. + */ + public CohereEmbeddingBedrockApi(String modelId, AwsCredentialsProvider credentialsProvider, String region, + ObjectMapper objectMapper) { + super(modelId, credentialsProvider, region, objectMapper); + } + + /** + * The Cohere Embed model request. + * + * @param texts An array of strings for the model to embed. For optimal performance, we recommend reducing the + * length of each text to less than 512 tokens. 1 token is about 4 characters. + * @param inputType Prepends special tokens to differentiate each type from one another. You should not mix + * different types together, except when mixing types for for search and retrieval. In this case, embed your corpus + * with the search_document type and embedded queries with type search_query type. + * @param truncate Specifies how the API handles inputs longer than the maximum token length. If you specify LEFT or + * RIGHT, the model discards the input until the remaining input is exactly the maximum input token length for the + * model. + */ + @JsonInclude(Include.NON_NULL) + public record CohereEmbeddingRequest( + @JsonProperty("texts") List texts, + @JsonProperty("input_type") InputType inputType, + @JsonProperty("truncate") Truncate truncate) { + + /** + * Cohere Embedding API input types. + */ + public enum InputType { + + /** + * In search use-cases, use search_document when you encode documents for embeddings that you store in a + * vector database. + */ + search_document, + /** + * Use search_query when querying your vector DB to find relevant documents. + */ + search_query, + /** + * Use classification when using embeddings as an input to a text classifier. + */ + classification, + /** + * Use clustering to cluster the embeddings. + */ + clustering + } + + /** + * Specifies how the API handles inputs longer than the maximum token length. If you specify LEFT or RIGHT, the + * model discards the input until the remaining input is exactly the maximum input token length for the model. + */ + public enum Truncate { + /** + * (Default) Returns an error when the input exceeds the maximum input token length. + */ + NONE, + /** + * Discard the start of the input. + */ + LEFT, + /** + * Discards the end of the input. + */ + RIGHT + } + } + + /** + * Cohere Embedding response. + * + * @param id An identifier for the response. + * @param embeddings An array of embeddings, where each embedding is an array of floats with 1024 elements. The + * length of the embeddings array will be the same as the length of the original texts array. + * @param texts An array containing the text entries for which embeddings were returned. + * @param amazonBedrockInvocationMetrics Bedrock invocation metrics. Currently bedrock doesn't return + * invocationMetrics for the cohere embedding model. + */ + @JsonInclude(Include.NON_NULL) + public record CohereEmbeddingResponse( + @JsonProperty("id") String id, + @JsonProperty("embeddings") List> embeddings, + @JsonProperty("texts") List texts, + // For future use: Currently bedrock doesn't return invocationMetrics for the cohere embedding model. + @JsonProperty("amazon-bedrock-invocationMetrics") AmazonBedrockInvocationMetrics amazonBedrockInvocationMetrics) { + } + + /** + * Cohere Embedding model ids. https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids-arns.html + */ + public enum CohereEmbeddingModel { + /** + * cohere.embed-multilingual-v3 + */ + COHERE_EMBED_MULTILINGUAL_V1("cohere.embed-multilingual-v3"), + /** + * cohere.embed-english-v3 + */ + COHERE_EMBED_ENGLISH_V3("cohere.embed-english-v3"); + + private final String id; + + /** + * @return The model id. + */ + public String id() { + return id; + } + + CohereEmbeddingModel(String value) { + this.id = value; + } + + } + + @Override + public CohereEmbeddingResponse embedding(CohereEmbeddingRequest request) { + return this.internalInvocation(request, CohereEmbeddingResponse.class); + } + +} +// @formatter:on \ No newline at end of file diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApi.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApi.java new file mode 100644 index 000000000..9e50b380f --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApi.java @@ -0,0 +1,277 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +// @formatter:off +package org.springframework.ai.bedrock.jurassic2.api; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; + +import org.springframework.ai.bedrock.api.AbstractBedrockApi; +import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi.Ai21Jurassic2ChatRequest; +import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi.Ai21Jurassic2ChatResponse; + + +/** + * Java client for the Bedrock Jurassic2 chat model. + * https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-jurassic2.html + * + * @author Christian Tzolov + * @since 0.8.0 + */ +public class Ai21Jurassic2ChatBedrockApi extends + AbstractBedrockApi { + + /** + * Create a new Ai21Jurassic2ChatBedrockApi instance using the default credentials provider chain, the default + * object mapper, default temperature and topP values. + * + * @param modelId The model id to use. See the {@link Ai21Jurassic2ChatCompletionModel} for the supported models. + * @param region The AWS region to use. + */ + public Ai21Jurassic2ChatBedrockApi(String modelId, String region) { + super(modelId, region); + } + + /** + * AI21 Jurassic2 chat request parameters. + * + * @param prompt The prompt to use for the chat. + * @param temperature The temperature value controls the randomness of the generated text. + * @param topP The topP value controls the diversity of the generated text. Use a lower value to ignore less + * probable options. + * @param maxTokens Specify the maximum number of tokens to use in the generated response. + * @param stopSequences Configure stop sequences that the model recognizes and after which it stops generating + * further tokens. Press the Enter key to insert a newline character in a stop sequence. Use the Tab key to finish + * inserting a stop sequence. + * @param countPenalty Control repetition in the generated response. Use a higher value to lower the probability of + * generating new tokens that already appear at least once in the prompt or in the completion. Proportional to the + * number of appearances. + * @param presencePenalty Control repetition in the generated response. Use a higher value to lower the probability + * of generating new tokens that already appear at least once in the prompt or in the completion. + * @param frequencyPenalty Control repetition in the generated response. Use a high value to lower the probability + * of generating new tokens that already appear at least once in the prompt or in the completion. The value is + * proportional to the frequency of the token appearances (normalized to text length). + */ + @JsonInclude(Include.NON_NULL) + public record Ai21Jurassic2ChatRequest( + @JsonProperty("prompt") String prompt, + @JsonProperty("temperature") Float temperature, + @JsonProperty("topP") Float topP, + @JsonProperty("maxTokens") Integer maxTokens, + @JsonProperty("stopSequences") List stopSequences, + @JsonProperty("countPenalty") IntegerScalePenalty countPenalty, + @JsonProperty("presencePenalty") FloatScalePenalty presencePenalty, + @JsonProperty("frequencyPenalty") IntegerScalePenalty frequencyPenalty) { + + /** + * Penalty with integer scale value. + * + * @param scale The scale value controls the strength of the penalty. Use a higher value to lower the + * probability of generating new tokens that already appear at least once in the prompt or in the completion. + * @param applyToWhitespaces Reduce the probability of repetition of special characters. A true value applies + * the penalty to whitespaces and new lines. + * @param applyToPunctuations Reduce the probability of repetition of special characters. A true value applies + * the penalty to punctuations. + * @param applyToNumbers Reduce the probability of repetition of special characters. A true value applies the + * penalty to numbers. + * @param applyToStopwords Reduce the probability of repetition of special characters. A true value applies the + * penalty to stopwords. + * @param applyToEmojis Reduce the probability of repetition of special characters. A true value applies the + * penalty to emojis. + */ + @JsonInclude(Include.NON_NULL) + public record IntegerScalePenalty( + @JsonProperty("scale") Integer scale, + @JsonProperty("applyToWhitespaces") boolean applyToWhitespaces, + @JsonProperty("applyToPunctuations") boolean applyToPunctuations, + @JsonProperty("applyToNumbers") boolean applyToNumbers, + @JsonProperty("applyToStopwords") boolean applyToStopwords, + @JsonProperty("applyToEmojis") boolean applyToEmojis) { + } + + /** + * Penalty with float scale value. + * + * @param scale The scale value controls the strength of the penalty. Use a higher value to lower the + * probability of generating new tokens that already appear at least once in the prompt or in the completion. + * @param applyToWhitespaces Reduce the probability of repetition of special characters. A true value applies + * the penalty to whitespaces and new lines. + * @param applyToPunctuations Reduce the probability of repetition of special characters. A true value applies + * the penalty to punctuations. + * @param applyToNumbers Reduce the probability of repetition of special characters. A true value applies the + * penalty to numbers. + * @param applyToStopwords Reduce the probability of repetition of special characters. A true value applies the + * penalty to stopwords. + * @param applyToEmojis Reduce the probability of repetition of special characters. A true value applies the + * penalty to emojis. + */ + @JsonInclude(Include.NON_NULL) + public record FloatScalePenalty(@JsonProperty("scale") Float scale, + @JsonProperty("applyToWhitespaces") boolean applyToWhitespaces, + @JsonProperty("applyToPunctuations") boolean applyToPunctuations, + @JsonProperty("applyToNumbers") boolean applyToNumbers, + @JsonProperty("applyToStopwords") boolean applyToStopwords, + @JsonProperty("applyToEmojis") boolean applyToEmojis) { + } + } + + /** + * Ai21 Jurassic2 chat response. + * https://docs.ai21.com/reference/j2-complete-api-ref#response + * + * @param id The unique identifier of the response. + * @param prompt The prompt used for the chat. + * @param amazonBedrockInvocationMetrics The metrics about the model invocation. + */ + @JsonInclude(Include.NON_NULL) + public record Ai21Jurassic2ChatResponse( + @JsonProperty("id") String id, + @JsonProperty("prompt") Prompt prompt, + @JsonProperty("completions") List completions, + @JsonProperty("amazon-bedrock-invocationMetrics") AmazonBedrockInvocationMetrics amazonBedrockInvocationMetrics) { + + /** + */ + @JsonInclude(Include.NON_NULL) + public record Completion( + @JsonProperty("data") Prompt data, + @JsonProperty("finishReason") FinishReason finishReason) { + } + + /** + * Provides detailed information about each token in both the prompt and the completions. + * + * @param generatedToken The generatedToken fields. + * @param topTokens The topTokens field is a list of the top K alternative tokens for this position, sorted by + * probability, according to the topKReturn request parameter. If topKReturn is set to 0, this field will be + * null. + * @param textRange The textRange field indicates the start and end offsets of the token in the decoded text + * string. + */ + @JsonInclude(Include.NON_NULL) + public record Token( + @JsonProperty("generatedToken") GeneratedToken generatedToken, + @JsonProperty("topTokens") List topTokens, + @JsonProperty("textRange") TextRange textRange) { + } + + /** + * The generatedToken fields. + * + * @param token TThe string representation of the token. + * @param logprob The predicted log probability of the token after applying the sampling parameters as a float + * value. + * @param rawLogprob The raw predicted log probability of the token as a float value. For the indifferent values + * (namely, temperature=1, topP=1) we get raw_logprob=logprob. + */ + @JsonInclude(Include.NON_NULL) + public record GeneratedToken( + @JsonProperty("token") String token, + @JsonProperty("logprob") Float logprob, + @JsonProperty("raw_logprob") Float rawLogprob) { + + } + + /** + * The topTokens field is a list of the top K alternative tokens for this position, sorted by probability, + * according to the topKReturn request parameter. If topKReturn is set to 0, this field will be null. + * + * @param token The string representation of the alternative token. + * @param logprob The predicted log probability of the alternative token. + */ + @JsonInclude(Include.NON_NULL) + public record TopToken( + @JsonProperty("token") String token, + @JsonProperty("logprob") Float logprob) { + } + + /** + * The textRange field indicates the start and end offsets of the token in the decoded text string. + * + * @param start The starting index of the token in the decoded text string. + * @param end The ending index of the token in the decoded text string. + */ + @JsonInclude(Include.NON_NULL) + public record TextRange( + @JsonProperty("start") Integer start, + @JsonProperty("end") Integer end) { + } + + /** + * The prompt includes the raw text, the tokens with their log probabilities, and the top-K alternative tokens + * at each position, if requested. + * + * @param text The raw text of the prompt. + * @param tokens Provides detailed information about each token in both the prompt and the completions. + */ + @JsonInclude(Include.NON_NULL) + public record Prompt( + @JsonProperty("text") String text, + @JsonProperty("tokens") List tokens) { + } + + /** + * Explains why the generation process was halted for a specific completion. + * + * @param reason The reason field indicates the reason for the completion to stop. + * + */ + @JsonInclude(Include.NON_NULL) + public record FinishReason( + @JsonProperty("reason") String reason, + @JsonProperty("length") String length, + @JsonProperty("sequence") String sequence) { + } + } + + /** + * Ai21 Jurassic2 models version. + */ + public enum Ai21Jurassic2ChatCompletionModel { + + /** + * ai21.j2-mid-v1 + */ + AI21_J2_MID_V1("ai21.j2-mid-v1"), + + /** + * ai21.j2-ultra-v1 + */ + AI21_J2_ULTRA_V1("ai21.j2-ultra-v1"); + + private final String id; + + /** + * @return The model id. + */ + public String id() { + return id; + } + + Ai21Jurassic2ChatCompletionModel(String value) { + this.id = value; + } + } + + @Override + public Ai21Jurassic2ChatResponse chatCompletion(Ai21Jurassic2ChatRequest request) { + return this.internalInvocation(request, Ai21Jurassic2ChatResponse.class); + } +} +// @formatter:on \ No newline at end of file diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClient.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClient.java new file mode 100644 index 000000000..6255ff5d0 --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClient.java @@ -0,0 +1,121 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.llama2; + +import java.util.List; + +import reactor.core.publisher.Flux; + +import org.springframework.ai.bedrock.MessageToPromptConverter; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi.Llama2ChatRequest; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi.Llama2ChatResponse; +import org.springframework.ai.client.AiClient; +import org.springframework.ai.client.AiResponse; +import org.springframework.ai.client.AiStreamClient; +import org.springframework.ai.client.Generation; +import org.springframework.ai.metadata.ChoiceMetadata; +import org.springframework.ai.metadata.Usage; +import org.springframework.ai.prompt.Prompt; + +/** + * Java {@link AiClient} and {@link AiStreamClient} for the Bedrock Llama2 chat model. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +public class BedrockLlama2ChatClient implements AiClient, AiStreamClient { + + private final Llama2ChatBedrockApi chatApi; + + private Float temperature; + + private Float topP; + + private Integer maxGenLen; + + public BedrockLlama2ChatClient(Llama2ChatBedrockApi chatApi) { + this.chatApi = chatApi; + } + + public BedrockLlama2ChatClient withTemperature(Float temperature) { + this.temperature = temperature; + return this; + } + + public BedrockLlama2ChatClient withTopP(Float topP) { + this.topP = topP; + return this; + } + + public BedrockLlama2ChatClient withMaxGenLen(Integer maxGenLen) { + this.maxGenLen = maxGenLen; + return this; + } + + @Override + public AiResponse generate(Prompt prompt) { + final String promptValue = MessageToPromptConverter.create().toPrompt(prompt.getMessages()); + + var request = Llama2ChatRequest.builder(promptValue) + .withTemperature(this.temperature) + .withTopP(this.topP) + .withMaxGenLen(this.maxGenLen) + .build(); + + Llama2ChatResponse response = this.chatApi.chatCompletion(request); + + return new AiResponse(List.of(new Generation(response.generation()) + .withChoiceMetadata(ChoiceMetadata.from(response.stopReason().name(), extractUsage(response))))); + } + + @Override + public Flux generateStream(Prompt prompt) { + + final String promptValue = MessageToPromptConverter.create().toPrompt(prompt.getMessages()); + + var request = Llama2ChatRequest.builder(promptValue) + .withTemperature(this.temperature) + .withTopP(this.topP) + .withMaxGenLen(this.maxGenLen) + .build(); + + Flux fluxResponse = this.chatApi.chatCompletionStream(request); + + return fluxResponse.map(response -> { + String stopReason = response.stopReason() != null ? response.stopReason().name() : null; + return new AiResponse(List.of(new Generation(response.generation()) + .withChoiceMetadata(ChoiceMetadata.from(stopReason, extractUsage(response))))); + }); + } + + private Usage extractUsage(Llama2ChatResponse response) { + return new Usage() { + + @Override + public Long getPromptTokens() { + return response.promptTokenCount().longValue(); + } + + @Override + public Long getGenerationTokens() { + return response.generationTokenCount().longValue(); + } + }; + } + +} diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApi.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApi.java new file mode 100644 index 000000000..e7d7bd18a --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApi.java @@ -0,0 +1,200 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.llama2.api; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; +import reactor.core.publisher.Flux; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; + +import org.springframework.ai.bedrock.api.AbstractBedrockApi; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi.Llama2ChatRequest; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi.Llama2ChatResponse; + +// @formatter:off +/** + * Java client for the Bedrock Llama2 chat model. + * https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-meta.html + * + * @author Christian Tzolov + * @since 0.8.0 + */ +public class Llama2ChatBedrockApi extends + AbstractBedrockApi { + + /** + * Create a new Llama2ChatBedrockApi instance using the default credentials provider chain, the default object + * mapper, default temperature and topP values. + * + * @param modelId The model id to use. See the {@link Llama2ChatCompletionModel} for the supported models. + * @param region The AWS region to use. + */ + public Llama2ChatBedrockApi(String modelId, String region) { + super(modelId, region); + } + + /** + * Create a new Llama2ChatBedrockApi instance using the provided credentials provider, region and object mapper. + * + * @param modelId The model id to use. See the {@link Llama2ChatCompletionModel} for the supported models. + * @param credentialsProvider The credentials provider to connect to AWS. + * @param region The AWS region to use. + * @param objectMapper The object mapper to use for JSON serialization and deserialization. + */ + public Llama2ChatBedrockApi(String modelId, AwsCredentialsProvider credentialsProvider, String region, + ObjectMapper objectMapper) { + super(modelId, credentialsProvider, region, objectMapper); + } + + /** + * Llama2ChatRequest encapsulates the request parameters for the Meta Llama2 chat model. + * + * @param prompt The prompt to use for the chat. + * @param temperature The temperature value controls the randomness of the generated text. Use a lower value to + * decrease randomness in the response. + * @param topP The topP value controls the diversity of the generated text. Use a lower value to ignore less + * probable options. Set to 0 or 1.0 to disable. + * @param maxGenLen The maximum length of the generated text. + */ + @JsonInclude(Include.NON_NULL) + public record Llama2ChatRequest( + @JsonProperty("prompt") String prompt, + @JsonProperty("temperature") Float temperature, + @JsonProperty("top_p") Float topP, + @JsonProperty("max_gen_len") Integer maxGenLen) { + + /** + * Create a new Llama2ChatRequest builder. + * @param prompt compulsory prompt parameter. + * @return a new Llama2ChatRequest builder. + */ + public static Builder builder(String prompt) { + return new Builder(prompt); + } + + public static class Builder { + private String prompt; + private Float temperature; + private Float topP; + private Integer maxGenLen; + + public Builder(String prompt) { + this.prompt = prompt; + } + + public Builder withTemperature(Float temperature) { + this.temperature = temperature; + return this; + } + + public Builder withTopP(Float topP) { + this.topP = topP; + return this; + } + + public Builder withMaxGenLen(Integer maxGenLen) { + this.maxGenLen = maxGenLen; + return this; + } + + public Llama2ChatRequest build() { + return new Llama2ChatRequest( + prompt, + temperature, + topP, + maxGenLen + ); + } + } + } + + /** + * Llama2ChatResponse encapsulates the response parameters for the Meta Llama2 chat model. + * + * @param generation The generated text. + * @param promptTokenCount The number of tokens in the prompt. + * @param generationTokenCount The number of tokens in the response. + * @param stopReason The reason why the response stopped generating text. Possible values are: (1) stop – The model + * has finished generating text for the input prompt. (2) length – The length of the tokens for the generated text + * exceeds the value of max_gen_len in the call. The response is truncated to max_gen_len tokens. Consider + * increasing the value of max_gen_len and trying again. + */ + @JsonInclude(Include.NON_NULL) + public record Llama2ChatResponse( + @JsonProperty("generation") String generation, + @JsonProperty("prompt_token_count") Integer promptTokenCount, + @JsonProperty("generation_token_count") Integer generationTokenCount, + @JsonProperty("stop_reason") StopReason stopReason, + @JsonProperty("amazon-bedrock-invocationMetrics") AmazonBedrockInvocationMetrics amazonBedrockInvocationMetrics) { + + /** + * The reason the response finished being generated. + */ + public enum StopReason { + /** + * The model has finished generating text for the input prompt. + */ + stop, + /** + * The response was truncated because of the response length you set. + */ + length + } + } + + /** + * Llama2 models version. + */ + public enum Llama2ChatCompletionModel { + + /** + * meta.llama2-13b-chat-v1 + */ + LLAMA2_13B_CHAT_V1("meta.llama2-13b-chat-v1"), + + /** + * meta.llama2-70b-chat-v1 + */ + LLAMA2_70B_CHAT_V1("meta.llama2-70b-chat-v1"); + + private final String id; + + /** + * @return The model id. + */ + public String id() { + return id; + } + + Llama2ChatCompletionModel(String value) { + this.id = value; + } + } + + @Override + public Llama2ChatResponse chatCompletion(Llama2ChatRequest request) { + return this.internalInvocation(request, Llama2ChatResponse.class); + } + + @Override + public Flux chatCompletionStream(Llama2ChatRequest request) { + return this.internalInvocationStream(request, Llama2ChatResponse.class); + } +} +// @formatter:on \ No newline at end of file diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApi.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApi.java new file mode 100644 index 000000000..50009cf7f --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApi.java @@ -0,0 +1,230 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ai.bedrock.titan.api; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; +import reactor.core.publisher.Flux; + +import org.springframework.ai.bedrock.api.AbstractBedrockApi; +import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatRequest; +import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponse; +import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponse.CompletionReason; +import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponseChunk; + +/** + * Java client for the Bedrock Titan chat model. + * https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-text.html + *

+ * https://docs.aws.amazon.com/bedrock/latest/userguide/titan-text-models.html + * + * @author Christian Tzolov + * @since 0.8.0 + */ +// @formatter:off +public class TitanChatBedrockApi extends + AbstractBedrockApi { + + TitanChatBedrockApi(String modelId, String region) { + super(modelId, region); + } + + /** + * TitanChatRequest encapsulates the request parameters for the Titan chat model. + * + * @param inputText The prompt to use for the chat. + * @param textGenerationConfig The text generation configuration. + */ + @JsonInclude(Include.NON_NULL) + public record TitanChatRequest( + @JsonProperty("inputText") String inputText, + @JsonProperty("textGenerationConfig") TextGenerationConfig textGenerationConfig) { + + /** + * Titan request text generation configuration. + * https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-text.html + * + * @param temperature The temperature value controls the randomness of the generated text. + * @param topP The topP value controls the diversity of the generated text. Use a lower value to ignore less + * probable options. + * @param maxTokenCount The maximum number of tokens to generate. + * @param stopSequences A list of sequences to stop the generation at. Specify character sequences to indicate + * where the model should stop. Use the | (pipe) character to separate different sequences (maximum 20 + * characters). + */ + @JsonInclude(Include.NON_NULL) + public record TextGenerationConfig( + @JsonProperty("temperature") Float temperature, + @JsonProperty("topP") Float topP, + @JsonProperty("maxTokenCount") Integer maxTokenCount, + @JsonProperty("stopSequences") List stopSequences) { + } + + public static Builder builder(String inputText) { + return new Builder(inputText); + } + + public static class Builder { + private final String inputText; + private Float temperature; + private Float topP; + private Integer maxTokenCount; + private List stopSequences; + + public Builder(String inputText) { + this.inputText = inputText; + } + + public Builder withTemperature(Float temperature) { + this.temperature = temperature; + return this; + } + + public Builder withTopP(Float topP) { + this.topP = topP; + return this; + } + + public Builder withMaxTokenCount(Integer maxTokenCount) { + this.maxTokenCount = maxTokenCount; + return this; + } + + public Builder withStopSequences(List stopSequences) { + this.stopSequences = stopSequences; + return this; + } + + public TitanChatRequest build() { + + if (this.temperature == null && this.topP == null && this.maxTokenCount == null + && this.stopSequences == null) { + return new TitanChatRequest(this.inputText, null); + } else { + return new TitanChatRequest(this.inputText, + new TextGenerationConfig( + this.temperature, + this.topP, + this.maxTokenCount, + this.stopSequences + )); + } + } + } + } + + /** + * TitanChatResponse encapsulates the response parameters for the Titan chat model. + * + * @param inputTextTokenCount The number of tokens in the input text. + * @param results The list of generated responses. + */ + @JsonInclude(Include.NON_NULL) + public record TitanChatResponse( + @JsonProperty("inputTextTokenCount") Integer inputTextTokenCount, + @JsonProperty("results") List results) { + + /** + * Titan response result. + * + * @param tokenCount The number of tokens in the generated text. + * @param outputText The generated text. + * @param completionReason The reason the response finished being generated. + */ + @JsonInclude(Include.NON_NULL) + public record Result( + @JsonProperty("tokenCount") Integer tokenCount, + @JsonProperty("outputText") String outputText, + @JsonProperty("completionReason") CompletionReason completionReason) { + } + + /** + * The reason the response finished being generated. + */ + public enum CompletionReason { + /** + * The response was fully generated. + */ + FINISH, + /** + * The response was truncated because of the response length you set. + */ + LENGTH + } + } + + /** + * Titan chat model streaming response. + * + * @param outputText The generated text in this chunk. + * @param index The index of the chunk in the streaming response. + * @param inputTextTokenCount The number of tokens in the prompt. + * @param totalOutputTextTokenCount The number of tokens in the response. + * @param completionReason The reason the response finished being generated. + */ + @JsonInclude(Include.NON_NULL) + public record TitanChatResponseChunk( + @JsonProperty("outputText") String outputText, + @JsonProperty("index") Integer index, + @JsonProperty("inputTextTokenCount") Integer inputTextTokenCount, + @JsonProperty("totalOutputTextTokenCount") Integer totalOutputTextTokenCount, + @JsonProperty("completionReason") CompletionReason completionReason, + @JsonProperty("amazon-bedrock-invocationMetrics") AmazonBedrockInvocationMetrics amazonBedrockInvocationMetrics) { + } + + /** + * Titan models version. + */ + public enum TitanChatCompletionModel { + + /** + * amazon.titan-text-lite-v1 + */ + TITAN_TEXT_LITE_V1("amazon.titan-text-lite-v1"), + + /** + * amazon.titan-text-express-v1 + */ + TITAN_TEXT_EXPRESS_V1("amazon.titan-text-express-v1"); + + private final String id; + + /** + * @return The model id. + */ + public String id() { + return id; + } + + TitanChatCompletionModel(String value) { + this.id = value; + } + } + + @Override + public TitanChatResponse chatCompletion(TitanChatRequest request) { + return this.internalInvocation(request, TitanChatResponse.class); + } + + @Override + public Flux chatCompletionStream(TitanChatRequest request) { + return this.internalInvocationStream(request, TitanChatResponseChunk.class); + } +} +// @formatter:on \ No newline at end of file diff --git a/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApi.java b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApi.java new file mode 100644 index 000000000..63adadf1b --- /dev/null +++ b/spring-ai-bedrock/src/main/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApi.java @@ -0,0 +1,159 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.titan.api; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; + +import org.springframework.ai.bedrock.api.AbstractBedrockApi; +import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi.TitanEmbeddingRequest; +import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi.TitanEmbeddingResponse; +import org.springframework.util.Assert; + +/** + * Java client for the Bedrock Titan Embedding model. + * https://docs.aws.amazon.com/bedrock/latest/userguide/titan-multiemb-models.html + * + * @author Christian Tzolov + * @since 0.8.0 + */ +// @formatter:off +public class TitanEmbeddingBedrockApi extends + AbstractBedrockApi { + + /** + * Create a new TitanEmbeddingBedrockApi instance using the default credentials provider and default object + * mapper. + * @param modelId The model id to use. See the {@link TitanEmbeddingModel} for the supported models. + * @param region The AWS region to use. + */ + public TitanEmbeddingBedrockApi(String modelId, String region) { + super(modelId, region); + } + + /** + * Create a new TitanEmbeddingBedrockApi instance. + * + * @param modelId The model id to use. See the {@link TitanEmbeddingModel} for the supported models. + * @param credentialsProvider The credentials provider to connect to AWS. + * @param region The AWS region to use. + * @param objectMapper The object mapper to use for JSON serialization and deserialization. + */ + public TitanEmbeddingBedrockApi(String modelId, AwsCredentialsProvider credentialsProvider, String region, + ObjectMapper objectMapper) { + super(modelId, credentialsProvider, region, objectMapper); + } + + /** + * Titan Embedding request parameters. + * + * @param inputText The text to compute the embedding for. + * @param inputImage The image to compute the embedding for. Only applicable for the 'Titan Multimodal Embeddings + * G1' model. + */ + @JsonInclude(Include.NON_NULL) + public record TitanEmbeddingRequest( + @JsonProperty("inputText") String inputText, + @JsonProperty("inputImage") String inputImage) { + + + public static Builder builder() { + return new Builder(); + } + + /** + * TitanEmbeddingRequest builder. + */ + public static class Builder { + + private String inputText; + private String inputImage; + + public Builder withInputText(String inputText) { + this.inputText = inputText; + return this; + } + + public Builder withInputImage(String inputImage) { + this.inputImage = inputImage; + return this; + } + + public TitanEmbeddingRequest build() { + Assert.isTrue(this.inputText != null || this.inputImage != null, + "At least one of the inputText or inputImage parameters must be provided!"); + Assert.isTrue(!(this.inputText != null && this.inputImage != null), + "Only one of the inputText or inputImage parameters must be provided!"); + + return new TitanEmbeddingRequest(this.inputText, this.inputImage); + } + } + + } + + /** + * Titan Embedding response. + * + * @param embedding The embedding vector. + * @param inputTextTokenCount The number of tokens in the input text. + * @param message No idea what this is. + */ + @JsonInclude(Include.NON_NULL) + public record TitanEmbeddingResponse( + @JsonProperty("embedding") List embedding, + @JsonProperty("inputTextTokenCount") Integer inputTextTokenCount, + @JsonProperty("message") Object message) { + } + + /** + * Titan Embedding model ids. + */ + public enum TitanEmbeddingModel { + /** + * amazon.titan-embed-image-v1 + */ + TITAN_EMBED_IMAGE_V1("amazon.titan-embed-image-v1"), + /** + * amazon.titan-embed-text-v1 + */ + TITAN_EMBED_TEXT_V1("amazon.titan-embed-text-v1"); + + private final String id; + + /** + * @return The model id. + */ + public String id() { + return id; + } + + TitanEmbeddingModel(String value) { + this.id = value; + } + } + + @Override + public TitanEmbeddingResponse embedding(TitanEmbeddingRequest request) { + return this.internalInvocation(request, TitanEmbeddingResponse.class); + } +} +// @formatter:on \ No newline at end of file diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClientIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClientIT.java new file mode 100644 index 000000000..3615d83e9 --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/BedrockAnthropicChatClientIT.java @@ -0,0 +1,167 @@ +package org.springframework.ai.bedrock.anthropic; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi; +import org.springframework.ai.client.AiResponse; +import org.springframework.ai.client.Generation; +import org.springframework.ai.parser.BeanOutputParser; +import org.springframework.ai.parser.ListOutputParser; +import org.springframework.ai.parser.MapOutputParser; +import org.springframework.ai.prompt.Prompt; +import org.springframework.ai.prompt.PromptTemplate; +import org.springframework.ai.prompt.SystemPromptTemplate; +import org.springframework.ai.prompt.messages.Message; +import org.springframework.ai.prompt.messages.UserMessage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Bean; +import org.springframework.core.convert.support.DefaultConversionService; +import org.springframework.core.io.Resource; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +class BedrockAnthropicChatClientIT { + + @Autowired + private BedrockAnthropicChatClient client; + + @Value("classpath:/prompts/system-message.st") + private Resource systemResource; + + @Test + void roleTest() { + UserMessage userMessage = new UserMessage( + "Tell me about 3 famous pirates from the Golden Age of Piracy and why they did."); + SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); + Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", "Bob", "voice", "pirate")); + + Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); + + AiResponse response = client.generate(prompt); + + assertThat(response.getGeneration().getContent()).contains("Blackbeard"); + } + + @Test + void outputParser() { + DefaultConversionService conversionService = new DefaultConversionService(); + ListOutputParser outputParser = new ListOutputParser(conversionService); + + String format = outputParser.getFormat(); + String template = """ + List five {subject} + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, + Map.of("subject", "ice cream flavors.", "format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = this.client.generate(prompt).getGeneration(); + + List list = outputParser.parse(generation.getContent()); + assertThat(list).hasSize(5); + } + + @Test + void mapOutputParser() { + MapOutputParser outputParser = new MapOutputParser(); + + String format = outputParser.getFormat(); + String template = """ + Provide me a List of {subject} + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, + Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = client.generate(prompt).getGeneration(); + + Map result = outputParser.parse(generation.getContent()); + assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); + + } + + record ActorsFilmsRecord(String actor, List movies) { + } + + @Test + void beanOutputParserRecords() { + + BeanOutputParser outputParser = new BeanOutputParser<>(ActorsFilmsRecord.class); + + String format = outputParser.getFormat(); + String template = """ + Generate the filmography of 5 movies for Tom Hanks. + Remove non JSON tex blocks from the output. + {format} + Provide your answer in the JSON format with the feature names as the keys. + """; + PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = client.generate(prompt).getGeneration(); + + ActorsFilmsRecord actorsFilms = outputParser.parse(generation.getContent()); + assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); + assertThat(actorsFilms.movies()).hasSize(5); + } + + @Test + void beanStreamOutputParserRecords() { + + BeanOutputParser outputParser = new BeanOutputParser<>(ActorsFilmsRecord.class); + + String format = outputParser.getFormat(); + String template = """ + Generate the filmography of 5 movies for Tom Hanks. + {format} + Remove Markdown code blocks from the output. + """; + PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + + String generationTextFromStream = client.generateStream(prompt) + .collectList() + .block() + .stream() + .map(AiResponse::getGenerations) + .flatMap(List::stream) + .map(Generation::getContent) + .collect(Collectors.joining()); + + ActorsFilmsRecord actorsFilms = outputParser.parse(generationTextFromStream); + System.out.println(actorsFilms); + assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); + assertThat(actorsFilms.movies()).hasSize(5); + } + + @SpringBootConfiguration + public static class TestConfiguration { + + @Bean + public AnthropicChatBedrockApi anthropicApi() { + return new AnthropicChatBedrockApi(AnthropicChatBedrockApi.AnthropicChatModel.CLAUDE_V2.id(), + EnvironmentVariableCredentialsProvider.create(), Region.EU_CENTRAL_1.id(), new ObjectMapper()); + } + + @Bean + public BedrockAnthropicChatClient anthropicChatClient(AnthropicChatBedrockApi anthropicApi) { + return new BedrockAnthropicChatClient(anthropicApi); + } + + } + +} diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApiIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApiIT.java new file mode 100644 index 000000000..334acfc75 --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/anthropic/api/AnthropicChatBedrockApiIT.java @@ -0,0 +1,86 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.anthropic.api; + +import java.util.List; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import reactor.core.publisher.Flux; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatRequest; +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatResponse; +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatModel; + +import static org.assertj.core.api.Assertions.assertThat;; + +/** + * @author Christian Tzolov + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class AnthropicChatBedrockApiIT { + + private AnthropicChatBedrockApi anthropicChatApi = new AnthropicChatBedrockApi(AnthropicChatModel.CLAUDE_V2.id(), + Region.EU_CENTRAL_1.id()); + + @Test + public void chatCompletion() { + + AnthropicChatRequest request = AnthropicChatRequest + .builder(String.format(AnthropicChatBedrockApi.PROMPT_TEMPLATE, "Name 3 famous pirates")) + .withTemperature(0.8f) + .withMaxTokensToSample(300) + .withTopK(10) + .build(); + + AnthropicChatResponse response = anthropicChatApi.chatCompletion(request); + + System.out.println(response.completion()); + assertThat(response).isNotNull(); + assertThat(response.completion()).isNotEmpty(); + assertThat(response.completion()).contains("Blackbeard"); + assertThat(response.stopReason()).isEqualTo("stop_sequence"); + assertThat(response.stop()).isEqualTo("\n\nHuman:"); + assertThat(response.amazonBedrockInvocationMetrics()).isNull(); + + System.out.println(response); + } + + @Test + public void chatCompletionStream() { + + AnthropicChatRequest request = AnthropicChatRequest + .builder(String.format(AnthropicChatBedrockApi.PROMPT_TEMPLATE, "Name 3 famous pirates")) + .withTemperature(0.8f) + .withMaxTokensToSample(300) + .withTopK(10) + .withStopSequences(List.of("\n\nHuman:")) + .build(); + + Flux responseStream = anthropicChatApi.chatCompletionStream(request); + + List responses = responseStream.collectList().block(); + assertThat(responses).isNotNull(); + assertThat(responses).hasSizeGreaterThan(10); + assertThat(responses.stream().map(AnthropicChatResponse::completion).collect(Collectors.joining())) + .contains("Blackbeard"); + } + +} diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClientIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClientIT.java new file mode 100644 index 000000000..5900ec9eb --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereChatClientIT.java @@ -0,0 +1,167 @@ +package org.springframework.ai.bedrock.cohere; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatModel; +import org.springframework.ai.client.AiResponse; +import org.springframework.ai.client.Generation; +import org.springframework.ai.parser.BeanOutputParser; +import org.springframework.ai.parser.ListOutputParser; +import org.springframework.ai.parser.MapOutputParser; +import org.springframework.ai.prompt.Prompt; +import org.springframework.ai.prompt.PromptTemplate; +import org.springframework.ai.prompt.SystemPromptTemplate; +import org.springframework.ai.prompt.messages.Message; +import org.springframework.ai.prompt.messages.UserMessage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Bean; +import org.springframework.core.convert.support.DefaultConversionService; +import org.springframework.core.io.Resource; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +class BedrockCohereChatClientIT { + + @Autowired + private BedrockCohereChatClient client; + + @Value("classpath:/prompts/system-message.st") + private Resource systemResource; + + @Test + void roleTest() { + String request = "Tell me about 3 famous pirates from the Golden Age of Piracy and why they did."; + String name = "Bob"; + String voice = "pirate"; + UserMessage userMessage = new UserMessage(request); + SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); + Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", name, "voice", voice)); + Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); + AiResponse response = client.generate(prompt); + assertThat(response.getGeneration().getContent()).contains("Blackbeard"); + } + + @Test + void outputParser() { + DefaultConversionService conversionService = new DefaultConversionService(); + ListOutputParser outputParser = new ListOutputParser(conversionService); + + String format = outputParser.getFormat(); + String template = """ + List five {subject} + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, + Map.of("subject", "ice cream flavors.", "format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = this.client.generate(prompt).getGeneration(); + + List list = outputParser.parse(generation.getContent()); + assertThat(list).hasSize(5); + } + + @Test + void mapOutputParser() { + MapOutputParser outputParser = new MapOutputParser(); + + String format = outputParser.getFormat(); + String template = """ + Remove Markdown code blocks from the output. + Provide me a List of {subject} + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, + Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = client.generate(prompt).getGeneration(); + + Map result = outputParser.parse(generation.getContent()); + assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); + + } + + record ActorsFilmsRecord(String actor, List movies) { + } + + @Test + void beanOutputParserRecords() { + + BeanOutputParser outputParser = new BeanOutputParser<>(ActorsFilmsRecord.class); + + String format = outputParser.getFormat(); + String template = """ + Generate the filmography of 5 movies for Tom Hanks. + {format} + Remove Markdown code blocks from the output. + """; + PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = client.generate(prompt).getGeneration(); + + ActorsFilmsRecord actorsFilms = outputParser.parse(generation.getContent()); + assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); + assertThat(actorsFilms.movies()).hasSize(5); + } + + @Test + void beanStreamOutputParserRecords() { + + BeanOutputParser outputParser = new BeanOutputParser<>(ActorsFilmsRecord.class); + + String format = outputParser.getFormat(); + String template = """ + Generate the filmography of 5 movies for Tom Hanks. + {format} + Remove Markdown code blocks from the output. + """; + PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + + String generationTextFromStream = client.generateStream(prompt) + .collectList() + .block() + .stream() + .map(AiResponse::getGenerations) + .flatMap(List::stream) + .map(Generation::getContent) + .collect(Collectors.joining()); + + ActorsFilmsRecord actorsFilms = outputParser.parse(generationTextFromStream); + System.out.println(actorsFilms); + assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); + assertThat(actorsFilms.movies()).hasSize(5); + } + + @SpringBootConfiguration + public static class TestConfiguration { + + @Bean + public CohereChatBedrockApi cohereApi() { + return new CohereChatBedrockApi(CohereChatModel.COHERE_COMMAND_V14.id(), + EnvironmentVariableCredentialsProvider.create(), Region.US_EAST_1.id(), new ObjectMapper()); + } + + @Bean + public BedrockCohereChatClient cohereChatClient(CohereChatBedrockApi cohereApi) { + return new BedrockCohereChatClient(cohereApi); + } + + } + +} diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClientIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClientIT.java new file mode 100644 index 000000000..d3e7f3b5d --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/BedrockCohereEmbeddingClientIT.java @@ -0,0 +1,68 @@ +package org.springframework.ai.bedrock.cohere; + +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingModel; +import org.springframework.ai.embedding.EmbeddingResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Bean; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +class BedrockCohereEmbeddingClientIT { + + @Autowired + private BedrockCohereEmbeddingClient embeddingClient; + + @Test + void singleEmbedding() { + assertThat(embeddingClient).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of("Hello World")); + assertThat(embeddingResponse.getData()).hasSize(1); + assertThat(embeddingResponse.getData().get(0).getEmbedding()).isNotEmpty(); + assertThat(embeddingClient.dimensions()).isEqualTo(1024); + } + + @Test + void batchEmbedding() { + assertThat(embeddingClient).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingClient + .embedForResponse(List.of("Hello World", "World is big and salvation is near")); + assertThat(embeddingResponse.getData()).hasSize(2); + assertThat(embeddingResponse.getData().get(0).getEmbedding()).isNotEmpty(); + assertThat(embeddingResponse.getData().get(0).getIndex()).isEqualTo(0); + assertThat(embeddingResponse.getData().get(1).getEmbedding()).isNotEmpty(); + assertThat(embeddingResponse.getData().get(1).getIndex()).isEqualTo(1); + + assertThat(embeddingClient.dimensions()).isEqualTo(1024); + } + + @SpringBootConfiguration + public static class TestConfiguration { + + @Bean + public CohereEmbeddingBedrockApi cohereEmbeddingApi() { + return new CohereEmbeddingBedrockApi(CohereEmbeddingModel.COHERE_EMBED_MULTILINGUAL_V1.id(), + EnvironmentVariableCredentialsProvider.create(), Region.US_EAST_1.id(), new ObjectMapper()); + } + + @Bean + public BedrockCohereEmbeddingClient cohereAiEmbedding(CohereEmbeddingBedrockApi cohereEmbeddingApi) { + return new BedrockCohereEmbeddingClient(cohereEmbeddingApi); + } + + } + +} diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApiIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApiIT.java new file mode 100644 index 000000000..a54ef1481 --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereChatBedrockApiIT.java @@ -0,0 +1,147 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.cohere.api; + +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import reactor.core.publisher.Flux; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatModel; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.Truncate; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatResponse; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatResponse.Generation.FinishReason; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy;; + +/** + * @author Christian Tzolov + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class CohereChatBedrockApiIT { + + private CohereChatBedrockApi cohereChatApi = new CohereChatBedrockApi(CohereChatModel.COHERE_COMMAND_V14.id(), + Region.US_EAST_1.id()); + + @Test + public void requestBuilder() { + + CohereChatRequest request1 = new CohereChatRequest( + "What is the capital of Bulgaria and what is the size? What it the national anthem?", 0.5f, 0.9f, 15, + 40, List.of("END"), CohereChatRequest.ReturnLikelihoods.ALL, false, 1, null, Truncate.NONE); + + var request2 = CohereChatRequest + .builder("What is the capital of Bulgaria and what is the size? What it the national anthem?") + .withTemperature(0.5f) + .withTopP(0.9f) + .withTopK(15) + .withMaxTokens(40) + .withStopSequences(List.of("END")) + .withReturnLikelihoods(CohereChatRequest.ReturnLikelihoods.ALL) + .withStream(false) + .withNumGenerations(1) + .withLogitBias(null) + .withTruncate(Truncate.NONE) + .build(); + + assertThat(request1).isEqualTo(request2); + } + + @Test + public void chatCompletion() { + + var request = CohereChatRequest + .builder("What is the capital of Bulgaria and what is the size? What it the national anthem?") + .withStream(false) + .withTemperature(0.5f) + .withTopP(0.8f) + .withTopK(15) + .withMaxTokens(100) + .withStopSequences(List.of("END")) + .withReturnLikelihoods(CohereChatRequest.ReturnLikelihoods.ALL) + .withNumGenerations(3) + .withLogitBias(null) + .withTruncate(Truncate.NONE) + .build(); + + CohereChatResponse response = cohereChatApi.chatCompletion(request); + + assertThat(response).isNotNull(); + assertThat(response.prompt()).isEqualTo(request.prompt()); + assertThat(response.generations()).hasSize(request.numGenerations()); + assertThat(response.generations().get(0).text()).isNotEmpty(); + } + + @Test + public void chatCompletionStream() { + + var request = CohereChatRequest + .builder("What is the capital of Bulgaria and what is the size? What it the national anthem?") + .withStream(true) + .withTemperature(0.5f) + .withTopP(0.8f) + .withTopK(15) + .withMaxTokens(100) + .withStopSequences(List.of("END")) + .withReturnLikelihoods(CohereChatRequest.ReturnLikelihoods.ALL) + .withNumGenerations(3) + .withLogitBias(null) + .withTruncate(Truncate.NONE) + .build(); + + Flux responseStream = cohereChatApi.chatCompletionStream(request); + List responses = responseStream.collectList().block(); + + assertThat(responses).isNotNull(); + assertThat(responses).hasSizeGreaterThan(10); + assertThat(responses.get(0).text()).isNotEmpty(); + + CohereChatResponse.Generation lastResponse = responses.get(responses.size() - 1); + assertThat(lastResponse.text()).isNull(); + assertThat(lastResponse.isFinished()).isTrue(); + assertThat(lastResponse.finishReason()).isEqualTo(FinishReason.MAX_TOKENS); + assertThat(lastResponse.amazonBedrockInvocationMetrics()).isNotNull(); + } + + @Test + public void testStreamConfigurations() { + var streamRequest = CohereChatRequest + .builder("What is the capital of Bulgaria and what is the size? What it the national anthem?") + .withStream(true) + .build(); + + assertThatThrownBy(() -> cohereChatApi.chatCompletion(streamRequest)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("The request must be configured to return the complete response!"); + + var notStreamRequest = CohereChatRequest + .builder("What is the capital of Bulgaria and what is the size? What it the national anthem?") + .withStream(false) + .build(); + + assertThatThrownBy(() -> cohereChatApi.chatCompletionStream(notStreamRequest)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("The request must be configured to stream the response!"); + + } + +} diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApiIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApiIT.java new file mode 100644 index 000000000..5c38aabb8 --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/cohere/api/CohereEmbeddingBedrockApiIT.java @@ -0,0 +1,59 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.cohere.api; + +import java.util.List; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingModel; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingResponse; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Christian Tzolov + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class CohereEmbeddingBedrockApiIT { + + CohereEmbeddingBedrockApi api = new CohereEmbeddingBedrockApi( + CohereEmbeddingModel.COHERE_EMBED_MULTILINGUAL_V1.id(), EnvironmentVariableCredentialsProvider.create(), + Region.US_EAST_1.id(), new ObjectMapper()); + + @Test + public void embedText() { + + CohereEmbeddingRequest request = new CohereEmbeddingRequest( + List.of("I like to eat apples", "I like to eat oranges"), + CohereEmbeddingRequest.InputType.search_document, CohereEmbeddingRequest.Truncate.NONE); + + CohereEmbeddingResponse response = api.embedding(request); + + assertThat(response).isNotNull(); + assertThat(response.texts()).isEqualTo(request.texts()); + assertThat(response.embeddings()).hasSize(2); + assertThat(response.embeddings().get(0)).hasSize(1024); + } + +} diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApiIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApiIT.java new file mode 100644 index 000000000..7ec33b5bd --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/jurassic2/api/Ai21Jurassic2ChatBedrockApiIT.java @@ -0,0 +1,64 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.jurassic2.api; + +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi.Ai21Jurassic2ChatCompletionModel; +import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi.Ai21Jurassic2ChatRequest; +import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi.Ai21Jurassic2ChatResponse; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Christian Tzolov + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class Ai21Jurassic2ChatBedrockApiIT { + + Ai21Jurassic2ChatBedrockApi api = new Ai21Jurassic2ChatBedrockApi( + Ai21Jurassic2ChatCompletionModel.AI21_J2_ULTRA_V1.id(), Region.US_EAST_1.id()); + + @Test + public void chatCompletion() { + Ai21Jurassic2ChatRequest request = new Ai21Jurassic2ChatRequest("Give me the names of 3 famous pirates?", 0.9f, + 0.9f, 100, null, // List.of("END"), + new Ai21Jurassic2ChatRequest.IntegerScalePenalty(1, true, true, true, true, true), + new Ai21Jurassic2ChatRequest.FloatScalePenalty(0.5f, true, true, true, true, true), + new Ai21Jurassic2ChatRequest.IntegerScalePenalty(1, true, true, true, true, true)); + + Ai21Jurassic2ChatResponse response = api.chatCompletion(request); + + assertThat(response).isNotNull(); + assertThat(response.completions()).isNotEmpty(); + assertThat(response.amazonBedrockInvocationMetrics()).isNull(); + + String responseContent = response.completions() + .stream() + .map(c -> c.data().text()) + .collect(Collectors.joining("\n")); + assertThat(responseContent).contains("Blackbeard"); + } + + // Note: Ai21Jurassic2 doesn't support streaming yet! + +} diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClientIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClientIT.java new file mode 100644 index 000000000..56fcd3c39 --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/BedrockLlama2ChatClientIT.java @@ -0,0 +1,172 @@ +package org.springframework.ai.bedrock.llama2; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import software.amazon.awssdk.auth.credentials.EnvironmentVariableCredentialsProvider; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi.Llama2ChatCompletionModel; +import org.springframework.ai.client.AiResponse; +import org.springframework.ai.client.Generation; +import org.springframework.ai.parser.BeanOutputParser; +import org.springframework.ai.parser.ListOutputParser; +import org.springframework.ai.parser.MapOutputParser; +import org.springframework.ai.prompt.Prompt; +import org.springframework.ai.prompt.PromptTemplate; +import org.springframework.ai.prompt.SystemPromptTemplate; +import org.springframework.ai.prompt.messages.Message; +import org.springframework.ai.prompt.messages.UserMessage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringBootConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Bean; +import org.springframework.core.convert.support.DefaultConversionService; +import org.springframework.core.io.Resource; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +class BedrockLlama2ChatClientIT { + + @Autowired + private BedrockLlama2ChatClient client; + + @Value("classpath:/prompts/system-message.st") + private Resource systemResource; + + @Test + void roleTest() { + UserMessage userMessage = new UserMessage( + "Tell me about 3 famous pirates from the Golden Age of Piracy and why they did."); + SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); + Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", "Bob", "voice", "pirate")); + + Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); + + AiResponse response = client.generate(prompt); + + assertThat(response.getGeneration().getContent()).contains("Blackbeard"); + } + + @Disabled("TODO: Fix the parser instructions to return the correct format") + @Test + void outputParser() { + DefaultConversionService conversionService = new DefaultConversionService(); + ListOutputParser outputParser = new ListOutputParser(conversionService); + + String format = outputParser.getFormat(); + String template = """ + List five {subject} + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, + Map.of("subject", "ice cream flavors.", "format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = this.client.generate(prompt).getGeneration(); + + List list = outputParser.parse(generation.getContent()); + assertThat(list).hasSize(5); + } + + @Test + void mapOutputParser() { + MapOutputParser outputParser = new MapOutputParser(); + + String format = outputParser.getFormat(); + String template = """ + Provide me a List of {subject} + {format} + """; + PromptTemplate promptTemplate = new PromptTemplate(template, + Map.of("subject", "an array of numbers from 1 to 9 under they key name 'numbers'", "format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = client.generate(prompt).getGeneration(); + + Map result = outputParser.parse(generation.getContent()); + assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)); + + } + + record ActorsFilmsRecord(String actor, List movies) { + } + + @Disabled("TODO: Fix the parser instructions to return the correct format") + @Test + void beanOutputParserRecords() { + + BeanOutputParser outputParser = new BeanOutputParser<>(ActorsFilmsRecord.class); + + String format = outputParser.getFormat(); + String template = """ + Generate the filmography of 5 movies for Tom Hanks. + {format} + Remove non JSON tex blocks from the output. + Provide your answer in the JSON format with the feature names as the keys. + """; + PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + Generation generation = client.generate(prompt).getGeneration(); + + ActorsFilmsRecord actorsFilms = outputParser.parse(generation.getContent()); + assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); + assertThat(actorsFilms.movies()).hasSize(5); + } + + @Disabled("TODO: Fix the parser instructions to return the correct format") + @Test + void beanStreamOutputParserRecords() { + + BeanOutputParser outputParser = new BeanOutputParser<>(ActorsFilmsRecord.class); + + String format = outputParser.getFormat(); + String template = """ + Generate the filmography of 5 movies for Tom Hanks. + {format} + Remove Markdown code blocks from the output. + """; + PromptTemplate promptTemplate = new PromptTemplate(template, Map.of("format", format)); + Prompt prompt = new Prompt(promptTemplate.createMessage()); + + String generationTextFromStream = client.generateStream(prompt) + .collectList() + .block() + .stream() + .map(AiResponse::getGenerations) + .flatMap(List::stream) + .map(Generation::getContent) + .collect(Collectors.joining()); + + ActorsFilmsRecord actorsFilms = outputParser.parse(generationTextFromStream); + System.out.println(actorsFilms); + assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks"); + assertThat(actorsFilms.movies()).hasSize(5); + } + + @SpringBootConfiguration + public static class TestConfiguration { + + @Bean + public Llama2ChatBedrockApi llama2Api() { + return new Llama2ChatBedrockApi(Llama2ChatCompletionModel.LLAMA2_70B_CHAT_V1.id(), + EnvironmentVariableCredentialsProvider.create(), Region.US_EAST_1.id(), new ObjectMapper()); + } + + @Bean + public BedrockLlama2ChatClient llama2ChatClient(Llama2ChatBedrockApi llama2Api) { + return new BedrockLlama2ChatClient(llama2Api); + } + + } + +} diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApiIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApiIT.java new file mode 100644 index 000000000..003462998 --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/llama2/api/Llama2ChatBedrockApiIT.java @@ -0,0 +1,79 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.llama2.api; + +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import reactor.core.publisher.Flux; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi.Llama2ChatCompletionModel; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi.Llama2ChatRequest; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi.Llama2ChatResponse; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Christian Tzolov + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class Llama2ChatBedrockApiIT { + + private Llama2ChatBedrockApi llama2ChatApi = new Llama2ChatBedrockApi( + Llama2ChatCompletionModel.LLAMA2_70B_CHAT_V1.id(), Region.US_EAST_1.id()); + + @Test + public void chatCompletion() { + + Llama2ChatRequest request = Llama2ChatRequest.builder("Hello, my name is") + .withTemperature(0.9f) + .withTopP(0.9f) + .withMaxGenLen(20) + .build(); + + Llama2ChatResponse response = llama2ChatApi.chatCompletion(request); + + System.out.println(response.generation()); + assertThat(response).isNotNull(); + assertThat(response.generation()).isNotEmpty(); + assertThat(response.promptTokenCount()).isEqualTo(6); + assertThat(response.generationTokenCount()).isGreaterThan(10); + assertThat(response.generationTokenCount()).isLessThanOrEqualTo(20); + assertThat(response.stopReason()).isNotNull(); + assertThat(response.amazonBedrockInvocationMetrics()).isNull(); + } + + @Test + public void chatCompletionStream() { + + Llama2ChatRequest request = new Llama2ChatRequest("Hello, my name is", 0.9f, 0.9f, 20); + Flux responseStream = llama2ChatApi.chatCompletionStream(request); + List responses = responseStream.collectList().block(); + + assertThat(responses).isNotNull(); + assertThat(responses).hasSizeGreaterThan(10); + assertThat(responses.get(0).generation()).isNotEmpty(); + + Llama2ChatResponse lastResponse = responses.get(responses.size() - 1); + assertThat(lastResponse.stopReason()).isNotNull(); + assertThat(lastResponse.amazonBedrockInvocationMetrics()).isNotNull(); + } + +} diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApiIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApiIT.java new file mode 100644 index 000000000..fcec41ed4 --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanChatBedrockApiIT.java @@ -0,0 +1,67 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.titan.api; + +import java.util.List; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import reactor.core.publisher.Flux; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatCompletionModel; +import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatRequest; +import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponse; +import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponseChunk; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Christian Tzolov + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class TitanChatBedrockApiIT { + + TitanChatBedrockApi titanBedrockApi = new TitanChatBedrockApi(TitanChatCompletionModel.TITAN_TEXT_EXPRESS_V1.id(), + Region.EU_CENTRAL_1.id()); + + TitanChatRequest titanChatRequest = TitanChatRequest.builder("Give me the names of 3 famous pirates?") + .withTemperature(0.5f) + .withTopP(0.9f) + .withMaxTokenCount(100) + .withStopSequences(List.of("|")) + .build(); + + @Test + public void chatCompletion() { + TitanChatResponse response = titanBedrockApi.chatCompletion(titanChatRequest); + assertThat(response.results()).hasSize(1); + assertThat(response.results().get(0).outputText()).contains("Blackbeard"); + } + + @Test + public void chatCompletionStream() { + Flux response = titanBedrockApi.chatCompletionStream(titanChatRequest); + List results = response.collectList().block(); + + assertThat(results.stream().map(TitanChatResponseChunk::outputText).collect(Collectors.joining("\n"))) + .contains("Blackbeard"); + } + +} diff --git a/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApiIT.java b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApiIT.java new file mode 100644 index 000000000..7e6515626 --- /dev/null +++ b/spring-ai-bedrock/src/test/java/org/springframework/ai/bedrock/titan/api/TitanEmbeddingBedrockApiIT.java @@ -0,0 +1,76 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.bedrock.titan.api; + +import java.io.IOException; +import java.util.Base64; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi.TitanEmbeddingModel; +import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi.TitanEmbeddingRequest; +import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi.TitanEmbeddingResponse; +import org.springframework.core.io.DefaultResourceLoader; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Christian Tzolov + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class TitanEmbeddingBedrockApiIT { + + @Test + public void embedText() { + + TitanEmbeddingBedrockApi titanEmbedApi = new TitanEmbeddingBedrockApi( + TitanEmbeddingModel.TITAN_EMBED_TEXT_V1.id(), Region.US_EAST_1.id()); + + TitanEmbeddingRequest request = TitanEmbeddingRequest.builder().withInputText("I like to eat apples.").build(); + + TitanEmbeddingResponse response = titanEmbedApi.embedding(request); + + assertThat(response).isNotNull(); + assertThat(response.inputTextTokenCount()).isEqualTo(6); + assertThat(response.embedding()).hasSize(1536); + } + + @Test + public void embedImage() throws IOException { + + TitanEmbeddingBedrockApi titanEmbedApi = new TitanEmbeddingBedrockApi( + TitanEmbeddingModel.TITAN_EMBED_IMAGE_V1.id(), Region.US_EAST_1.id()); + + byte[] image = new DefaultResourceLoader().getResource("classpath:/spring_framework.png") + .getContentAsByteArray(); + + String imageBase64 = Base64.getEncoder().encodeToString(image); + System.out.println(imageBase64.length()); + + TitanEmbeddingRequest request = TitanEmbeddingRequest.builder().withInputImage(imageBase64).build(); + + TitanEmbeddingResponse response = titanEmbedApi.embedding(request); + + assertThat(response).isNotNull(); + assertThat(response.inputTextTokenCount()).isEqualTo(0); // e.g. image input + assertThat(response.embedding()).hasSize(1024); + } + +} diff --git a/spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Chat API.jpg b/spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Chat API.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cecfae8e796ed689f88dd9a76ee0d415b844ba4d GIT binary patch literal 438847 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%0A!@6@arr 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�+c6W`R_7E^4MN2-QSxlPv%AGI-{Cq^d^ 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

YFFzQ5g6Foxh1^TUd1N~tiUafw?MewPH|r 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

K3uu^g17(2zXo~Pu-6AABB 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 literal 0 HcmV?d00001 diff --git a/spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Embedding API.jpg b/spring-ai-bedrock/src/test/resources/doc/Bedrock Cohere Embedding API.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1516817e26f06923005d76dc482252425b919c35 GIT binary patch literal 387743 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 z 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

_)`>1#CMOw=(6U4!>v2i1@ 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¨ePb-0NhECx0$KcXD{ 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 Dr-4N4 literal 0 HcmV?d00001 diff --git a/spring-ai-bedrock/src/test/resources/prompts/system-message.st b/spring-ai-bedrock/src/test/resources/prompts/system-message.st new file mode 100644 index 000000000..dc2cf2dcd --- /dev/null +++ b/spring-ai-bedrock/src/test/resources/prompts/system-message.st @@ -0,0 +1,4 @@ +"You are a helpful AI assistant. Your name is {name}. +You are an AI assistant that helps people find information. +Your name is {name} +You should reply to the user's request with your name and also in the style of a {voice}. \ No newline at end of file diff --git a/spring-ai-bedrock/src/test/resources/spring_framework.png b/spring-ai-bedrock/src/test/resources/spring_framework.png new file mode 100644 index 0000000000000000000000000000000000000000..735057a6b1bda50f7dd245a3151109d4a76f04f0 GIT binary patch literal 43647 zcmd3O1zTLrvhLu65AGh^26uOYyL)h#;6Aupa3{DEB!S=(T!Xt4+=9d9+h?D>@BIgN z)zj0pYE@Uu>gn#cyJn(Plw?qm2$28)0IHmo5diR^0RVy^0KntBDCiIX@Bjkc18Xp#N7JTCD))e|bQ|Kgr<3Ij!C!L}yuDHvj+`>z@Dx$jZTgx29{O zq2sQjsK9UT5xtD{zqZ_}M5aqu#_}}?|#H^I$ z|59rftQwk%IlamX&T3GU{NlO1a`TLy^rM0`eGe0Y7^2 zCkKm@s}(C7A0Hnpn4OiKo%vmZ+0EP0-PDWO(T(bVjQp=1$xm+Pt~So@HcpP@|JXG( zbMkN(qNMyMqyJq0Q%-jq%m3!&==Sewy;qR+pC_zrEMV6E*nUqc_>Yud+12LLd(QvZ z7iJUum*)Q?`*%Kqtp8;Ge--9`YWgqfdsT&z1X=&nY{EzcMq3B~fG9vtQcS}O>ck(> z#9$!lZ@Z;*GV=ofW~&ns-~3}E3_RwbXuUl-?nKvM6O7-;^*Q03tkI}#t%y; zG#?vjf|y{2iy+Q=?D+VYz=$LZG&iz+g>I;o#!ohu>z9GXU3a@l)k&7?#Dq(0CgWqi z{u z=W)2^w0h)lP@3>4tp0!6V=oknUiK>@Kk*kYPDimJ&LZ53%l)IRi~cB_taa@|LR(p$ zzO1xwnje*yC}_=Sa$hBF5Bgt^CIxfw6?JSozN_Y=QP@#Is#*rQeZRGgTK$og{Q&=8 z`YSKSuun($fkqL?8nawoI9u?L&_u&%`U28#jn~jTl^s$=gDFCj?zBm)FWvS<&C{%? z#O&pOdGixg0~C{g38DMaop4%NY~OQ!cX7_#;k)KCr|qHXy~NhMpf_Ro#v@3SO73Md zLO^P-R!;~adXO*^{Wle?f;W)?d+^#lTbEoS4c;ysKd%P6#%f}3J|ys9m#w?xq)=Rp z1=YKil+r&D;$#&OutXE%-w?0#h@4}oVM6H7m3`tWp`kto^FoyUhRWcF5pSapn4D-F z2IQ9nF8+E5Zj>)8;Z^G8b2ifk_y!zo%-Y4QlW~WBV?Uh#2vTbaU*EnhnU9_r()cvg{wN^$)sYLWqkMSY4fp+f6FFVQvY z0>eu!uXxDD^7X{(DB_wl%vsqIuW9&+{~lrb2|HPx<3Z39~FAnuTzoDpFg2 zJUaBtmPTs6IIg$)yr%pl`2z?0?(Vi|y$N7jN`yaYTN)`fO3EJRAI44>DXt!9) zp;DZE{8q^yH^o0*G(SB1tWs?8xJ+@gt|=2IL`bKuS|74JI(?H^dW50qQh@jIcFAey z(!tAjr!tI)^h)gO7kNb2tf@ND0QvvqA&UY#*nPhsi%KQRwISqNXr@2v412a3ZM#-* zktz=yNTB9aRCyFlCPeTr)Ba+MWqEIVgbh0$P+0K?{$`=l|8E>Kp5x-kG#<1j_7(vo zkNLtc5sv!*>d~&<-MkK%PTqv&`%lFi5i}#`h5ViMSOOB56 ziz^@D%3@lG0A@!mv8aAC`vSL4$R@;=$Qbf)R<#v1*mL1oG|Np*mo-c$7&j^meU_B$ z9J1i?8>nd`Z`K}W#K@dwY5d!DA{}gv)p@Y z#j?S}qn)5!4#i$^UV=pC*x)s}S=qpr`1so5;Xu==$jD8wG1q$aq2}*qHqT;U3?ulE(;?8;6$wD+RKDBdPd(p=eN8!q8RfSh!6V(hP zLRgo_OzmX>$u%?#0d9Y1&qXy>sCD9ujQ0QOj`#@p1@+j<*L)5g-j1I>H6e~Ihi%Zo$0rNH#yxIKyB!>v^eByt95`(vSy@~TGvOZt0J=wMJ1v%q3HA%kzgaW)n>2R>xZJ&+&=2+ER?&VdK5^ZE1dkh7Ic zkMgMjD|R`Q6J~rmU$M$*o4FMYp2z#-_{>?C?z4j}#K9#_%Pl=zB&|8&(;DcxDQ^Z? z2I~s(ZVXrkH!R|+SMS@9TKx>wj3+@;ck7<&z$Q4*A~lHztI5Y7SRr#vm2a2mJs&KR z|7o2C{EK;>r+N#AQ_sybf|$8O{v&4Y>cp>YhMG7+yOkws0%H;O<9Z5Yiu4L`$4Tkk z2f@LOxFs|AT|Y{G{(S=P_|s~@Va+Sq)v<5E;Tu=3DT3M)aR=qPjIOx_ECMTTt7+FU zmn(wsXr3UAHV$jvTkL~}4umhoQP5u4D%R1#8jX?tqDv;-2M80%%^p>Z zv;=r}4mfyX&V3`}l~1Hw=bP##94szv^61pQ<0MmRx${2?j^$?3Z|?m+&2k{VC&pk? z`I1Gu#_wOB0zYt29HvcW zsNykBT1s5ZQ)^ZSYic(8I{hEJS1x;Nf_nT`TY6AY^#>&kWr)geu`an8yl?`Rd?UH{ zIV(CLxY0adPCSYv4ovntP*KHu0iCwHyT){#_;7Upd_q80pk2i$bNnzXylJr4PM< z8dew!9|}N;(zysOq=C4@x=KhfNh$=y*ko?mD^?^*6pYzEAwjI8{|wLA1TcBhOY?KA zSFm7A8%M31FVNbq2$VJDBWAp1=Q6td%Md~zI~Vy$5C)wA6d$+*l%tU zuB@8iC`5de5oE>|1It4X<*fmWzej-jIlhL?+4zKYq6L69;(O|%#1p|~mWN$n7;%Zk zIU`ROuMpvg5N7C*a8V|Tj3ZO8`~VGXA&IOz_5u~*FZgs;DCKi1p~5Q8{G(ilm)P#} zas$%ikcuunw;S}P)H(T2aRQkx=-u5J$ZD|&VS9`$_(qK_uS9x_ZThpnhn+1-=@UxJ zsy|ElcI%{8B2&OJH&;U(sQmiTv-tnKiqg7fsYh_#2Dc^u;x;C$>5jkNsKH(FP?vs8yGBj;D(C_ z(LFH&w(BjF@y07SZ>Kx5)~6aLdB?HeD#- zC^PFmHhhi=vjYResMVJJJ2%P#t~0EyJCqv#k>o3bj;^k}naQ)6$rvnsRt!FwZBJG) z6_{X+sFsaIuKQ%yA=FisF~RsGfq7Tb1K1;wQi$XLA1^1oo9g8F>6yji zmFHeZH!t8~Xkl{W0xt*2&#>o#gg1ZTuqA+|ol5i3T%f$sBP!T{4Wxe-r4+vudb`Fr zvAd@i^@|lPzXPwloaqA_IGznm6M`K^mlZ=OP^!G9T%(&{y=o;c5Tb4}lgb0{Mjv~4 zK`&H&c6_*O9 zGvnLH&ngTjIlYdYEnHvRjpBsmK@YIijCo4{<3rY*j(J$VY0hjn|+~%pI1&3H<4Q2EU%%!*88$D z)~-kRBT$j3Yf9dVfg=AS%1JOjT@<-g*{7`QtT$e}#$sJ`F)R@?;pOgzJ~p>e_@>+1Q_ffI)xhB!w$yZ zR?NW_`Pp>VrS(5u;TUS|utp7^)jc$;GVCSECD%xnw0|ZF#d*^LhLr25OE6&`%nJ^) zLNh!wnYq;JXj*E}H3^z#%p~_VV00xKz(GLOXp(Slh9#?jj%L$7ha0EjKSrF9xwNlt zS&k1=!nT@!;1m~1*^z`|{W!F^sy7Z3d>evNZvR=YVk5w;-m|9;Z@1f8RsFa!mevu_ zBxdOOV_EctuqZ8LGMO$LJ{jZgFJY5Ei>8AE5Mx9_khpE}?? zo~nFIjr5KjxKXe*6N_eDvS%!rkIH`%rt3}MQK0P}bzFjnk|TXcmF#&|w7A?^@g%R@ za@#YH50QU|ubXK5AiNriZZHg~9_&oB?p_{Tg2ynWqk^~CL^;TK%chqr}uPX-;C;;7F zREF0|*=+hmzkH)b_adbI7}J-)fQXtNc`Vn*L1N`8+UoTqBSqIgZ6Aw;qQW7y zfsUlH$~kc9ujih{A#@gSAhpk?`6v;evXyFrivc5bnRNA;-csH7<;X|&fuq*X6z{%_ z?i2?@#8>|}J+V33SD$e!%2IBty@y-@|G=o&$P38V_my12*3CMx5k=@n<;mi{$~I`= z^fAYmG}ixu;z2%mqySrGUSe_P=dkw`gsSG#-DZ`7MX6dOW;xx8NG+&&)~CX@$eTZm z?orNJn;)~EO(ZdYXLS?=bXJmbo!B=%GkBm+`4776&WjEXK~@tk@{t%seFq7zS|eNZ ztlpk^2^m+<3ftmlwnawHC_Aaf{`VEka||=eW}MCleuWyRju1r^!P6ZACYg<>>5q!4vzm6#PZfM{`qPNqT9K@Gw2ImAsUWmlA#+WLq{tt#u(4 z)s+PbLH1k2pzucMFmOmJ>G>dHN(cBDoxo&rf@PwCBVnEc7J7Hp?->ymSU%(+ZY>~!`sx`9@ z!U59XOxzT{(Z2l`UZ!HeBMt8Qjl)ii7{!ps-^3N_%0B)|oi-^8rYu?gB`E}%O6_|IiFPLkbr=|~t;$dnw7p3LDhiNSA#&1^TP{F+WR*WCwRUrxvQR#CkRHbBu&Mw6_w3K5OwoP!=QMle`Xblu|s zCY`CB2%eXQCU;~Dy%|p88&G_XA4$M*>SqTH^N^k-e_f^b5rI%OnH@Fr3U^Ir)uiv0 zO9{Pg+-K$0T786;D3SH4Zdf2bT-ImJ$S6ToP!^Q zI99g4lN{jesIt=L;)ZBQ%1+lHOgkC;AhOp`O1JbF_Gf+BNpC_4dU8)qMj0U05$eEVcl9f`~t0CK_aOkhgWwI zvAb6Pg0gL5>Ob4Buk7dZ5fn*0YQU!~mL5^UzDs|?YwcYBwvS+aX<$(@`x>-_Ex&nz zC|?1AnAs`BiLy>%8w2P0oKhEb@jp3zWwy^y?QlD0-@kaCMD&D>5 zIDwC=YL+4q_kGMmwRkwHi%4pW5rhiM*}|VJci6LTVf{=7beebA1wN4*c*VNubrJ!b zYH@81(L)*{Mf`j?SF<*KGI<+5SJqf_Rhnz+N0Ux-*@xgTZ&~mEtv7dQ|NJ`0JOY9W z-TA^JJZ&{Yi1c~{t#ExCp?#y2ks@Elyfl`gs(Lscx^)^4J&JuXeNLQ{q}PTEwHTt(wT(26FZAhN1=l-k0z7?_g97_VyXI z3X*v~sEPc8JvCP7*VW{`SvdI&y{v6HL)e6j6VH##2L$FhHQNE; zTv%Sa`lRzP+(TU{x3d!Nl-sg{$*)3zRyj&@Ec%{Tuk^DyaqW#Fum++sWu(FUcRgLU z&z5t3Gq|?ej~CxbQl3bDs~Yv3mjR5+u#g-!E7Uu%qP(`#-9t_~>CcQ?M!APUIWVOL zKo%G7O%a1xY?AbsPUO5Bpw|#HGcvb5_mA!%0!VGlhbSHRsHM&d#_SW0l=w!k&+$;gHD#Nv!fj1H&A#<%@Lz z8R!D7r^~dqYnyl3O@&0*Q$pgv_~i$pNV9c$wjirr2K-3+=BV>^;L$Q)#A1BZ?bkeL zkdk=d_d(eN+s%ziD#oFe#@_V|@1hBsE9I17ka(0*U z$u#_~i2q~X)8V_Sl44iquy`+gU2<@6K8-nYkOa=;z3dhw<6yYuv+Tkyx$3qQi!m$B zbbjFJ{XHe_z|l@J^y8by7S_GSoKy#lOR8x0cjz5OSKrHA+T3!&!4&xClIoJ{?TNhN z_`Bt8gHdm&U8EtMU1eIJeb;yY`K|a;7Qm8|3THE^-XAz6_Tgh(9*a(--v^w~pscBss&Xmbdz$ zoCzhdAm3HS0*={+T0|!K_R^^Yi)l0@P_comQQxjI1^(QjO64e5wp`08#DDLem0Sa; ziY+*-ul)+_$6LNjiH>4+h7%D%eT(E6@cPK36E40oxEE)u zk63il#EgV6etH{6J|z-H{{otNM?<~aeR(F<`1%if7^sFDkv$#kgj@Sh?pV*s&CO(D z4>TG}L8HCs+q@W3{b~2xH1w}ZVr$%b5LBpAYLqxqY*cYsC+`wk+l?CTipPo+hJyMLO9rudmO|W#IHO3j_zRZVZn=}J9VN&oi>$)HrRB(AQXb4c3;=w zR^M!IduyL`RKWQ6z4tqN+FIqxWD#v8FTQOzzHr=MqCfG|1LW=pys(V?D8>q-hr?&O zxS9jRKX{i;;fnz-GK~op7%sTUy^7A1#rtj*sj71o_6NB^z=c5$lPNn0nWF?W4@d!Z z3g)X*l{XG-a$r~VZ|Xb^JmrW1p$c)D42WZ4b(s+bf#6~uvno8o0ft;^bQ>P54IoC;@emhrZ$ zY_g&B?~fF6&cfJh`U$o#BWJ}*3^vkysw64?B}=GlYN(6N?bG zq>kt%ovt7`&hW43y6DGzknfSrX0Ncg@lKcv_I9$(eXlnwwm)EmS1EjjDkCfnABt+S zc*^V^v(NLnmXzr7)ih7LrjKAV4s(bIe;8ejqU(Dv_Zdch^vxL1{(@y_*x2G&Oga-E zaTJMSP(IT{$J&HV2!pokrSMk;wi>Sq3+wr_LQh?t-r@s$_Q+@PU6?N$@caGaU|Me1 z@C<>|7;Wa0A8bU@*~%+lS+X4o4PCWQX~i_U>@4yfbbA)E(8@jp16@JwspVSszy|rM?z_dpt zb(Ixy9ZFds=l{6R0;^?f-f)d8;0T^X=z$BU_Yqsrvs5G#sIy)tdwq6vtg}N?X0MH4 zEn1u^*jC_7+N7c4DwH+TXFzk9?kE)PpTQse2lDrE-d|5i?r^e$nJsU94s0npOz_L5BHyz^^sw<_B(@O0G@scS{ywh2`P z)sgXrW`1Q>MsP+5Z_?pQ{`6hxYb(iYP)cY@=Y^bLXV&2Z)+5i5>Ub!*{m<-9w3iW9})sPp-#tpr; z%EDu4BvlJSYZsGrwas}1&7l--zo4I^RI9s*oFPrQBUY-fOB~4~Qoq{t=PE@doITqH z?}aWzuq=ToZ=&_Trcm9}-|9V(>4@9*+N3L7_j&)|e$%&yDW$-=uR&4-vvd=7?EQYt zJIG#`H&Rk3fMY;X{eVQrVOvB1$t0IF41+{W;yZ&o_6U8K`>HHWJgFQeSLT&ocmMa%&q61AP*EUm~~3 zA9oKddvb3G9plH7L{{Ls5yYU|ZYrNGEQxHB=05OoF@ey4qq6TEQaV}4vdGMpE?R=n zmwyN27$hJ;z-?1%%p5xt+X}-Of1&tSfXK|K#9d*Hak!e@-91{fYFSe*i{zP|sr6P?D zAvLXrdjasmnCBr_bDp`Ly&uIi5}W~dybanI+!-$}0&m2&@lhiX^5^k=4&}!(U*Kv8 zA zX{IbfQufcq>$_rTRN~3J4k|JRovd2|V#))+4=TvojC^E*%}jViAzGty+3G5)L2#=1-WxJX2f2U`3HWf< z(!oybYGkXY@4IKUiP!5vSX>W=?twDJ==?zG7gb~cSv1RG%Jhr~9RkCSmm$I%w|gnB zJ@};5BYD-6rf4 z)U6D^!JB$hcDe5U9x^5l9I)c%CDrhp7g_b5=u^Pu@yd9M!7ROAO>Vc!<;F%AuCeK~ zn}7;>+O}Z%27l^oSok_zIvdEgb$xK+T#w1)5QA+uyw;=~ny{g(b4PY}Z5rbSyFXyZ zn*}`h>`Rcx3L{8s6aQK!P3&hPOnmbIdw68SnUJhiGRxJKcQaXy>+1uRf8p#&P&=dC zU+@6)B~LMc6%D?76vvr=2wrtM3?2z>t>SbaFTT8-4-IK`eZ2xYjc`UYkHx4ox8WTtCe!3U>V zt&gy{*??8!b%T@!jKnK!P_6Y>$Dni9IPCHJ^Ct+boZ-;#jnE`O1uJG zck!T>bD+(75)f1>YhC$jvOK@4lIG(4$yjG@&GjrCb=b&F2<6b&guvMO;BISXb6D6Q zo?@~HWh5N-_FTISGtrgu2NSuv5Js34{`_-QY4 zNJw%BhrRjwL}L8u2TSntT({?*EvU(uJQ5|%ti4qOI^iqv?42Gi7gNXcUT2~UK=60n9wbF{UYO9>DCsm3uVa^b(iEP z(j7VT2slhYTSfq4Oo>;~Hl7v6((Z4;Vgx62FTC(sxn?>A8SbsZqvpWFt*hFHdbV?~ z30#v~WAX=A9cA40;|#el9V+|^|BM9g<`kL`JD0aJLntLg311j} zThvzWX3b@ToA}*2ffhNf_(h>4&AEUmhXD#iKJyLAL2!Q0a8W3K%+DouZ}T}c5VgkP zVuhlMPIs`rZy;%aPi0yr#b10+R8FI`*DT0Q0jPYhVR}B#Xwumyel!5r$J3L^C-2Mp zj{Ml8a?zs-1s19p+H-u|5@zsW+@ChO)FxMjvsXO$P)Myh_toK zZVeP{Lcq1iq-G}$!iJ`A+RDj>Ox;oUTR#wH`nzY4xUPnhb@(N>vyL=K+`#q5_Pxc% zP>)GrD|C2q9dD)j;zxF{qU`E;Z#6yLZ%vT6UBj5{=Uy=K#VGLAgWP}<6~jf$X!y_)On1JC|3L@c#CI$GsP}@21KkQBwGF=SUVqi59P0Ob3>pTfamhqz zoEr-j{n6v%#I?{{h3rPtQaJy~5(@jx+PPQqGMD;_2Vv*U$TAfqGzpQ&VjWku6?Wmr z3#eQbeKr2)ct&De{{dQ@BHDv{jq6%RhA02s8;Z6^11;i(4U63KJb4Nrz&-yHPJK1u zs9jDtO|V7p7t$0EQLn+bM>Ws6#l+PtO4Bh~X074#!pdeyj&??52y5kp#kV_oANUOE zAl9ctYR`rIzLfbz1w-rd3K#ksS$^YM&^H&$E5aRBJ8;ogp#js zY8X>mXx`G5%ej4Lj2+& z19|rDPkq_+LCF?I4?0!vH4@?uprHC(9&79hKE&_N&0ytJH9S0YCb(%Smkko9MN%uczxT@0d?MNr=TV<~1Z!1R-c4B;vgzh)I@cId1Vu>0hja56 zoD*^9*y&R52<)jh*TcJ{grs=?uze#aFf+d1`S9HY5dTWN+l||6nzZDp=ibks_+N z#L}x3yDfS7rI&c6$Zaa*4mCHS?t+p{D|?kiY~vi8Ubjo|EF;-2o>Y}awO5=77_EOo z&)E8Kz#)e7{gq$~vE3aNS;0E{!e*1e;qBa1`<6W3^R?`I-*=U!Saa|%D+<8cWUclW99{PF;pKFmWvnYf~KtR#DOm zQTR#o*&X;q!zEtOWk)a*(jG7=#_jgKw{u$Zgl#}K$W{ahAC*9v5!b*5Qd*A=!0Wl= z5qdr=yJ@(|Pn#~w`xB;Lzx|9{e@&fH%l0#^f$QLtv{EF6yy%X|Al+Tb(kiUgMBW3c z4bAAa1*OvdTAbqDH&?u(86OFsDD$RN$!{CR%WVD(_`O;f9aPNfJzYK#)&*^C2+T2| z;HVcG#C1qB+_@H44|ie7J+ne_D@>lpjoYq=q$(M{=68_alhJGJ*IegYk%oC*n?<3<4iVlQXB+sDdA-?n2rO=K zzA5BF+7JFR8*;0u8%7s50^oFeXh%zNgB)PRHJxC<%33B{wTw6I0vYJ;YtL>dT_>ub z3w&g#wKi|QH3ys53}y(&L4xxm4o3GyU#^H(cx(~Ot|uMdm7 zo;#^4@r{_z+!>`Z{u$S@980k5adlpsJI)mKY7?dj^Rr)M+W3Y+s8{#x(Td{(%Zf*N zD0-G4UD_(?YiO~JauO@9X7~mAz|!A0NR@=KgAvE^4tQ;2q_bcRG02a$i(~7{erd^$ zy&~jfW9L9zk0J|W0?u-$_|cPQwI0#Pzo;7=*r@ld0Uwv-gP99!{7z1A`436A7Fpub zCAPqRDPA!Bg+xRhtoTOzwCyYbk)pbwYn1s)Y7^!Z>uuo1Us8q_fsvo)v^95CRW;)sNM>#8SVKr9hrCA8F4%m7=Eo!VpuF(E z5#m5kmBYIj5Vw_W#-~ynb;U=kEUXdZ*bpT=?I@5^>?seN9KrJNNq{<0Md&>NC$c!v z6x??kq5YL>5D~Y85=Yxq)NB2E~c`-cP!gfw%%YJ=+#uNUfJ*Jdg8b&ffjbR@uqD~N9e01B{y_RGi`&y}AoK-5b1g6;vcSO7W-B zTOn1%RGM3P=8%RZc+aHCJw2Jsy@O%q@S9&+#9M+}ewVaJBVxGS+kI5gTp8BeniF=6 z$Q?i|GT6vsuD!jFiEo6q+-CAQ*^Sl7yoF_y_fEd2+EiSRwB(Yij7DIJ=xdl;m*NO6 zAUFQtJgG?ipdcK;$jz+R724+mcZfm61*?WVd)Cg0Pd>X8s(YWg@04C}qA2I-;y=nbW1nK=X&{oo{v5!>jeci1(#K8)gNDP**g& zQghQz-HONFXM6rydM(rq3laMKQ4KLe} zWV^&y^{I;&ta2l(XKJ(#R^EY74L#{kGmx(bV7_4U8HP#a%Gk{@Sb2q$c^v&!xUck9 zy@e_LGz$-oA#@a-SQ=0(HO3*FFIn983J#?r2Mv~>tfh=HtE~q@vy9GQt!I8ng(ET@#v@5UemIVX@Qf0N@;nS|!ZoH=O50 z%vPw|L1lPLw)ux5s0DA6*nMrVp>vQjyW^#(A9(fX?n})PYL#=68+R;)2q@YpDE zg^}0=t2kuv7&y9#bl8oeBZ3!d^5n(9O@NI82}0`utOnnYdem5j!+n!9=&z!SH3(E> zaf|XZ+biPUGKhZ}oWx%uD&W9(qQJbP$K6M$RfBfe(vx4F>>+;x=Xsi1-LTh(j^mjn zl!=Q*bBOWeqMIC%#@xmntEZ}a>0y483(Y5_{>@|otqJq$LSL%ZGZ>S*Z3ME;aekwm zza9o=Jn3C8Kl-e`_*86sjyV8q{HV`fF5h4^)b~sEPulx^EtX(#yax3SkEyk)zZ&wZ- zQAY`skqLYuPF;t;ly}ll=PQw!E}IR%C#18~3YI~5d@M3+fbiw4%Yrn-=)Y~+pw(Ml zy^m3DB|8taNH{h*#v^>wB}fhhwRHKSOxR&W2(bn%mO{v}dFhXxXcU_}HOTp!Xpyi6 zt9*DkBA*etj=FZPx3xyUAHRh&dHTG~mBuf*Rg+$mfjx1zLMB5i5`vXcwJF)My;1v= zS+VCqoO6C#zaEIrM2!X|C_?GoF?&8&@n#J8{u z1J*$<2sVG6@=*(q$rA54fXI!?%l`hEE^K-O!WRYCt2(Cj0l~gd0^RpM;4qt!$v75^ zC8OX*3~p`bp!pzi8ZO^ChM)%aYa07`^AbyO|tNYebWrScc0SK5Gd$Y*MlKB0A`}+ z3|qb|x{~yP#FC;qR;$Wu^7t#tqyPJvm{HM?ZCH>S zmQtvv<>;H&cw*5_et1{|Y?~frTn7I*^V(UmBMC2sn%vluKS>j>@fU=P=$d;Vvh}_Y zk&AT$C#yRf^-t~4j`5w;W1cE^KA@_bBMk?Oq15ijHQ!k9*QuO=4UZNM@PX*Vv>s8~ zMVn;FxY>=4dmsxgjjAY@H398{1pto*W_kfN3$fd4U4bUoBe8K|vlJ5HWN@*Y-RBV$ znGl*J{WIOgZ$>0GMNfB2IF=a?t0xzUn5j`#{-aU!lktr3z>3atsL*}YxpLXk1fx4& zX(fIj+Seuv1(Fxoex2fQyw^b>q&QE)5;8q*+PT9HEkSj;nj_2W7UM1 zJT66S`@(yy^zriB`TYnWfv^}La|si>YVY9n%;x8hBHrJsF3{pnyt2<449<_2o#_yX zlZ>kL?mfh$m9MLB>oFi1e0`^07~*hIZqPAluWGNF;IM+bo8umbk`rr2a@-`sw{ zKtR0~D^YU!8CzEow?lA%!9%Nhx$Y6~n7J@WHHUshMwt@W8rXg%Wq-ngKvDPidGXh? zbofA((;~VK*o41V6MHZ~N%;!l*R|$di8%ohS%DC~F=?~sQ4Xm7w2NBt7^C|IoXWUX zO5&X=^J7Vy?e%7Mi6cb^0mO^Ke->J?5vyX`C3mAGyx4MR3LZ^T|HrK-13`fgRo$Hc z5-Y|3Ot8hO4eANQhRmbeuZp13on7;+Qi)+-kI9XnHs=qGi+Xeeou0dHh6gEpyqYod@h3+Hj~X>JE%hM0fcS|7L>rH7gK+WS9rM521r2cq=?T;%+|VqYuv zvHNW8utOmq2Sue+{vF!kDes9<6{PRmbtJ|wIoU z{;^>RZZ&3FrBjNuSTZDClPZSE5-^glRP7E@k)qi4e2!?pRMLK*nR_q)3T6x)ZorI_ znGUcFO=$=sQ-y1=cKj9@Z!`ap*t^8_ksK)#Ri$SPQJK$AOg4e+))ruOmNGk*X6^E z#+3u>32*8;be)W-C~PeuVvb#U7#fRhci4eQ#>0k-2gy$nHfJ_Cqp3vbsTYBj>Ei@B{@GxLJgR`ZuCKjzwRxdL2HC;&S1o#cC~HXZ8)$ zb!j=A(pKSq?mTJzgN(LHt|t1m*nTYVdzru4cn`XI@gM^9UYALL;Q))8*UeLYOwbu3 zJmUYD z20mW+(`(F=Bu>Fl#>E#rl3p(BOsQ*pF@kVuHna*tH1rh>rjFX&2=1JyeTzYN4|kI6dE^NezZ2?ov@E_XGz&qQPCMGU;v2wRliFxd&oR#?9|M$NDPMG?d z!F8LjeT)r%U&dwX(JYW9zdZaO0D?e$zX%_*`ZObo?{WN#ip{BFlfL3-&S}JnL4*@Y z;@&LVI$o$Jvt=qdgOYOr>_{CIrwBtZVQjIsD=Xlz`b*zol{?-8|JrEYa&&fC_{DINKG@-oh*BB#XWf+Y@3UYqsS$qN)CbT9Y9PD^z=k~5FP;U(V@N}A1@(-XR?33FfaB+y05A zw=UQKAqqk|PPw5MVkrjg4VkScY-p?IxBVNOlaGS)`l5XNlt@Fwp&OidBV2L*874u9 z)7gI0+Pd@5w-ex}#mM`CU1?~}qbAB1qPPZQ&_XF{n=jxD14Xb$KHlix*)lKwBLufK zVdlFke~n%+ct$Ga(~P*6$^RUw%t-G>BrqG7yJ77eH8sPi(kelexWnU|7~2Fb6x5_T zql71W%xgnx#nA{d_g`c#BrI4)s<u;Z(BE@VOshl=@boFgoH!9a5B2X|be zgyX!9JtIgS2E}m&sd#QxjY)3AN12%GE>LtBBpmBRT&h|Mz&Ynhz&Phg{LwbS5W8CZ zE;zBwvQL%~QhB8MZ;=Z13?W3(l!xnAvMe7c8~v`xOjphC{u2V+EP|O;3`U^JSjbW6 za7>DK5f0l-h&8^q6M8BOD$ROKIK(X2b z2vMsjAb5Uvc?nTIP+U8{qxH^6;!ODJxL#a5>^}dCzbmM4iAv@l$wW4TV*HqC0VyI2>%A^h)xfaBVg+&h(f2{Kc* zw|YTmTPk5+6#*m3gNXA4pNSp)fx2zXCp6Jfu8PPV;!#Uj!c1v82)^um7{}-D;M~Gk z3*Wg>OYeypVB(~p4*#%Ck$u&#vy1fgDRft35KuXn+89JxRsIbJILKlIeay8jEDFvg z7CU&^J@u3Di3LJ3yDMQ##Z@p(_s%>B@6O@rL!=;d2*usgdBD*+@W}77?v+Kr(JtuI zzL6HuB?$e4=JcQ8a&tdT{Ddhj*Bt3f?5@7t9}rM_O_4;3We= zb}_eeriUZ|A{ZzRgdj}SGy=-g%Yy(Gfv@o-#lY8k6^^;E?ZJ5l70CDl@uL-nf#`Em z+NI1TTrEn;AJG;a>e;qwn@!M)^%5pAr}=OXOCt(Wg5hB)V;z5xmkweAjhMfPxS@Z5 z7K&&pj#d6EB9IJ5PBYB&29{x+}rTAPM|sOkn9N3<0$)J zhgT(PBa0~Kq^etTm!m|7boc})(BS_2;`UjMyaW@1s0x#*QO?~h5Nr%Qh&WN^hL-u= zKSG@k_S(#E~S=j%rl!LopCK=VtHUZfZTt7p<%mx5Q3od4kZP&> zu&nDxx~mpnaRC+Tc~mI{ovrpo?*AUNdKZ?9LD7U2|ZrfyXwF&X}HmfRjp?A79nb^&g(*M57Ru zN4>IW8U~0{GKtULRX;-utLNa=jePAd?zF5qeT7D93$I_`<{JOiB;V0$SOMrnS*ExT zm4mB-phd%k&vni-zs<5nSigBmd;Pbl(Iak&V~@e-TBi@yxcG#Z_O}Qq`bx?Aew#+>OO_h_0fQkJOm#?wJ#TIvuCOf@tLoH(Us0464$0YcUf_4a9Sn7hrFuF0GV zi;BIwHeVZM=+2e6jPk8j^Sgw9l+a2BKn;U(vKUOT+aZ)Q(k&*BTA5PKseHbo^mB>L zj+%H3mYFn1c}X}L2P0;5`nF-_bHdfy4{>ScqllX4WK0kCLe?9Z&ZNBPX-?E z))5%=&n*pI9qgOe*D>qCF0H6~6@wabHUY7Qmd$08 zO=$Gc6NnJ%Pq>Z(YV@*cYs~UwBrN_Q6idhD&Q*(D@)PMShg0d{HK6(*iW|s<`-BRZeD``D$rL zgBzNEais|I{SyPak{K4u2WV7S$|-|u)}x8+#Z95fPZPAZMWx|O)NXHi&0KmOG{ z{aBiDD^+(h3Q|!I0ytV8#$bvVV8LKY0~n*#;^YtgvMl>-YDc7hK=Cl|YmXo={FGW4 z*y#UHwB~7Ng0w7HDhl=`l|D?Ke*R`;d??0wVg*|;@wXiR2>%)(usg~F+(eL%1_YF3 zlh?OcX1`^JCunDetBhN#YF>VBNqg-T%`l^qILC$vRgE_XQt1Z-u^`20PB0KN>TR5& z;$_PUk3bis=6oyh9C*QfZ=z5Pijq4WQ*r)KxHc#!G$Zh-(9&X3mq*y_e9YJjF#Fs8O#FrqgbGH|{rX zEA_#2U7`Za9UZVa_q3k>#9Ly+Rt}aM(l`jB@R!^HC~tx0n)nM!Q+-U8)#q*lx*K$= zdeCmqiu(XKh8i8}Q|tskxoY8tholfyJcM(%OEc+`wRNAJxL^2mTxNMs%lyuQ-7Pl3 zG7F?-S@4>DlMt?J`z?ief*!m!QIe5~wN$Td@vchjXphFR z{O{ll%aahO9-|)>0-&CNR)kQ6UA7QHNPIkIk!SP8El#4yT{IY6I|R_3gqwXSZmU_= z?rjDf+wQ;Nar0jdGx}W9uPoIhOyNU^T-gGE&4~{2^cZmVse2?qv@- zXcR&4`3$@6YjH|}hPc-V1oBs@pU#&c423yu<8fS2nj;Odq7oJfuKLt9ff!k6kXnE#eHt(nRDxD;xtJXnO8 zHCCoRRWyB(MxZ|(ggeeZWs+i^e@pARPrQJ+{j}?-obzs&6W78#FqE)yIJ;IP(=^+l zpIIm89@@vx z3Zx+;Z_dzV9!ur5Mz|QsdPwBS!=jL(jlhq2=OYW7PI$eUu-<_NTSp&->=(GwGAfwO zU`-RMMj=EN7jj_L3|HYwhV9m!Fz5Yy42;9~`Y&$Fdui>S*`uo3`H#vep@aIjnXmNq zRQ{3JNZTRhg`5NL?4%YT$t?)~VMi&#A4K!2wfKdjUW9i<7yiC~S$Dx&g?0)gBt+s# zvtPe^Q@R2lo;ejYdJI=@cP(kJdlHwXUfH~EmN+TqoBybx0&LW(5ToUgXsEzN&1OPV z9bQ^0E(I?Kzyt}5>c4k!`|RVW zq4Km8!tVgsE%wSB8Py=*8vIrO#-_s?HoVTv-k6VEu7q!+UR#=~ZV1{eC$TV1E6%~J zBg#L8O*rELjly=TA6M!L(+uxQENm0wzc!aBslDupuO%u?uiPt!HA_u0vORQi(XyK1CNpT+z$9bWo z?m~XMMf@CIkn)DHv28k-o?5{RXN#FoJ0r2eJYe5SzbLBW$d`F?RApl004k0?-EAW=Dk7BtXzX)&`MW{3DD%17p z1=a>b6FFI^Jp%|*1MsWPTLa(A?90HKakMuI?q@c}eH~tq@_{{t{OdR&HqMegdYU4?{!L2Zv>9)e39o8>x%FPZbC( zj>Vh&2Oopu!_~&G5{Ej^HMiF_V-1N*YzgZ~RTbl%dyqic%(|n+XdvG@S9lc|>Q>Ck zK0(R?%tE1wP}Pa~f-_usoCd>%*HGSS>R@yFDbu8?)|Nv1nT>T3#^Tz_6x*;0=Y;q5EoaQ<2O{mPijYro9pLy zKI-V!ES%(fIZ|zKZ%Q*?{-^n}hn4h_8*;-+xTZfnq8=Hl)~|6sMVXXc6sMzW2?_ z!{n8Z$^`=j(nv+U{vf`TFzW|mw}6F$KDMcS<$|7}aQK>G#nAgbLCSR@8k%t&{vJ_~ z>fgo#SFUEENPVL=il_8?b=CO^+bD-ftVQbUm{uEuO^w=>#*Nd#2=qTfqe0{NLn%NYPQgSwSJTwTAxwQ6Ys!Hj<@+m@1Sni+QA&X_r#|^&ld4znqBPu8 zkyCLuv&S^y!%0E5u*q}S2UmHcCA$6{R*vxt#7_$gn5?ao7|?JtP~i6bIjuWoyAJ)n zIdBHU_dRNUk0?k@sjR^Hq2e(JVAA3()krPZozwkxQT%iK(c7Cp$pluo2&j4^+y*Vw zF*v2S6G0*Q@Q2qg?A}}qZ4@hiU)d)DS$qOLbvzGcxTVxL|+JkDX!-$xrPd;bweq@L~FwDz=5Xh2hdL4;RdlCIK5MJOhY~?yns<4 zsC|m<;6NP6H%-mCC(n%IjdAYfM=XIWVc@3-Uidoxh-2c&9t6q}Tahoz90QuGt@mZ3 z9HABS1#b8yH|=K&=f*ZpahkXgk4;Q>{3wuCFIyOjm2X5rDmn2zXbM%+)r1##U4vi% zs|HRcDYy^j*P?^cH>xP(%y=}|;o41WYp;ydgg%zsVJ5)%s}eoti?2m$gm098A5x(J z@Mnvr_f=rAR0tu;{nJyZHpZeJYW2_!l>$}k{O{m)Hl@Mewrb!5P=T+5&AHC$ZN+>!g|-Op8xpM zJaH7G+FhoCVt~%&F);t;j=F!0R2i3p(L(jB>Tb*t=Nl9ZC=_6v3p&C+^TOf%8q^&@ z-8%4j+pz#ID2($M|uo!b(}LqJ^u4b>yK(@kUCDd3pvi&1AF zRF#BiaOH**JytS2(U@gLCOqKY4B%egTP*CrGR4WWAM1}7tC4)_UG5gvlDMA8Q7Xkq zcr-4TYP}6*QGCHzH~xu0lhIs&l6l7t0|nNmsEXF(?lnO%b4*x&;`A&WQuk%iDF2jM z@;3;&uI|ggvw)aj?-6NuL5kuH5}5^fhI`5d-lT=>F)G6@47IE34Xn2u<6ac9zhhAs z%{#n&cX9iyg_yW2;Y&j>Xihb7^6S=B3%YNo0LyVMG<<%LIW1*Ph1r7lr8^AziP+FW zkScV0V^N=nHG=xon{DCl|` z)PGe8qx~dIx3!7Qj(Y+1@OzZiqISHM@$Mp&8SUg)bhM^Y&F?gr#`vux79Ce2Zgq9zu|4uo%Nji54r zmmP~1x_4lps$O`rVWGj4^%V~Trmnw-!y{}UBVW$cI%RyinL`jehIs~rvrGlX;Cb9{ zQ`L?SDlGa{l-p;<0rPip7?~|z48=giXV?zItcQEW`061Bfg}OuhHTip@?p*xpb#ZA zQEO+PXxq+xU>?*Oh>H#A+>cl_-}ueKC*Le)sEL6cyXG7u0)D#Ag}oJuvW*>zE#Je& z8}m0t%^p65nObP69`2(bRck}nvYkE251L8))cze-%<8uv1xL21sX~BF8UQJH6ho-u zsZ5xRoF84b?&SRmAAIF9uKAoN8VewZl#R=-@#XM}NzWh3M`)w01S!JAgw5MY6o!H% z7IV!m_FF6;=br*6+_NUQXo0Jh)fEc^1>#x$rV`;f-UXfB>CuB6`5`8cyAF?QzCT(a zHZ(bEU5kY#zh3|TR?wqbJ0*Y%xElQ$%jYvAQS})iOmFXy_~baMBleKam2NnDXB{&R z>=;KZC0}NP0bht}x@+dKI8OT@;tW+GW(V#QM+^d(^b*_6ds^prULAwRk*CnIsWV8P zs8YedQHJoZ2f-R_g(s=Ldl6eQ z`Czig{30&BSkp#)Lo^ z)*NFFU-*&p(=(0b_n4>c1}^4U!3j7R6{(=QiG3-?jvw&tF^q*ck|{e3_?yb9%FfML zOPhIu6DdcQi|dp*w^ij(yT9jHRuIEvhNWa0ih%(kYTe9Z;ZFWASlc8- zOQsN|BgPP;$M@ol{3S!n72|i@s}!o{BY4TDcMsIxDZF`Fkv)IRK{$pJsz4%D2A^HE zu=`i=t6Hd9`mw2A`?JZNRvVaU&%o(Fy5~Fj1^fh(;Sa|sChC%9_ta1F1-wFzIS0}+ z|2Gt}-a^#n6Yz`fsyz&Z=cIt96O5RmrxNgb^8_hhi%S28G@V&)u0|17b~^6r819nt-~d&OtEP({KC6B~V&sIj7XyQQJ? zCOE1uvQ_gK2)v)8`48rAEi^%hp!9wSv_>%YD)3JNyKjHW5rR$>;V=q`bF?8gMyRs^ z^KfFECeA`JnS25DG;kqJIU6S#BZx~8fPg!WcbV*4#$VrmlOXw8gnYr1M4oZ5jyY zUVu(vux;UdtST?JT(|+J6dQnf1mk^#P&o_YpuWoY(v&Owh-_+ygvJU&6~~1_)#~|A zz6*hBCCz`SgmWe|RrexHh>ribRw)GJoJdWnRYncxdsg&B_&rGXF>zi0^vY$*%z>DT`^; zKBI87`R-ZAv@KGs81}GyF_wv&M$);(Yfm}?a4dx8o#2!OeJB)OG9uYO%>^0fb;QP@ z6D>QQw}gud#4YEl?L5y;%qtUuTPTEvS7{w<22~IVpM8j zoEm#-)%@;dgl(6msCbaZJUTETsT_)VvmfDLYjCA~sd%l9-WPY|_G64uUiJohkRv#e%awCw_Fv!eVU?A!RqegJ*^*kVg z#I>Gl68@FgIP12hUc$m}udE+)f#vNFxG=zn^7DW#?D2zuvSO|%DNX*2f>g{Cnk>hD z8_e*XU=DD@cS87FK_kVt(c!bmr=wtij262MmD;7|_PXX!SnYsHShthnt|bE@Zf%U2 zfeUu~6-&JkW9VKzQ3CB>+*4EAx-}zQ#m&27yH39L3+&c_mSB`V?v1apHpJ;ajIZr$ zsc`b|_fE<>5k5LEdBRjqf)E4&YK(}^Lz?fOH5s3jstQfWbj&p?T&bVBq@(^^!cT#4 zEXQ!lmU=}p5K8#rO|QY%kmt+)#NTrM5(_dF5(6=hE+2Ky<8XIzUVv2r zAA!vIIyVfM^Pju4WA0S)2X4*^32QEOkxvnZPv2I1Aj*A-u?zvsm-`S7UbkJ;Viw40y7q3)@#vSbAp;ys# z^Eb!wli9}*1Jk1J>2;j2y@My6DHH_(2Zi*+cCZ9Z`9{;ax|8VoA?9t6%JL{9PLb1M z(oxp{P5M&YNooVOF%#$)H;eFh7Lv7k7P{#e4f+z8?M^(_m!f8_7XONAZ^9QbEna<@?Bo`jve z!`&4)`O|zZ9Ch)lRPY3CN9+#K7cfvK#;D+c9d$V|GSV?nmGAS|OCsi%nsRQ3b_HRm z1VPFPkEF^FEcj8pL40-Ww%uEjPb3Bkhk-W5J-xoOCVU_KBHx6+D>ueDYo$dhq%E#b!tv20~7 zf;3J52njmsBGBYxgs0pcbp^43pyUxA8z)WnV{lVXFjQhRS5dg4KvlxzAGhzV(BH*I zWD9*3vzDTm5i)Nf1sLpv?Dq+eMqBbU%uAOx%;_3WcnDm0v zEgLa?beuAJv#+P}ZsM&Jhc${kKC=39#ehdw+D?7A4?564gm^C`E+-8Lu8vJCwZk)) zbktqXIz-r+5^Ms=uSh=y+@^UKc-1rur+T5*9Z}v0*w3;kHe$zoUx2>JRnI}9q=ZZ& z8AL+ft+P6847)v)4|c-<84!2ZWZp34tGWNMxx4A4Ju3Y?|NcL(w1h6ZL z3bJmd9G)1RmNZijG~Qf4iNX|xoMN`>3sF4!ZQEMA7fqjxC>K=i0ufBiGYj6(w&>wL zAv~9OJ?#QUe%mWB;Gf=elk9joupIRe^JH(hO$P+ru@X)=-6hDoD;Gu;CDd!U+&! zPpqg3eZMjheztjS{l`f#_>cYNc#Yml@EkEu7zl^L`vcS|LRFr+_t|xJD1KJ#MUyQ5W3D7xgpm^V=6|OeE z1-f>XpmAuU;2L7AX>MeAz@zczxs?#y?uP)k0BzGHA$`Lipcmy|WK`nsn__^cI5iA~ zP;a>Ps5L~-=4qR=X9wkv&w@bcF=i24sCjMer*SXE^Pwsun&>f8V1_)3mp*POIKzfg zefD2}i|?#Ep2Wi! z!bBglZ#L_kZ+Cj}U>rM&U7mX%U-klt8@o+W-duTp=T7v8v#9vvfE{tF-{u@RMm4mj zmaeTklN$rJ%{eaM$QlE~WJEv65Qux$OW_um3qFpc)h0G^C2_Xs$f3p#C=3aYN_uE1Un->?3 z$>|wO@ts1q@W^%4MMea6k(6S>KML9@=N`5{@V*qlsvXy%^Oqo zYrOE2v5mMGvq_jTLXa~1-7A@*2!b0|JRgQ^D##~~D@>VsNSgxj|6btgr)p%3Gp?h31}3u~HHSr=J6*7aZ|Ob$>P{-O|afS8dLL0~e0C5YUI0!t#2 zOp-aetLp#xzN(sZCUbQ6Ts`5vq^G;9U%h(o`>yZ%{eJKFECK_DfEK~(^UG#8{F*W8 zE(raZ?c2=wUv8V$K#`J~k44yr+qdQauyD=v&(zOsxKo*yH2!Ki#-@#DB`fKxAI5#q zjB##bUVTvgxb2aiEqm?a$<7Az@4mQICn_87Y2IY`J*0*BQi-^d2;HF-)%`LJZL=ZAJqlA&{H z?6|T};ycpn*V0)Hk0o2Y5>i$4AXV@*4RG=SlaMI- z-wimHJOc72!_7YXZb4Gf$1uEKA8L6u@*1k3wkvfsesSEIap^1Cwru_=-p0S`)r?x3a+W52V>l$3tsgCi7=4)l$o(V6aym6E+__eDU2gFZT#1@xWp%3P~|CJ&Kl-%Ow7K2QBnW0oZ9 z*xBAeA6(;l;We(?d>=iovwau#!&jbaG39&v;p4(a9$brhTbw|BP-7et;n5wN!VB7+ z;7j!FgS2B8Uw2x_44OKR4DBpV;9RG?sflXAEb`zz%^m{q}<>g@|QB+hS z<#5ByoT@S2z7VJmR614o75d-hXE#5px=cuUMb)bzfKG71%J+V%;!=gg<-f6)m=B36P1?d>uY8J-`>y+IrR@xdtqKro$!2C>+e7!>re-bPi2tH zg0#&?wkUg5o@}FDWz)tYUCTM{L zSkNg^ACsEN!f__)Kg@LgQf-{xnHiRIcQa% z`fV+Plm^(hS}+sp+y;CUMZ3R7jequwSU`Q5iJ{s^9MHx9Rd=kugE&>hc@p>5C*!1X z<8YHG)mU76g^f+TsLzcS4l!8s? z8itSr=Dqt588iOr?5Pd;o(3u5Quy0NE2m8kQr@{_ z@1Hno=bbT$Ds7MoodD9ELPGf4<#p?x$!48sXX3zDg4RdEuJ`VY%FIVP#jZZuhqoVF zyuU!+z5r2t9*J8sW!(UFFS1no3rjVQw+LxP?j+Ja0Emx)7EX1m+yk^VTvAV|D`<0& zv;iPd!US*9s3B3``hSbf$JS(_Gw^WP6h}M)gDjCs2z>R6-j~`A$j`wq)S;XZA#;J! z#(=Is#}aj18sVfCt^cUh37mp)g0u$^qvs)3Ptp;dqrd&17dqQQ4@V+lfK9Xe4m$T? z4DUx(Re5`v@jdB-k*Ps<^HtZU7dK9Hy-VNY0frIU-~Z(ak-cK?qfK|I49c~lh!pJD zWcr1giN86ZZOgN)CJ%vumaE?LbesvG9QpA(XYA#=O`F83_$Qcl`yc|PLTbgKNs~tV zkowz2hpHhb>Y^UzqZ}%SDpU@?4PF0?C9@yf788`=QRl_Ar7~rao-DX~>Pe}T zdomqVZKKMl_uSxiMN7zdd`rc=ncZtyw2+x_yVLHrA=MZo`|>jSry*1-SnO#&Or^a& z*a&bAnx=E8+Ym$c=P>qsg2aDMbAR3myw?~L-gMGl8;cY#@Ka-5FL)ax&Ee$Z1UlV` zNcYB@)n1u466$FjDZ?LkvGNxA`D%;?Azc`lpl9HffuWZ(9%;LMNUM!>%40J^(3X=K z5-z7Q-a!zngShh?jkLxICV3O6imi90Ec-A>Sm@^rX^mChWz<&p<(4yB4*AaAxO7(Y z?X^q6F0FwrYc@zjF&$PM=4gc!0$PXUCYiav&N#Ui#Tp0XfUH zMUrdOeg|R)5ntbS{aYVb`N~r zJwqXZQVDUa`F@(wS6B_4A_-mWTr+JN<*pEzy<^oA@L0Y%cN>HJTt%srfqrAM^D^-M zF*VAQv2UI>Qk84>A6;7asBy$8;<#(ED&Pu(6kuG=Xd8a(p4V zr`WM8Nv8LAgr`Wks@hxfj~_I1&ZUmiJQ!H@o(KEu$U=azgMXdvbTBgC2$44$huKXJ zGG}}aqW?|W=s+8CcbYQ9{m^hGl?UEp`komhqXKHjFuv@f#Za+jRv-4{0nZP&v)1|} z$A%q_lTMi(6ptUbD>hl$&T}K|SV(WRFV&siwX5ZsGro>U5R}W3;#s<6A2&geD?Nyvtxw_ zbkm=jV-=t{y~Qu~H`C`?t?>>!Lde2yKO|GW?0F#0c_ene>K@{0Uinr(kXl#2ORB}7 zW9*yAS<(G;r@XnYuXEzK|6jE=+0?_p4?L*COtXEFX8tjazyysAB}%t>^)j0PU7Ub0|+8gU2=GKos?h29d46?6va&$`~r7f-* zTOvzKXS1Fz0Zhrc7^EAD&WMOW7W;~u>YCOCe(+no77NVMfQSpBijYw+fY#{};`6f7 ziIc0iH{leMhfriEizIWw-N&DVx9p#%(&^u6+q@=K25yyGV$q)JA;*?(vsz$+y_jQP zzNnRf(yufL4{H0Xwe6K!#ikiYhFi1|Jv2mWSd5!XXcdVq!izQI|Fdm#{t0}bRC9ZK z2}$%FHCjt)^w=>-8M0vNUiB|`26|6OgGfX<16Gn3dAgU;^nJ9On@qbI4B`#fL&>jt zpR}~DX)ViwPtd-V2QHaclAlU_$3=(Bu0kp(bk4Zt%x1IuwbJ_6P=TjPv!O@?hLC6{ zj*OSoHGiUYbACnj_;eM$YmmrPk>xKwTF0mf=`{KN_R^V6OXz53QxCV7Hok#(q}g*{ z*P}Z%A;sro&|>y9fp`DFQ)*3o2Asw5SzqP$yHt+DY*__PTexcK2|UbrQ1AYsBjhUM zu%u6VL39Ghp*d|{P6DxmTANCTzsZbA&yj9eQU`HsO{zVVPPpcnkTMX?SI~OATa%&4 znOdIG@8P~7y{!Cb!db9-#+j@z>Lf)`{+PhkMeeMhwf+TTKUE?5?GYS0Xd+odA~75P zLC-Q!Riknf&LffJ`}9wowEC@X7%Wh^&ubVINsfV3bq<6^1+lbl{g2wW=D!SnYTLrD z+%dwWJ(z#Um?TkY95X;;!_(_$uX|7qK8MYP$Y2)MraiI|po3)*`Kl00>(-skf^Q9` z9@@btpLZ48$CN)LXjQG7bGMN1e=vs_htAt&&Z1tY@)R3XNG&ya$Be*nYW1f=LP-Tl zR_l)ysC5j1B4#8aRk6DZQY*PkL`W0zEAv6-sGDc4f7p0%7CEbwPD9y67S*}w z68~XjYf))jdE-TG`@`-ESE<)T2vwJoNW30ynSvViyQylNOH}K~Wk)s%<+k&oF0#lA z8Al8n1m}v(Mud0p3E>YfZ8Gg)Xc*>G9 zn(s9vN}kut2rM2n&i5;zw&-^n{mB61)UZCk*u4A0j8n1s>?vNk^_-U`y)`LI{ZK*Jbek3Bu@(&U5+0g>m3KL! zoWFYN9Go)V>UN}_Mw)ajhQ3EgeJ5L(h)X+~Sh^1pLCP_4bKbn`FcEzbqw+Ivp8dNm z!rUCK(fysna#apQ_2B2%O#fGQ93BBt%+bnSY;scU0$Eo-bNxLm9o&(mB1y>9s@c!9 zBLTcD%=@)SP9K+ZMkGAyE75+_VL`m8hsxJm3bi{<@%;JAX02Z-LshlUqVDczBz4|w zJlKQZRUIw4FX5^Kko-i#=`bDAYdW8 zKBEVen%QWAaJH3t-$2IqJ6x5ay?%?ZS;5RVv1Cg2vPh<`qb;Z06rSv&1z%a|4)9H8gN=j% zZJTpHSTbwf#}fkRrNZMiKG6b7<_*AS>Yp8j&nUl%-SzZ zkNNBJgGi(~+YGfVr0+_0mWcwVwTVEI5Ee(@(JfgWJ21k6A%2ub^?lPB&A&z*eJu7~ zm!tmqvmsRMwxCENjg=#zib!~eNVwqkw}#co=e|OXZxlv^QlBq>ZVqzL=XG;!nI}DDS*&Po z;OQyHhl0t~!!Vf-=P1mPY);$h>F5((tc!p3j=;?>z zgXS15(sOV|L!^eX{`<;i$wZ0@49p}m^Wm47QkLM&S*Vn^+6?iyyp2t1o_mGVVVaz? zG28Ad(kg;53smLuNF|%J&sc7C($f=Edz*;ZvM$znTVoDQeDrWg{f} zC#KkFw^h$Z! zQ#ri&56YwRWAZ$-850gZiyY2-ck%n~Z&4lh*CwiS!QeW-jCU}W(r2~! z&;;>X5c&@amc+1lC?QJ90EPOccH9z*E(7%$LM%iQHf?vE-|6PAWzYgN%h?_*@(S*e zPFpgw={hZ_RPUPGrFnuZ)QU_JN?T+jb&31dOX+8Wmz4k*Pz99{N+wb!+cA@70dk!V z_M|vvOQqQHqf^#LqYnF~NxQMOygc;>Pl%JLa7{i`x;nkcLNXD}yJz}Q^ViJy3~mcn zRAs`a$?wk)r(VS1q2noh`TAj{q}HLvk>+JaBHnurS{*YkXi_GP$2dymy-Ye+sDqde zTkZo9IQQudw%j+fDK^of_sd#1FVkYY$DznU^^}Mi}JkSnZ*>p_^T8>(B z*1D#lROj`8t7#+ZKgtW|)jj%B_4s3u0)10?h0v&Nh-8~G^pHk>FVhrBpTQjygtS!7 zEOLGxxcMX5UHEPKnI>YhDCqBl5-EM)`2Q`p7NnQq+59gm z@kyI0(AbU|jQXE5v*1%7Tl#^fmzK<2 zH`41QPQpILGz~O z=dWogr%`#w(f|y;qBgI74l5$mP3w=@l@NYn1bU0W9iywe(}fXLH1j^uddfD5`uSI>iO* zo--A_e7nB^Tccy+w!2f^Ymt)lv5QvEm`-7?p}owM8jMx6o};lN=}To}1=hmc*k`av z5y_R^edA+g&$9L;nb`Kkp4i-Rc5G{6O>7%Gwrxz3iEY~xYhv5F`JHp#bMN2qu5as0 zb+7KOr|PMy)#a$6=VP?hs;|l6xL$qBgn0RuButal8@t8jdsojGou2x{1JxL*Pr`+_ z+S*$RnbUV)&TJ7KG-~Ts5&o{~l~S2F&Ew(_Jb{WMF;qg4|4gMM;1 z>LU6q=j3{m3D1K2VXyK##uk@wI$S;ZrvtrX+!Wf#hZv?mRw=Ckf0Y~kVS80+U{`~! ztgL$fBu|CtT|O)r&AnJOvM3Rky-k0=HXb;m=;A-HC=m$Z4t>_(J715G98>3(0>9+W6V#a^(#$w^>{gZo>MC9C^+1??xxU7bvM4gVG zP~(J~aE?pq5F=bcn#RY;S#1Z$l(!}M6|ID} z+2KeZ@JvNvL~fYbr=}Gzf~~!ab@daPcH-u;`wfv&M^>wt)jVL)lKgOZ=dtGI_e40o zv}P%DiwQT0uC*i*ABoB}>z#53!}}gAbO8fT2DRhkyA8|;&e@%jiMbwv@iDe(zybde zu_$(sZb19PEXIC z5*h*syeTz|w#)fOO^z2b{E9o=l@h{ORJZ{M#xgnvjhU6gBs^~*a3j%tDcc{9%#%2% zV|XgqmUzzxqop+;eBXiyJD(*d@cJIlnsK2Fer%*X{*=6THm;1v4;e?y5|~@`v}q6R z@MA(0D@7Y6Y-XWFVsE#?OyKO8#>wK@lViFwg7D0U%? z;Ik%V_Kv(lv{u27@M~+n;oUNL)}Wu_JUAHKQDBLg(r0%DbKI<9@!m$IxIwy3jVH7F zwpsdJEk3X18r`TgrYO|dgwuARzB&>wrzISzXpo#;pIfLr4}*M1wTXwl<9$9!( zXiPkUkgwxxc}<6wAj*!XOh z7T|<3AQb~Wm)NvYc?J#c9Tb_<$s(fcsMF8;eUGUBnhVx5+=-z|cyn+aA)`Ja3;Z(2 z8E@!Q-DKyUZsNFl63X8cy8ES}w|HBgE&K6M7|(!R(EIxE+>(1nX8*)X-Lq&pSTtn$ zR@qryo_rTR8ak1R?iAG2YTZM10%(7i6%o`3x=nvqc-0Wbt?xE&?0RQp-#TTXbJWfm&hg!MAv>NM(sTLy z)61ttS5YlPpoZ|YRj#e+GJhTmZpo%J#Mg!>2 zl51OBVeKJGWx9vIT#`Ne;(Y|Ba=o%Hvf~Lm6h<{x5|h?{U^DG9cPO@oQG4U1HR|uh5GUZc*2D@qlapr?@vqucj;lFLZyhW^!^eUH95`PXjJRF^-B8b z$8+82ff3-4^50ta!B(IkK6Z$~6G&>@74ZIyM}`u|sq47}{|wIn(D75R4*WqCdDZ2EA%N;dLo=eQ4*{znIsp% zMkfTAE{K~+i3QP=Z|a_#$zqJoGB9zYCIf(TzI&QKkn~y)#a<7n!`FS_l-u~Ynq?(o z=LLhmm|+cNEu9)dZ*`nWN56mQdwo)f)~f9UoGIV6gA}(7Ci@^2ZeGQQx7@8%^mKr^U_7eQ0Q20gpCS)_W7p zS4`K3>HcG6O(t#`xCXns$Q#Ab^|k23XwkVnQ~lf##czX)w!N2t+Mh1|x`71migj{^ zu^SWpMNse8`mz9=bC$pmFH-BjUpbv(49wQtG~cWih)pM$ImPQGA+`^|YK=%NlJNJl zl4I!Aly3_z&2B4f>A82}UhcGG5aj`C3e&kor^fz~s*Axtn!YC^l}4JP6;c{gXKX91 z5s|I%1JV-dN^wN8F&hB5y??Hace)!(Ais2F#3FF5eA|%F*{<-!gPx9ND67k(R8rjT zfob<3%?l?3Sr2Wzrye1OVg$R4 zuvH!WgS!n>Wx}?cNHewri9M0%>KPu9CXy7!(T)1>LWee2+Nt3qLth%7dh1`FG~3!< z#(jN{H6JJ=5SLAC?kHtIz?eGvtVzDRf;ry@Us@40Baxqtv$|J%nvcFdI8fv#(;OvGo{X{3^lP7ril&=C8!Zq*%Ed(RPiu^X-_b|c3$ z2@VDmGhA)_*(T$j#A0*A5}|lhCJJCiFrit>KzedCs^JwuoG%fxaZKQfqm!R@&vleF zYM&iue!_sK+2H7C#!@P&dYmfDFeN}`I#|@C;yZJXsp2|)JS{jZn8{fp2b9-!EWl>( z@3vBbxzeucv!9lb3DM=Reo+fDw7C_oD@1(!zL1vUb@RO@L`%iy=vy_-jq z*PY}Edv>U0y*d?dK*+@w*g|B7vPW18Ou0dyB76tc$H=_bU#*G!StHuN8kMuf2;i#` zO|qrD|0pC1-GpiqV8?ErS0$xC(gSiRWthIV3-z&2ckd}AYx}Yxk(Y8xkb{Xs{$NzoU zOVexnqYd#mxKEPu9U`Rx*_$skLVNRCChu<8^ zGzIA|brn9mI7=?yt-7kZhADfa+;!o)a=a6Xx3CiWJDm1NQ6>Euz-)0_ZJjM1MrHPi zf+NdwDiXHf)s8!)+sweOyj8(IGEs_1kezC0AUgTA#Qyy;Q25%!r^z>5EcbWJDO)UN zhM@0XRkXO{JOWcUY$o*r7VY}s({bsLU6P@SP`;HhEPpUD;xuJO9eyMIUqj~xi+?c? z8Ypmnn6f(wH%ez?U3_1=JIzRCsIJUezAYSq2_l0BeL8*(R#oiZlGdtgWu~jyCV(Rd zqLQ^0SFPiRx0pX8C1+^~4qUt~k=2{I8L=608ugov?^`nxuF69X`&?Rn^*X1l8k1&q zS+4A5e%uhDM7-lhMnh5wkEMnHBo;Y!Ys0IY2BkLvmVGC4@XwBfzaYIjb{F0*T z=W%2rh-d0`)~r+oai1u>aN_Opb9@@xZPr;82jgb%NGxUls`m3{G1LSr`8dHa>s*O9 znsy-`1n5+nfm$Cagt3-_MD4yJlwLB?a`97 zzUD(bC0eRoq2HYbEDYs&+}d=X^?HuP;OO}V;fz4lQ!W3rbNUXNnbSc~JsW;wKf?dT@&;m(8rVJL-_%YRVEoT&F@v&$rcRtDHmgi$I#wUx$ zqra_fPD@Ujw{qPE^2`|T`eA(VBi9tXA-TkSCh`9i;KxIojM$QS9Eyu(EW5p!U2BVV zMhHr#oN?^g*rhwbU+@^@5bx=a360$Z@F9_i=DXY>Vhu|mlb1&!f~Az|;74=ZDa47@ zr`5t}eEkki1`8$`U)!v;d>Yl}F&}grm#Gd7a;Rvd2{h&1c}?VICRH&~I;g2T=OY(B ziBtFtaLqTFO@MdRIOb)b&=pZRP^1t~E}$?JcI@M(t0tf*V_D};b9JGvmTLL179yw< zM(rvqVppYm5L-r!jU1R{-W%+jCvd)Lm~PDsW^mU{tBd86XO^;&-4vQbh!-a2-j<;l zZr;q^*iYXVX1GX<=|gUblT*1LS6yU{;}K!b1H>h!aoQy+u8Y)Io`OVi0~R*nR_?B@ zFy}!aLQJR~2M_Z}F!Rmi&GgOlP5JC|!?BfgV{A|hJd2@d>FmXr+UWAk4^OX2rVrxY zhf%~Z10!(uhd<~NQMilu4|yjatjDePrWB}87s~@lkeDdMQP(Tl4mquR<9CdBlDqB@ z7b#|`B(*V3|5`nf7{7gVtnE*z!98i@g(qtuI`W*!0I%?K~&5k6Qy;~tF zhs>`->gG@w1|Oo%jo?6Eo6O4(Sl95~@2jSGC{r>KO+U3Z0%d*XUd~s{ z;daB=&h{A$IG^@ZcV=IlfA(FO|E<)~bzF>9HrpO=F_AW_)F0!rEa>If$6l;{! zDF-IQIHTq1J9UFLM?T)WhxjcB#NfX6Tv^l8=D!PFx$fN7uZh8vo3v%3z_~7C=!Cv6|WkYbG6f=jnKF?6CApeW^BhF7Ag6UkJ(ZdW`yL&T7X-uj~dg{y4fa%{t0g% z&oO(UjV|z!X&r73GMFtJvqy%b`}>AizBJZmm=9g$X9rwH`3^bWo_PTVg;oggQtZzDe&pt z9cj8~DsIj*Ljyw>kHbJjEU$~5dbU)aWn^;92Z*||cg3Zcm3y1XAhK?_aqdKyRc&ji znk)Sk2hLLcrHS#_5WE6qB5_?TWxmW_Yfi+7YsHM}{YF;l>9Lm>wtOK2Gqd&$?U;8u zEs_hUk#eXJ5e1RcQYvcOsQ~JHT%5$^oV9rqi#jw{_i!^lJ)j-pDB5xX@Yp7bJGLZuo|54>2qUQE875W$M#s zlK+TbQ?R6Cs@0S;ue_oDA(3rE0d1C{P^<4UYl$5`hU@hYmD8aVh`0p#10*cq@v%{z zD1?687^43ER8?^n@C40U+7BAepCD?u*U%)-Ws-C{BcTRda3vdUi`UbU_Zu5*fvRmUKbWdOi#S7y$i>bIQ$$)UZAU_93QLZE zSX<1mV}|3ydcHve4oECtw?E4tDeEFm>BMpt&`}vqE4F5@uj&K&o-&tjzQ`V6UtXz7 zAG_d0R5V2O$Q##IxVlqps(*-C6b`D>o$>S=HrNu|Qc zQ;urZzdh8|8AbAZt$-29ZT?nGDx-SYuqud2QZewsA!=E5+LwQmfJfJ9@2ZXGIrFKb zzhP9U!LM)ED%QJwa4mhmTG`%d=>||49Kcsj|f&F>>BtsXIaYZWd;cvciMrJj>Bp?voB;>s;=& z!}1ScXh|{~Oqoy!OCPwl2Vi8*O`>r5dwDF0Ftt%oZbUmzl?28v5^tybQS1C)NHMvV zDQ{lI#fAsT`O;t>C*?%nnDdx@h=!XwXJv4vinvC8A}S@U5jP<(A{n#p8ccWg_1plj z9dlEV9%N$jrP6vMjg%%)A`!nN1zrA?5WZ5@LCX1o8+Pam5-l^(-f;-rI)9+DLHCee zSv^+=YLi9??vW9@eoeQJ<$6VLtZ+=7D`&dh&>cw($s`D>fz#KNH<@io@O66L+5d7H zqKq#dc?4vuK{8yOMe<9PS!eg%tCubxEVd2WHC8}x;MUt95T}t;Fk*C%Etdtbb^~ZT z>}?_VT~wx?TVB^~4l9ERJK$z;4m{5#n7sfnGg#29Jm_w!2|&b)rJuovZhIu7z|mWb zXneDaE{uSxh&K5W2opQ#EAIZ8k)D&48H75b-kuQY3zEGpga_io9}nOqkKBY|o-1)- zLPlK2l*ANMdv=(mWEZimeEB5EW-_heKItN)?m}o4xlTr0-+b7jt%mHqN%u1SR9umL zHX{hm2HdC7JD4*2ZK4s{aHEuAK~u)R~6ija%s+hNVXp3$_C!9jFU(pX4+c_Zh|15`Eu8m)nT#u)MW2Ko{#P_8ghJ+2HV zbKpjO3MVviM;plf`S%rF^14|pk4)TU*d~(D^pGxoT$P~HBZRNLd?*6_kCf#@C-%_6 z6Rda9i~XJG3#m#g;>taCTfcI|m!&Hvu;^d7&3WSk-Xx)uu*#=e!MPwa@`3ZX-%__rael`@UG#>{OlL`& zD7Xrdf=7oMN$7R|dC#KsWj(wY)r3=CxvQIvKC90kI>jqGNiuiXu6p#(>XL|NXrr7P zY2n!!Ao>AR#9Is9Ru_&*EZ4zw3hAB7!XA710mPu~X&^w;EFs^0CK;<5xQ?%LRb>Hh zFs_QjjyicNw7+UdM5$esc-t{q4|-n2hlO@bQ4+*oBxNFiAvZ36pC2r7e_y^)|HfHK zmeZO!a$$6RP@=nNPKGwC_@qR8N|To14PyZ1DO2q&Z397CChu6k@}VHGQ$>Yudx?kC z{&F);Vp7M3pzp#VZN~Y*o8N9_0d+uklhw)kObvT`IIhvKNM*2vU1v+1S;*N`Zom}*gOo62hub?kaugb@^4MZbW zv}nwJeh|)=n?olJ1W4yYL7u?@RRjhT5dn4=2>|9g!q$2(d#8lL;z_M_$_M0V^BfyjZ(NH(LbVw><~O`IN)E#d3t(P=LC}B-!|9y zUTOg4HBQjGy%|Wq%DN7NIaC5liYqep4Mgd~*$TfZB(-Ni&n?w}Mu|=LUb~%%RNTqX z7Jg7Dwz==Io=P3#)=D2XHN$e(6tKsJ8nQOuDc<^Z)O{;Is3c%?3UgVRu08|%4jo4;MF{5u|%Y9<-*2W?;R<4ICpC_ah1*(YFd@D z55)@>f(nUw!m{RD z?TM~nMqLJaoZf!=5Y`&&@EEDs*gujaz?^YNmr2`$CVlt3HYaWARYorQ{v|PKII(y3 zL7Z>7_!16bV*=mB6jWhO?apoG3D|8M&$A-T_^(5&xYPcrz;dBq>oyql+yRs?_H>+d z+$@jBAT?x#3hpOZsBGNe?a(^u;hoYtk#Jx<|OJKiDaJ8Mm$YjG%vBKxHlR`(6%{UK(Bigc5ycXjLh03)=y-pk(TlUoD^^h$m z@PK;{@`jIkchfIsUFT})U*`b9!CMQSyEne>hO__IHz97P4I5Yh3;B7d5;VOHpjz-EBU8+!f zu%aLyrYD=vqlM)^Dk9h~#Sl_o&=_}0VOEEvBDeR=Y;;#E!Nr=sAC?&tVLa>?)G=;S zw%h;;4OkIe%x0iFT}f7N$Oq95qmlkR%$9He@G*X1PqyES^H6wK=!rvDG;=sb_%X5AJT^%8O+hX;H4;2S zo}B}c{Lk+h{zF#&aSE{f^HEDRNQ=;b3seQ%+^4NS_B;nmI--3aST;)Pqvp5}>yJCn zX|)XhwA=Rq@J_bq-^p;Gd|Z~ti#KU%8?26ySUe~GMScE}wnw5cBT7r7l;?EZ%dWhc z0oQS|&_z{vuDWg1z7)is=pPp-23n|JNiDlzhe62|tbW}^A3+D^mjp-0M5m;WJU|Nc%e@gMytWrb@F2~2yS5R?Xe;)2_I+3lj( zUsH>b@`SOrDFwd;T~uk+V}`WJEus!x3CB*i-}=PB*(vwxEzAmb)^>w?*zfB8bmi7! zN?qTsL;WW*^UnZKSpKLIh4Fu})A1d*4DEr;U zb(8p(;3dTEMj>Bf_1oX_s_EJpgx~LE}M= zM3g%jq;`9I)sd<$hQAb&2S?l~(f^${rhlAlA)2`hh00`aTd|z8(uOe1uzTiW6XWhE z2-$G2kQgWldGW~lBy!!)t1}|G15`$%mdtT-xaT+iC_e6J=e6PL9C0IS`buj7bHD!I zlOPh&eJ)f8$5bIktL)Y})y{r_w-d5)L@@HGm_H$!&nj7>Hr7MM`yTl$-!#-O<%R%F zNiZKNjE20+w>ID`L<{NefGXfz|ERRbFDhpX&;Q{Pedwn5r26|SZEw$e!@u_wETY?v zgo&Wg063bS`JtS9@5rFZZxT zNmulyaR8~c6fl}4VM>a2;Iq4D`KTjbZNAs;YM`vn2jP{vr{3@4_sBbWy8M989+=1D zh06G1zY`1pUli$|bA^BoP72rNDtM+IL6`(bGn6f9K+&>N?R|r>R*(aO&y8z8?KE!= zZ7lB2j)LFk^!t~?E@oz6!kz91Id}Y0DK$8Hpw%#rg=c&aiM2zb0QscBCLxDTC;IcG z)gc}cl`V2}-i_7dhD|xZ`7J|I&%KfRVSEKZ5w_&|-yKwe0&fGv(e~pCvn-~aSpQ^0 z%aT(v$-i8E#bmvAWu2_KEHdJX-v^dX8sN~JOn;<3%WOByr z5qK&q&T(s)Va<#0^er?07bTc}!n7xW<{5HNes&>BOgWbfLxJ=c9SY%STfnH;K=qPS zsqHnWe}hKtP_jj?IsSzN|DHNi7>ow#0(Ns)Lan-pBNq2$NJvW+LWfn`+8mDW#rd-_ zxycI{eS<;REzrfQ8WJ7sx`*&_T}@D6q6IJ68;hJ EKXNh$1^@s6 literal 0 HcmV?d00001 diff --git a/spring-ai-core/pom.xml b/spring-ai-core/pom.xml index bf7da5411..6f7090d86 100644 --- a/spring-ai-core/pom.xml +++ b/spring-ai-core/pom.xml @@ -38,23 +38,16 @@ ${antlr.version} - io.projectreactor reactor-core - org.springframework spring-messaging - - org.springframework.boot - spring-boot-starter-json - - com.knuddels jtokkit diff --git a/spring-ai-core/src/main/java/org/springframework/ai/embedding/Embedding.java b/spring-ai-core/src/main/java/org/springframework/ai/embedding/Embedding.java index add3533b0..01721d6bf 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/embedding/Embedding.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/embedding/Embedding.java @@ -3,21 +3,35 @@ package org.springframework.ai.embedding; import java.util.List; import java.util.Objects; +/** + * Represents a single embedding vector. + */ public class Embedding { private List embedding; private Integer index; + /** + * Creates a new {@link Embedding} instance. + * @param embedding the embedding vector values. + * @param index the embedding index in a list of embeddings. + */ public Embedding(List embedding, Integer index) { this.embedding = embedding; this.index = index; } + /** + * @return Get the embedding vector values. + */ public List getEmbedding() { return embedding; } + /** + * @return Get the embedding index in a list of embeddings. + */ public Integer getIndex() { return index; } diff --git a/spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingResponse.java b/spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingResponse.java index 6178357f4..a9fb69c28 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingResponse.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/embedding/EmbeddingResponse.java @@ -5,21 +5,49 @@ import java.util.List; import java.util.Map; import java.util.Objects; +/** + * Embedding response object. + */ public class EmbeddingResponse { + /** + * Embedding data. + */ private List data; + /** + * Embedding metadata. + */ private Map metadata = new HashMap<>(); + /** + * Creates a new {@link EmbeddingResponse} instance with empty metadata. + * @param data the embedding data. + */ + public EmbeddingResponse(List data) { + this(data, new HashMap<>()); + } + + /** + * Creates a new {@link EmbeddingResponse} instance. + * @param data the embedding data. + * @param metadata the embedding metadata. + */ public EmbeddingResponse(List data, Map metadata) { this.data = data; this.metadata = metadata; } + /** + * @return Get the embedding data. + */ public List getData() { return data; } + /** + * @return Get the embedding metadata. + */ public Map getMetadata() { return metadata; } diff --git a/spring-ai-core/src/main/java/org/springframework/ai/parser/BeanOutputParser.java b/spring-ai-core/src/main/java/org/springframework/ai/parser/BeanOutputParser.java index 5364aa0d2..718153a54 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/parser/BeanOutputParser.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/parser/BeanOutputParser.java @@ -48,7 +48,7 @@ public class BeanOutputParser implements OutputParser { /** The Java class representing the target type. */ @SuppressWarnings({ "FieldMayBeFinal", "rawtypes" }) - private Class clazz; + private Class clazz; /** The object mapper used for deserialization and other JSON operations. */ @SuppressWarnings("FieldMayBeFinal") @@ -95,7 +95,6 @@ public class BeanOutputParser implements OutputParser { */ public T parse(String text) { try { - // noinspection unchecked return (T) this.objectMapper.readValue(text, this.clazz); } catch (JsonProcessingException e) { diff --git a/spring-ai-core/src/main/java/org/springframework/ai/prompt/messages/AbstractMessage.java b/spring-ai-core/src/main/java/org/springframework/ai/prompt/messages/AbstractMessage.java index 68ec99df0..9f4c123ec 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/prompt/messages/AbstractMessage.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/prompt/messages/AbstractMessage.java @@ -81,11 +81,6 @@ public abstract class AbstractMessage implements Message { return this.messageType; } - @Override - public String getMessageTypeValue() { - return this.messageType.getValue(); - } - @Override public int hashCode() { final int prime = 31; diff --git a/spring-ai-core/src/main/java/org/springframework/ai/prompt/messages/Message.java b/spring-ai-core/src/main/java/org/springframework/ai/prompt/messages/Message.java index 190cd9642..a405eb10b 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/prompt/messages/Message.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/prompt/messages/Message.java @@ -26,6 +26,4 @@ public interface Message { MessageType getMessageType(); - String getMessageTypeValue(); - } diff --git a/spring-ai-huggingface/pom.xml b/spring-ai-huggingface/pom.xml index 582524846..b8c13239e 100644 --- a/spring-ai-huggingface/pom.xml +++ b/spring-ai-huggingface/pom.xml @@ -42,6 +42,11 @@ + + org.springframework + spring-web + + org.springframework spring-context-support diff --git a/spring-ai-openai/pom.xml b/spring-ai-openai/pom.xml index 7aeaa0c52..edf232627 100644 --- a/spring-ai-openai/pom.xml +++ b/spring-ai-openai/pom.xml @@ -55,7 +55,11 @@ ${victools.version} - + + org.springframework + spring-webflux + + org.springframework spring-context-support @@ -64,12 +68,6 @@ org.springframework.boot spring-boot-starter-logging - - org.springframework - spring-webflux - ${spring-framework.version} - - diff --git a/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientIT.java b/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientIT.java index 5baf05229..277ce7c17 100644 --- a/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientIT.java +++ b/spring-ai-openai/src/test/java/org/springframework/ai/openai/client/OpenAiClientIT.java @@ -36,14 +36,14 @@ class OpenAiClientIT extends AbstractIT { @Test void roleTest() { - String request = "Tell me about 3 famous pirates from the Golden Age of Piracy and why they did."; - String name = "Bob"; - String voice = "pirate"; - UserMessage userMessage = new UserMessage(request); + UserMessage userMessage = new UserMessage( + "Tell me about 3 famous pirates from the Golden Age of Piracy and why they did."); SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource); - Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", name, "voice", voice)); + Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", "Bob", "voice", "pirate")); Prompt prompt = new Prompt(List.of(userMessage, systemMessage)); AiResponse response = openAiClient.generate(prompt); + assertThat(response.getGenerations()).hasSize(1); + assertThat(response.getGenerations().get(0).getContent()).contains("Blackbeard"); // needs fine tuning... evaluateQuestionAndAnswer(request, response, false); } diff --git a/spring-ai-spring-boot-autoconfigure/pom.xml b/spring-ai-spring-boot-autoconfigure/pom.xml index 3828d25cd..b7569b1c4 100644 --- a/spring-ai-spring-boot-autoconfigure/pom.xml +++ b/spring-ai-spring-boot-autoconfigure/pom.xml @@ -156,6 +156,13 @@ true + + + org.springframework.ai + spring-ai-bedrock + ${project.parent.version} + true + org.springframework.boot diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/NativeHints.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/NativeHints.java index e4cff74d3..0dcbb4311 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/NativeHints.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/NativeHints.java @@ -3,6 +3,14 @@ package org.springframework.ai.autoconfigure; import com.fasterxml.jackson.annotation.JsonInclude; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi; +import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi; +import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi; +import org.springframework.ai.bedrock.titan.api.TitanEmbeddingBedrockApi; import org.springframework.ai.openai.api.OpenAiApi; import org.springframework.ai.vertex.api.VertexAiApi; import org.springframework.aot.hint.MemberCategory; @@ -31,7 +39,8 @@ public class NativeHints implements RuntimeHintsRegistrar { @Override public void registerHints(RuntimeHints hints, ClassLoader classLoader) { - for (var h : Set.of(new VertexAiHints(), new OpenAiHints(), new PdfReaderHints(), new KnuddelsHints())) + for (var h : Set.of(new BedrockAiHints(), new VertexAiHints(), new OpenAiHints(), new PdfReaderHints(), + new KnuddelsHints())) h.registerHints(hints, classLoader); hints.resources().registerResource(new ClassPathResource("embedding/embedding-model-dimensions.properties")); @@ -62,6 +71,29 @@ public class NativeHints implements RuntimeHintsRegistrar { } + static class BedrockAiHints implements RuntimeHintsRegistrar { + + @Override + public void registerHints(RuntimeHints hints, ClassLoader classLoader) { + var mcs = MemberCategory.values(); + for (var tr : findJsonAnnotatedClasses(Ai21Jurassic2ChatBedrockApi.class)) + hints.reflection().registerType(tr, mcs); + for (var tr : findJsonAnnotatedClasses(CohereChatBedrockApi.class)) + hints.reflection().registerType(tr, mcs); + for (var tr : findJsonAnnotatedClasses(CohereEmbeddingBedrockApi.class)) + hints.reflection().registerType(tr, mcs); + for (var tr : findJsonAnnotatedClasses(Llama2ChatBedrockApi.class)) + hints.reflection().registerType(tr, mcs); + for (var tr : findJsonAnnotatedClasses(TitanChatBedrockApi.class)) + hints.reflection().registerType(tr, mcs); + for (var tr : findJsonAnnotatedClasses(TitanEmbeddingBedrockApi.class)) + hints.reflection().registerType(tr, mcs); + for (var tr : findJsonAnnotatedClasses(AnthropicChatBedrockApi.class)) + hints.reflection().registerType(tr, mcs); + } + + } + static class OpenAiHints implements RuntimeHintsRegistrar { @Override diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/BedrockAwsConnectionConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/BedrockAwsConnectionConfiguration.java new file mode 100644 index 000000000..a1363c3f1 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/BedrockAwsConnectionConfiguration.java @@ -0,0 +1,49 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock; + +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; +import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.util.StringUtils; + +/** + * @author Christian Tzolov + */ +@Configuration +@EnableConfigurationProperties({ BedrockAwsConnectionProperties.class }) +public class BedrockAwsConnectionConfiguration { + + @Bean + @ConditionalOnMissingBean + public AwsCredentialsProvider credentialsProvider(BedrockAwsConnectionProperties properties) { + + if (StringUtils.hasText(properties.getAccessKey()) && StringUtils.hasText(properties.getSecretKey())) { + return StaticCredentialsProvider + .create(AwsBasicCredentials.create(properties.getAccessKey(), properties.getSecretKey())); + } + + return DefaultCredentialsProvider.create(); + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/BedrockAwsConnectionProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/BedrockAwsConnectionProperties.java new file mode 100644 index 000000000..76725bc71 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/BedrockAwsConnectionProperties.java @@ -0,0 +1,71 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * Configuration properties for Bedrock AWS connection. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +@ConfigurationProperties(BedrockAwsConnectionProperties.CONFIG_PREFIX) +public class BedrockAwsConnectionProperties { + + public static final String CONFIG_PREFIX = "spring.ai.bedrock.aws"; + + /** + * AWS region to use. Defaults to us-east-1. + */ + private String region = "us-east-1"; + + /** + * AWS access key. + */ + private String accessKey; + + /** + * AWS secret key. + */ + private String secretKey; + + public String getRegion() { + return region; + } + + public void setRegion(String awsRegion) { + this.region = awsRegion; + } + + public String getAccessKey() { + return accessKey; + } + + public void setAccessKey(String accessKey) { + this.accessKey = accessKey; + } + + public String getSecretKey() { + return secretKey; + } + + public void setSecretKey(String secretKey) { + this.secretKey = secretKey; + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfiguration.java new file mode 100644 index 000000000..93a4013be --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfiguration.java @@ -0,0 +1,73 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.anthropic; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; + +import org.springframework.ai.autoconfigure.NativeHints; +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; +import org.springframework.ai.bedrock.anthropic.BedrockAnthropicChatClient; +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.ImportRuntimeHints; + +/** + * {@link AutoConfiguration Auto-configuration} for Bedrock Anthropic Chat Client. + * + * Leverages the Spring Cloud AWS to resolve the {@link AwsCredentialsProvider}. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +@AutoConfiguration +@ConditionalOnClass(AnthropicChatBedrockApi.class) +@EnableConfigurationProperties({ BedrockAnthropicChatProperties.class, BedrockAwsConnectionProperties.class }) +@ConditionalOnProperty(prefix = BedrockAnthropicChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true") +@Import(BedrockAwsConnectionConfiguration.class) +@ImportRuntimeHints(NativeHints.class) +public class BedrockAnthropicChatAutoConfiguration { + + @Bean + @ConditionalOnMissingBean + public AnthropicChatBedrockApi anthropicApi(AwsCredentialsProvider credentialsProvider, + BedrockAnthropicChatProperties properties, BedrockAwsConnectionProperties awsProperties) { + return new AnthropicChatBedrockApi(properties.getModel(), credentialsProvider, awsProperties.getRegion(), + new ObjectMapper()); + } + + @Bean + public BedrockAnthropicChatClient anthropicChatClient(AnthropicChatBedrockApi anthropicApi, + BedrockAnthropicChatProperties properties) { + + return new BedrockAnthropicChatClient(anthropicApi).withTemperature(properties.getTemperature()) + .withTopP(properties.getTopP()) + .withMaxTokensToSample(properties.getMaxTokensToSample()) + .withTopK(properties.getTopK()) + .withStopSequences(properties.getStopSequences()) + .withAnthropicVersion(properties.getAnthropicVersion()); + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatProperties.java new file mode 100644 index 000000000..5b22fff7b --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatProperties.java @@ -0,0 +1,151 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.anthropic; + +import java.util.List; + +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi; +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatModel; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * Configuration properties for Bedrock Anthropic. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +@ConfigurationProperties(BedrockAnthropicChatProperties.CONFIG_PREFIX) +public class BedrockAnthropicChatProperties { + + public static final String CONFIG_PREFIX = "spring.ai.bedrock.anthropic.chat"; + + /** + * Enable Bedrock Anthropic chat client. Disabled by default. + */ + private boolean enabled = false; + + /** + * The model id to use. See the {@link AnthropicChatModel} for the supported models. + */ + private String model = AnthropicChatModel.CLAUDE_V2.id(); + + /** + * Controls the randomness of the output. Values can range over [0.0,1.0], inclusive. + * A value closer to 1.0 will produce responses that are more varied, while a value + * closer to 0.0 will typically result in less surprising responses from the model. + * This value specifies default to be used by the backend while making the call to the + * model. + */ + private Float temperature = 0.7f; + + /** + * The maximum cumulative probability of tokens to consider when sampling. The model + * uses combined Top-k and nucleus sampling. Nucleus sampling considers the smallest + * set of tokens whose probability sum is at least topP. + */ + private Float topP = null; + + /** + * Specify the maximum number of tokens to use in the generated response. Note that + * the models may stop before reaching this maximum. This parameter only specifies the + * absolute maximum number of tokens to generate. We recommend a limit of 4,000 tokens + * for optimal performance. + */ + private Integer maxTokensToSample = 300; + + /** + * Specify the number of token choices the model uses to generate the next token. + */ + private Integer topK = 10; + + /** + * Configure up to four sequences that the model recognizes. After a stop sequence, + * the model stops generating further tokens. The returned text doesn't contain the + * stop sequence. + */ + private List stopSequences = List.of("\n\nHuman:"); + + /** + * The version of the model to use. The default value is bedrock-2023-05-31. + */ + private String anthropicVersion = AnthropicChatBedrockApi.DEFAULT_ANTHROPIC_VERSION; + + public boolean isEnabled() { + return this.enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public String getModel() { + return this.model; + } + + public void setModel(String model) { + this.model = model; + } + + public Float getTemperature() { + return this.temperature; + } + + public void setTemperature(Float temperature) { + this.temperature = temperature; + } + + public Float getTopP() { + return this.topP; + } + + public void setTopP(Float topP) { + this.topP = topP; + } + + public Integer getMaxTokensToSample() { + return maxTokensToSample; + } + + public void setMaxTokensToSample(Integer maxTokensToSample) { + this.maxTokensToSample = maxTokensToSample; + } + + public Integer getTopK() { + return topK; + } + + public void setTopK(Integer topK) { + this.topK = topK; + } + + public List getStopSequences() { + return stopSequences; + } + + public void setStopSequences(List stopSequences) { + this.stopSequences = stopSequences; + } + + public String getAnthropicVersion() { + return anthropicVersion; + } + + public void setAnthropicVersion(String anthropicVersion) { + this.anthropicVersion = anthropicVersion; + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfiguration.java new file mode 100644 index 000000000..1a3e78a82 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfiguration.java @@ -0,0 +1,74 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.ai.autoconfigure.bedrock.cohere; + +import com.fasterxml.jackson.databind.ObjectMapper; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; + +import org.springframework.ai.autoconfigure.NativeHints; +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; +import org.springframework.ai.bedrock.cohere.BedrockCohereChatClient; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.LogitBias; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.ImportRuntimeHints; + +/** + * {@link AutoConfiguration Auto-configuration} for Bedrock Cohere Chat Client. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +@AutoConfiguration +@ConditionalOnClass(CohereChatBedrockApi.class) +@EnableConfigurationProperties({ BedrockCohereChatProperties.class, BedrockAwsConnectionProperties.class }) +@ConditionalOnProperty(prefix = BedrockCohereChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true") +@Import(BedrockAwsConnectionConfiguration.class) +@ImportRuntimeHints(NativeHints.class) +public class BedrockCohereChatAutoConfiguration { + + @Bean + @ConditionalOnMissingBean + public CohereChatBedrockApi cohereApi(AwsCredentialsProvider credentialsProvider, + BedrockCohereChatProperties properties, BedrockAwsConnectionProperties awsProperties) { + return new CohereChatBedrockApi(properties.getModel(), credentialsProvider, awsProperties.getRegion(), + new ObjectMapper()); + } + + @Bean + public BedrockCohereChatClient cohereChatClient(CohereChatBedrockApi cohereChatApi, + BedrockCohereChatProperties properties) { + + LogitBias logitBiasBias = (properties.getLogitBiasBias() != null && properties.getLogitBiasToken() != null) + ? new LogitBias(properties.getLogitBiasToken(), properties.getLogitBiasBias()) : null; + + return new BedrockCohereChatClient(cohereChatApi).withTemperature(properties.getTemperature()) + .withTopP(properties.getTopP()) + .withTopK(properties.getTopK()) + .withMaxTokens(properties.getMaxTokens()) + .withStopSequences(properties.getStopSequences()) + .withLogitBias(logitBiasBias) + .withTruncate(properties.getTruncate()); + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatProperties.java new file mode 100644 index 000000000..97d58bbf3 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatProperties.java @@ -0,0 +1,202 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.cohere; + +import java.util.List; + +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.ReturnLikelihoods; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.Truncate; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * Bedrock Cohere Chat autoconfiguration properties. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +@ConfigurationProperties(BedrockCohereChatProperties.CONFIG_PREFIX) +public class BedrockCohereChatProperties { + + public static final String CONFIG_PREFIX = "spring.ai.bedrock.cohere.chat"; + + /** + * Enable Bedrock Cohere Chat Client. False by default. + */ + private boolean enabled = false; + + /** + * Bedrock Cohere Chat model name. Defaults to 'cohere-command-v14'. + */ + private String model = CohereChatBedrockApi.CohereChatModel.COHERE_COMMAND_V14.id(); + + /** + * (optional) Use a lower value to decrease randomness in the response. Defaults to + * 0.7. + */ + private Float temperature = 0.7f; + + /** + * (optional) The maximum cumulative probability of tokens to consider when sampling. + * The model uses combined Top-k and nucleus sampling. Nucleus sampling considers the + * smallest set of tokens whose probability sum is at least topP. + */ + private Float topP; + + /** + * (optional) Specify the number of token choices the model uses to generate the next + * token. + */ + private Integer topK; + + /** + * (optional) Specify the maximum number of tokens to use in the generated response. + */ + private Integer maxTokens; + + /** + * (optional) Configure up to four sequences that the model recognizes. After a stop + * sequence, the model stops generating further tokens. The returned text doesn't + * contain the stop sequence. + */ + private List stopSequences; + + /** + * (optional) Specify how and if the token likelihoods are returned with the response. + */ + private ReturnLikelihoods returnLikelihoods; + + /** + * (optional) The maximum number of generations that the model should return. + */ + private Integer numGenerations; + + /** + * LogitBias prevents the model from generating unwanted tokens or incentivize the + * model to include desired tokens. The token likelihoods. + */ + private String logitBiasToken; + + /** + * LogitBias prevents the model from generating unwanted tokens or incentivize the + * model to include desired tokens. A float between -10 and 10. + */ + private Float logitBiasBias; + + /** + * (optional) Specifies how the API handles inputs longer than the maximum token + * length. + */ + private Truncate truncate; + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public Float getTemperature() { + return temperature; + } + + public void setTemperature(Float temperature) { + this.temperature = temperature; + } + + public Float getTopP() { + return topP; + } + + public void setTopP(Float topP) { + this.topP = topP; + } + + public Integer getTopK() { + return topK; + } + + public void setTopK(Integer topK) { + this.topK = topK; + } + + public Integer getMaxTokens() { + return maxTokens; + } + + public void setMaxTokens(Integer maxTokens) { + this.maxTokens = maxTokens; + } + + public List getStopSequences() { + return stopSequences; + } + + public void setStopSequences(List stopSequences) { + this.stopSequences = stopSequences; + } + + public ReturnLikelihoods getReturnLikelihoods() { + return returnLikelihoods; + } + + public void setReturnLikelihoods(ReturnLikelihoods returnLikelihoods) { + this.returnLikelihoods = returnLikelihoods; + } + + public Integer getNumGenerations() { + return numGenerations; + } + + public void setNumGenerations(Integer numGenerations) { + this.numGenerations = numGenerations; + } + + public String getLogitBiasToken() { + return logitBiasToken; + } + + public void setLogitBiasToken(String logitBiasToken) { + this.logitBiasToken = logitBiasToken; + } + + public Float getLogitBiasBias() { + return logitBiasBias; + } + + public void setLogitBiasBias(Float logitBiasBias) { + this.logitBiasBias = logitBiasBias; + } + + public Truncate getTruncate() { + return truncate; + } + + public void setTruncate(Truncate truncate) { + this.truncate = truncate; + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfiguration.java new file mode 100644 index 000000000..7d2e16b7b --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfiguration.java @@ -0,0 +1,67 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.cohere; + +import com.fasterxml.jackson.databind.ObjectMapper; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; + +import org.springframework.ai.autoconfigure.NativeHints; +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; +import org.springframework.ai.bedrock.cohere.BedrockCohereEmbeddingClient; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.ImportRuntimeHints; + +/** + * {@link AutoConfiguration Auto-configuration} for Bedrock Cohere Embedding Client. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +@AutoConfiguration +@ConditionalOnClass(CohereEmbeddingBedrockApi.class) +@EnableConfigurationProperties({ BedrockCohereEmbeddingProperties.class, BedrockAwsConnectionProperties.class }) +@ConditionalOnProperty(prefix = BedrockCohereEmbeddingProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true") +@Import(BedrockAwsConnectionConfiguration.class) +@ImportRuntimeHints(NativeHints.class) +public class BedrockCohereEmbeddingAutoConfiguration { + + @Bean + @ConditionalOnMissingBean + public CohereEmbeddingBedrockApi cohereApi(AwsCredentialsProvider credentialsProvider, + BedrockCohereEmbeddingProperties properties, BedrockAwsConnectionProperties awsProperties) { + return new CohereEmbeddingBedrockApi(properties.getModel(), credentialsProvider, awsProperties.getRegion(), + new ObjectMapper()); + } + + @Bean + @ConditionalOnMissingBean + public BedrockCohereEmbeddingClient cohereEmbeddingClient(CohereEmbeddingBedrockApi cohereEmbeddingApi, + BedrockCohereEmbeddingProperties properties) { + + return new BedrockCohereEmbeddingClient(cohereEmbeddingApi).withInputType(properties.getInputType()) + .withTruncate(properties.getTruncate()); + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingProperties.java new file mode 100644 index 000000000..5a5762a10 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingProperties.java @@ -0,0 +1,94 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.cohere; + +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingModel; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest.InputType; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * Bedrock Cohere Embedding autoconfiguration properties. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +@ConfigurationProperties(BedrockCohereEmbeddingProperties.CONFIG_PREFIX) +public class BedrockCohereEmbeddingProperties { + + public static final String CONFIG_PREFIX = "spring.ai.bedrock.cohere.embedding"; + + /** + * Enable Bedrock Cohere Embedding Client. False by default. + */ + private boolean enabled = false; + + /** + * Bedrock Cohere Embedding model name. Defaults to 'cohere.embed-multilingual-v3'. + */ + private String model = CohereEmbeddingModel.COHERE_EMBED_MULTILINGUAL_V1.id(); + + /** + * Prepends special tokens to differentiate each type from one another. You should not + * mix different types together, except when mixing types for for search and + * retrieval. In this case, embed your corpus with the search_document type and + * embedded queries with type search_query type. + */ + private InputType inputType = InputType.search_document; + + /** + * Specifies how the API handles inputs longer than the maximum token length. + */ + private CohereEmbeddingRequest.Truncate truncate = CohereEmbeddingRequest.Truncate.NONE; + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public static String getConfigPrefix() { + return CONFIG_PREFIX; + } + + public void setInputType(InputType inputType) { + this.inputType = inputType; + } + + public InputType getInputType() { + return inputType; + } + + public CohereEmbeddingRequest.Truncate getTruncate() { + return truncate; + } + + public void setTruncate(CohereEmbeddingRequest.Truncate truncate) { + this.truncate = truncate; + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatAutoConfiguration.java new file mode 100644 index 000000000..af657e887 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatAutoConfiguration.java @@ -0,0 +1,68 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.llama2; + +import com.fasterxml.jackson.databind.ObjectMapper; +import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; + +import org.springframework.ai.autoconfigure.NativeHints; +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionConfiguration; +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; +import org.springframework.ai.bedrock.llama2.BedrockLlama2ChatClient; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.ImportRuntimeHints; + +/** + * {@link AutoConfiguration Auto-configuration} for Bedrock Llama2 Chat Client. + * + * Leverages the Spring Cloud AWS to resolve the {@link AwsCredentialsProvider}. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +@AutoConfiguration +@ConditionalOnClass(Llama2ChatBedrockApi.class) +@EnableConfigurationProperties({ BedrockLlama2ChatProperties.class, BedrockAwsConnectionProperties.class }) +@ConditionalOnProperty(prefix = BedrockLlama2ChatProperties.CONFIG_PREFIX, name = "enabled", havingValue = "true") +@Import(BedrockAwsConnectionConfiguration.class) +@ImportRuntimeHints(NativeHints.class) +public class BedrockLlama2ChatAutoConfiguration { + + @Bean + @ConditionalOnMissingBean + public Llama2ChatBedrockApi llama2Api(AwsCredentialsProvider credentialsProvider, + BedrockLlama2ChatProperties properties, BedrockAwsConnectionProperties awsProperties) { + return new Llama2ChatBedrockApi(properties.getModel(), credentialsProvider, awsProperties.getRegion(), + new ObjectMapper()); + } + + @Bean + public BedrockLlama2ChatClient llama2ChatClient(Llama2ChatBedrockApi llama2Api, + BedrockLlama2ChatProperties properties) { + return new BedrockLlama2ChatClient(llama2Api).withTemperature(properties.getTemperature()) + .withTopP(properties.getTopP()) + .withMaxGenLen(properties.getMaxGenLen()); + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatProperties.java new file mode 100644 index 000000000..b224dacd8 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatProperties.java @@ -0,0 +1,106 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.llama2; + +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi.Llama2ChatCompletionModel; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * Configuration properties for Bedrock Llama2. + * + * @author Christian Tzolov + * @since 0.8.0 + */ +@ConfigurationProperties(BedrockLlama2ChatProperties.CONFIG_PREFIX) +public class BedrockLlama2ChatProperties { + + public static final String CONFIG_PREFIX = "spring.ai.bedrock.llama2.chat"; + + /** + * Enable Bedrock Llama2 chat client. Disabled by default. + */ + private boolean enabled = false; + + /** + * Controls the randomness of the output. Values can range over [0.0,1.0], inclusive. + * A value closer to 1.0 will produce responses that are more varied, while a value + * closer to 0.0 will typically result in less surprising responses from the model. + * This value specifies default to be used by the backend while making the call to the + * model. + */ + private Float temperature = 0.7f; + + /** + * The maximum cumulative probability of tokens to consider when sampling. The model + * uses combined Top-k and nucleus sampling. Nucleus sampling considers the smallest + * set of tokens whose probability sum is at least topP. + */ + private Float topP = null; + + /** + * Specify the maximum number of tokens to use in the generated response. The model + * truncates the response once the generated text exceeds maxGenLen. + */ + private Integer maxGenLen = 300; + + /** + * The model id to use. See the {@link Llama2ChatCompletionModel} for the supported + * models. + */ + private String model = Llama2ChatCompletionModel.LLAMA2_70B_CHAT_V1.id(); + + public boolean isEnabled() { + return this.enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public String getModel() { + return this.model; + } + + public void setModel(String model) { + this.model = model; + } + + public Float getTemperature() { + return this.temperature; + } + + public void setTemperature(Float temperature) { + this.temperature = temperature; + } + + public Float getTopP() { + return this.topP; + } + + public void setTopP(Float topP) { + this.topP = topP; + } + + public Integer getMaxGenLen() { + return this.maxGenLen; + } + + public void setMaxGenLen(Integer topK) { + this.maxGenLen = topK; + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/VertexAiAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/VertexAiAutoConfiguration.java index 8cab8410d..0f33fb599 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/VertexAiAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vertexai/VertexAiAutoConfiguration.java @@ -39,12 +39,10 @@ public class VertexAiAutoConfiguration { @ConditionalOnMissingBean public VertexAiChatClient vertexAiClient(VertexAiApi vertexAiApi, VertexAiChatProperties chatProperties) { - VertexAiChatClient client = new VertexAiChatClient(vertexAiApi); - - client.setTemperature(chatProperties.getTemperature()); - client.setTopP(chatProperties.getTopP()); - client.setTopK(chatProperties.getTopK()); - client.setCandidateCount(chatProperties.getCandidateCount()); + VertexAiChatClient client = new VertexAiChatClient(vertexAiApi).withTemperature(chatProperties.getTemperature()) + .withTopP(chatProperties.getTopP()) + .withTopK(chatProperties.getTopK()) + .withCandidateCount(chatProperties.getCandidateCount()); return client; } diff --git a/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index b3a5b3711..6046d8113 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-ai-spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -11,3 +11,8 @@ org.springframework.ai.autoconfigure.vectorstore.chroma.ChromaVectorStoreAutoCon org.springframework.ai.autoconfigure.vectorstore.azure.AzureVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vectorstore.weaviate.WeaviateVectorStoreAutoConfiguration org.springframework.ai.autoconfigure.vertexai.VertexAiAutoConfiguration +org.springframework.ai.autoconfigure.bedrock.llama2.BedrockLlama2AutoConfiguration +org.springframework.ai.autoconfigure.bedrock.cohere.BedrockCohereChatAutoConfiguration +org.springframework.ai.autoconfigure.bedrock.cohere.BedrockCohereEmbeddingAutoConfiguration + + diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfigurationIT.java new file mode 100644 index 000000000..2895ae6c7 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/anthropic/BedrockAnthropicChatAutoConfigurationIT.java @@ -0,0 +1,153 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.anthropic; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import reactor.core.publisher.Flux; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; +import org.springframework.ai.bedrock.anthropic.BedrockAnthropicChatClient; +import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatModel; +import org.springframework.ai.client.AiResponse; +import org.springframework.ai.client.Generation; +import org.springframework.ai.prompt.Prompt; +import org.springframework.ai.prompt.SystemPromptTemplate; +import org.springframework.ai.prompt.messages.Message; +import org.springframework.ai.prompt.messages.UserMessage; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Christian Tzolov + * @since 0.8.0 + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class BedrockAnthropicChatAutoConfigurationIT { + + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withPropertyValues("spring.ai.bedrock.anthropic.chat.enabled=true", + "spring.ai.bedrock.aws.access-key=" + System.getenv("AWS_ACCESS_KEY_ID"), + "spring.ai.bedrock.aws.secret-key=" + System.getenv("AWS_SECRET_ACCESS_KEY"), + "spring.ai.bedrock.anthropic.chat.model=" + AnthropicChatModel.CLAUDE_V2.id(), + "spring.ai.bedrock.aws.region=" + Region.EU_CENTRAL_1.id(), + "spring.ai.bedrock.anthropic.chat.temperature=0.5", "spring.ai.bedrock.anthropic.chat.maxGenLen=500") + .withConfiguration(AutoConfigurations.of(BedrockAnthropicChatAutoConfiguration.class)); + + private final Message systemMessage = new SystemPromptTemplate(""" + You are a helpful AI assistant. Your name is {name}. + You are an AI assistant that helps people find information. + Your name is {name} + You should reply to the user's request with your name and also in the style of a {voice}. + """).createMessage(Map.of("name", "Bob", "voice", "pirate")); + + private final UserMessage userMessage = new UserMessage( + "Tell me about 3 famous pirates from the Golden Age of Piracy and why they did."); + + @Test + public void chatCompletion() { + contextRunner.run(context -> { + BedrockAnthropicChatClient anthropicChatClient = context.getBean(BedrockAnthropicChatClient.class); + AiResponse response = anthropicChatClient.generate(new Prompt(List.of(userMessage, systemMessage))); + assertThat(response.getGeneration().getContent()).contains("Blackbeard"); + }); + } + + @Test + public void chatCompletionStreaming() { + contextRunner.run(context -> { + + BedrockAnthropicChatClient anthropicChatClient = context.getBean(BedrockAnthropicChatClient.class); + + Flux response = anthropicChatClient + .generateStream(new Prompt(List.of(userMessage, systemMessage))); + + List responses = response.collectList().block(); + assertThat(responses.size()).isGreaterThan(2); + + String stitchedResponseContent = responses.stream() + .map(AiResponse::getGenerations) + .flatMap(List::stream) + .map(Generation::getContent) + .collect(Collectors.joining()); + + assertThat(stitchedResponseContent).contains("Blackbeard"); + }); + } + + @Test + public void propertiesTest() { + + new ApplicationContextRunner() + .withPropertyValues("spring.ai.bedrock.anthropic.chat.enabled=true", + "spring.ai.bedrock.aws.access-key=ACCESS_KEY", "spring.ai.bedrock.aws.secret-key=SECRET_KEY", + "spring.ai.bedrock.anthropic.chat.model=MODEL_XYZ", + "spring.ai.bedrock.aws.region=" + Region.EU_CENTRAL_1.id(), + "spring.ai.bedrock.anthropic.chat.temperature=0.55") + .withConfiguration(AutoConfigurations.of(BedrockAnthropicChatAutoConfiguration.class)) + .run(context -> { + var anthropicChatProperties = context.getBean(BedrockAnthropicChatProperties.class); + var awsProperties = context.getBean(BedrockAwsConnectionProperties.class); + + assertThat(anthropicChatProperties.isEnabled()).isTrue(); + assertThat(awsProperties.getRegion()).isEqualTo(Region.EU_CENTRAL_1.id()); + + assertThat(anthropicChatProperties.getTemperature()).isEqualTo(0.55f); + assertThat(anthropicChatProperties.getModel()).isEqualTo("MODEL_XYZ"); + + assertThat(awsProperties.getAccessKey()).isEqualTo("ACCESS_KEY"); + assertThat(awsProperties.getSecretKey()).isEqualTo("SECRET_KEY"); + }); + } + + @Test + public void chatCompletionDisabled() { + + // It is disabled by default + new ApplicationContextRunner() + .withConfiguration(AutoConfigurations.of(BedrockAnthropicChatAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockAnthropicChatProperties.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockAnthropicChatClient.class)).isEmpty(); + }); + + // Explicitly enable the chat auto-configuration. + new ApplicationContextRunner().withPropertyValues("spring.ai.bedrock.anthropic.chat.enabled=true") + .withConfiguration(AutoConfigurations.of(BedrockAnthropicChatAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockAnthropicChatProperties.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockAnthropicChatClient.class)).isNotEmpty(); + }); + + // Explicitly disable the chat auto-configuration. + new ApplicationContextRunner().withPropertyValues("spring.ai.bedrock.anthropic.chat.enabled=false") + .withConfiguration(AutoConfigurations.of(BedrockAnthropicChatAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockAnthropicChatProperties.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockAnthropicChatClient.class)).isEmpty(); + }); + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfigurationIT.java new file mode 100644 index 000000000..b7041d1f1 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereChatAutoConfigurationIT.java @@ -0,0 +1,164 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.cohere; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import reactor.core.publisher.Flux; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; +import org.springframework.ai.bedrock.cohere.BedrockCohereChatClient; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatModel; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.ReturnLikelihoods; +import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest.Truncate; +import org.springframework.ai.client.AiResponse; +import org.springframework.ai.client.Generation; +import org.springframework.ai.prompt.Prompt; +import org.springframework.ai.prompt.SystemPromptTemplate; +import org.springframework.ai.prompt.messages.Message; +import org.springframework.ai.prompt.messages.UserMessage; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Christian Tzolov + * @since 0.8.0 + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class BedrockCohereChatAutoConfigurationIT { + + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withPropertyValues("spring.ai.bedrock.cohere.chat.enabled=true", + "spring.ai.bedrock.aws.access-key=" + System.getenv("AWS_ACCESS_KEY_ID"), + "spring.ai.bedrock.aws.secret-key=" + System.getenv("AWS_SECRET_ACCESS_KEY"), + "spring.ai.bedrock.aws.region=" + Region.US_EAST_1.id(), + "spring.ai.bedrock.cohere.chat.model=" + CohereChatModel.COHERE_COMMAND_V14.id(), + "spring.ai.bedrock.cohere.chat.temperature=0.5", "spring.ai.bedrock.cohere.chat.maxTokens=500") + .withConfiguration(AutoConfigurations.of(BedrockCohereChatAutoConfiguration.class)); + + private final Message systemMessage = new SystemPromptTemplate(""" + You are a helpful AI assistant. Your name is {name}. + You are an AI assistant that helps people find information. + Your name is {name} + You should reply to the user's request with your name and also in the style of a {voice}. + """).createMessage(Map.of("name", "Bob", "voice", "pirate")); + + private final UserMessage userMessage = new UserMessage( + "Tell me about 3 famous pirates from the Golden Age of Piracy and why they did."); + + @Test + public void chatCompletion() { + contextRunner.run(context -> { + BedrockCohereChatClient cohereChatClient = context.getBean(BedrockCohereChatClient.class); + AiResponse response = cohereChatClient.generate(new Prompt(List.of(userMessage, systemMessage))); + assertThat(response.getGeneration().getContent()).contains("Blackbeard"); + }); + } + + @Test + public void chatCompletionStreaming() { + contextRunner.run(context -> { + + BedrockCohereChatClient cohereChatClient = context.getBean(BedrockCohereChatClient.class); + + Flux response = cohereChatClient + .generateStream(new Prompt(List.of(userMessage, systemMessage))); + + List responses = response.collectList().block(); + assertThat(responses.size()).isGreaterThan(2); + + String stitchedResponseContent = responses.stream() + .map(AiResponse::getGenerations) + .flatMap(List::stream) + .map(Generation::getContent) + .collect(Collectors.joining()); + + assertThat(stitchedResponseContent).contains("Blackbeard"); + }); + } + + @Test + public void propertiesTest() { + + new ApplicationContextRunner().withPropertyValues("spring.ai.bedrock.cohere.chat.enabled=true", + "spring.ai.bedrock.aws.access-key=ACCESS_KEY", "spring.ai.bedrock.aws.secret-key=SECRET_KEY", + "spring.ai.bedrock.cohere.chat.model=MODEL_XYZ", + "spring.ai.bedrock.aws.region=" + Region.EU_CENTRAL_1.id(), + "spring.ai.bedrock.cohere.chat.temperature=0.55", "spring.ai.bedrock.cohere.chat.topP=0.55", + "spring.ai.bedrock.cohere.chat.topK=10", "spring.ai.bedrock.cohere.chat.stopSequences=END1,END2", + "spring.ai.bedrock.cohere.chat.returnLikelihoods=ALL", "spring.ai.bedrock.cohere.chat.numGenerations=3", + "spring.ai.bedrock.cohere.chat.truncate=START", "spring.ai.bedrock.cohere.chat.maxTokens=123") + .withConfiguration(AutoConfigurations.of(BedrockCohereChatAutoConfiguration.class)) + .run(context -> { + var chatProperties = context.getBean(BedrockCohereChatProperties.class); + var aswProperties = context.getBean(BedrockAwsConnectionProperties.class); + + assertThat(chatProperties.isEnabled()).isTrue(); + assertThat(aswProperties.getRegion()).isEqualTo(Region.EU_CENTRAL_1.id()); + assertThat(chatProperties.getModel()).isEqualTo("MODEL_XYZ"); + + assertThat(chatProperties.getTemperature()).isEqualTo(0.55f); + assertThat(chatProperties.getTopP()).isEqualTo(0.55f); + assertThat(chatProperties.getTopK()).isEqualTo(10); + assertThat(chatProperties.getStopSequences()).isEqualTo(List.of("END1", "END2")); + assertThat(chatProperties.getReturnLikelihoods()).isEqualTo(ReturnLikelihoods.ALL); + assertThat(chatProperties.getNumGenerations()).isEqualTo(3); + assertThat(chatProperties.getTruncate()).isEqualTo(Truncate.START); + assertThat(chatProperties.getMaxTokens()).isEqualTo(123); + + assertThat(aswProperties.getAccessKey()).isEqualTo("ACCESS_KEY"); + assertThat(aswProperties.getSecretKey()).isEqualTo("SECRET_KEY"); + }); + } + + @Test + public void chatCompletionDisabled() { + + // It is disabled by default + new ApplicationContextRunner() + .withConfiguration(AutoConfigurations.of(BedrockCohereChatAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockCohereChatProperties.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockCohereChatClient.class)).isEmpty(); + }); + + // Explicitly enable the chat auto-configuration. + new ApplicationContextRunner().withPropertyValues("spring.ai.bedrock.cohere.chat.enabled=true") + .withConfiguration(AutoConfigurations.of(BedrockCohereChatAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockCohereChatProperties.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockCohereChatClient.class)).isNotEmpty(); + }); + + // Explicitly disable the chat auto-configuration. + new ApplicationContextRunner().withPropertyValues("spring.ai.bedrock.cohere.chat.enabled=false") + .withConfiguration(AutoConfigurations.of(BedrockCohereChatAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockCohereChatProperties.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockCohereChatClient.class)).isEmpty(); + }); + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfigurationIT.java new file mode 100644 index 000000000..afd747ddb --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/cohere/BedrockCohereEmbeddingAutoConfigurationIT.java @@ -0,0 +1,141 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.cohere; + +import java.util.List; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; +import org.springframework.ai.bedrock.cohere.BedrockCohereEmbeddingClient; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingModel; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest; +import org.springframework.ai.bedrock.cohere.api.CohereEmbeddingBedrockApi.CohereEmbeddingRequest.InputType; +import org.springframework.ai.embedding.EmbeddingResponse; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Christian Tzolov + * @since 0.8.0 + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class BedrockCohereEmbeddingAutoConfigurationIT { + + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withPropertyValues("spring.ai.bedrock.cohere.embedding.enabled=true", + "spring.ai.bedrock.aws.access-key=" + System.getenv("AWS_ACCESS_KEY_ID"), + "spring.ai.bedrock.aws.secret-key=" + System.getenv("AWS_SECRET_ACCESS_KEY"), + "spring.ai.bedrock.aws.region=" + Region.US_EAST_1.id(), + "spring.ai.bedrock.cohere.embedding.model=" + CohereEmbeddingModel.COHERE_EMBED_MULTILINGUAL_V1.id(), + "spring.ai.bedrock.cohere.chat.inputType=search_document", + "spring.ai.bedrock.cohere.chat.truncate=NONE") + .withConfiguration(AutoConfigurations.of(BedrockCohereEmbeddingAutoConfiguration.class)); + + @Test + public void singleEmbedding() { + contextRunner.run(context -> { + BedrockCohereEmbeddingClient embeddingClient = context.getBean(BedrockCohereEmbeddingClient.class); + assertThat(embeddingClient).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingClient.embedForResponse(List.of("Hello World")); + assertThat(embeddingResponse.getData()).hasSize(1); + assertThat(embeddingResponse.getData().get(0).getEmbedding()).isNotEmpty(); + assertThat(embeddingClient.dimensions()).isEqualTo(1024); + }); + } + + @Test + public void batchEmbedding() { + contextRunner.run(context -> { + + BedrockCohereEmbeddingClient embeddingClient = context.getBean(BedrockCohereEmbeddingClient.class); + + assertThat(embeddingClient).isNotNull(); + EmbeddingResponse embeddingResponse = embeddingClient + .embedForResponse(List.of("Hello World", "World is big and salvation is near")); + assertThat(embeddingResponse.getData()).hasSize(2); + assertThat(embeddingResponse.getData().get(0).getEmbedding()).isNotEmpty(); + assertThat(embeddingResponse.getData().get(0).getIndex()).isEqualTo(0); + assertThat(embeddingResponse.getData().get(1).getEmbedding()).isNotEmpty(); + assertThat(embeddingResponse.getData().get(1).getIndex()).isEqualTo(1); + + assertThat(embeddingClient.dimensions()).isEqualTo(1024); + + }); + } + + @Test + public void propertiesTest() { + + new ApplicationContextRunner() + .withPropertyValues("spring.ai.bedrock.cohere.embedding.enabled=true", + "spring.ai.bedrock.aws.access-key=ACCESS_KEY", "spring.ai.bedrock.aws.secret-key=SECRET_KEY", + "spring.ai.bedrock.aws.region=" + Region.EU_CENTRAL_1.id(), + "spring.ai.bedrock.cohere.embedding.model=MODEL_XYZ", + "spring.ai.bedrock.cohere.embedding.inputType=classification", + "spring.ai.bedrock.cohere.embedding.truncate=RIGHT") + .withConfiguration(AutoConfigurations.of(BedrockCohereEmbeddingAutoConfiguration.class)) + .run(context -> { + var chatProperties = context.getBean(BedrockCohereEmbeddingProperties.class); + var awsProperties = context.getBean(BedrockAwsConnectionProperties.class); + + assertThat(chatProperties.isEnabled()).isTrue(); + assertThat(awsProperties.getRegion()).isEqualTo(Region.EU_CENTRAL_1.id()); + assertThat(chatProperties.getModel()).isEqualTo("MODEL_XYZ"); + + assertThat(chatProperties.getInputType()).isEqualTo(InputType.classification); + assertThat(chatProperties.getTruncate()).isEqualTo(CohereEmbeddingRequest.Truncate.RIGHT); + + assertThat(awsProperties.getAccessKey()).isEqualTo("ACCESS_KEY"); + assertThat(awsProperties.getSecretKey()).isEqualTo("SECRET_KEY"); + }); + } + + @Test + public void chatCompletionDisabled() { + + // It is disabled by default + new ApplicationContextRunner() + .withConfiguration(AutoConfigurations.of(BedrockCohereEmbeddingAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockCohereEmbeddingProperties.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockCohereEmbeddingClient.class)).isEmpty(); + }); + + // Explicitly enable the chat auto-configuration. + new ApplicationContextRunner().withPropertyValues("spring.ai.bedrock.cohere.embedding.enabled=true") + .withConfiguration(AutoConfigurations.of(BedrockCohereEmbeddingAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockCohereEmbeddingProperties.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockCohereEmbeddingClient.class)).isNotEmpty(); + }); + + // Explicitly disable the chat auto-configuration. + new ApplicationContextRunner().withPropertyValues("spring.ai.bedrock.cohere.embedding.enabled=false") + .withConfiguration(AutoConfigurations.of(BedrockCohereEmbeddingAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockCohereEmbeddingProperties.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockCohereEmbeddingClient.class)).isEmpty(); + }); + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatAutoConfigurationIT.java new file mode 100644 index 000000000..d85b6bf5a --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/bedrock/llama2/BedrockLlama2ChatAutoConfigurationIT.java @@ -0,0 +1,154 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.bedrock.llama2; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import reactor.core.publisher.Flux; +import software.amazon.awssdk.regions.Region; + +import org.springframework.ai.autoconfigure.bedrock.BedrockAwsConnectionProperties; +import org.springframework.ai.bedrock.llama2.BedrockLlama2ChatClient; +import org.springframework.ai.bedrock.llama2.api.Llama2ChatBedrockApi.Llama2ChatCompletionModel; +import org.springframework.ai.client.AiResponse; +import org.springframework.ai.client.Generation; +import org.springframework.ai.prompt.Prompt; +import org.springframework.ai.prompt.SystemPromptTemplate; +import org.springframework.ai.prompt.messages.Message; +import org.springframework.ai.prompt.messages.UserMessage; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Christian Tzolov + * @since 0.8.0 + */ +@EnabledIfEnvironmentVariable(named = "AWS_ACCESS_KEY_ID", matches = ".*") +@EnabledIfEnvironmentVariable(named = "AWS_SECRET_ACCESS_KEY", matches = ".*") +public class BedrockLlama2ChatAutoConfigurationIT { + + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withPropertyValues("spring.ai.bedrock.llama2.chat.enabled=true", + "spring.ai.bedrock.aws.access-key=" + System.getenv("AWS_ACCESS_KEY_ID"), + "spring.ai.bedrock.aws.secret-key=" + System.getenv("AWS_SECRET_ACCESS_KEY"), + "spring.ai.bedrock.aws.region=" + Region.US_EAST_1.id(), + "spring.ai.bedrock.llama2.chat.model=" + Llama2ChatCompletionModel.LLAMA2_70B_CHAT_V1.id(), + "spring.ai.bedrock.llama2.chat.temperature=0.5", "spring.ai.bedrock.llama2.chat.maxGenLen=500") + .withConfiguration(AutoConfigurations.of(BedrockLlama2ChatAutoConfiguration.class)); + + private final Message systemMessage = new SystemPromptTemplate(""" + You are a helpful AI assistant. Your name is {name}. + You are an AI assistant that helps people find information. + Your name is {name} + You should reply to the user's request with your name and also in the style of a {voice}. + """).createMessage(Map.of("name", "Bob", "voice", "pirate")); + + private final UserMessage userMessage = new UserMessage( + "Tell me about 3 famous pirates from the Golden Age of Piracy and why they did."); + + @Test + public void chatCompletion() { + contextRunner.run(context -> { + BedrockLlama2ChatClient llama2ChatClient = context.getBean(BedrockLlama2ChatClient.class); + AiResponse response = llama2ChatClient.generate(new Prompt(List.of(userMessage, systemMessage))); + assertThat(response.getGeneration().getContent()).contains("Blackbeard"); + }); + } + + @Test + public void chatCompletionStreaming() { + contextRunner.run(context -> { + + BedrockLlama2ChatClient llama2ChatClient = context.getBean(BedrockLlama2ChatClient.class); + + Flux response = llama2ChatClient + .generateStream(new Prompt(List.of(userMessage, systemMessage))); + + List responses = response.collectList().block(); + assertThat(responses.size()).isGreaterThan(2); + + String stitchedResponseContent = responses.stream() + .map(AiResponse::getGenerations) + .flatMap(List::stream) + .map(Generation::getContent) + .collect(Collectors.joining()); + + assertThat(stitchedResponseContent).contains("Blackbeard"); + }); + } + + @Test + public void propertiesTest() { + + new ApplicationContextRunner() + .withPropertyValues("spring.ai.bedrock.llama2.chat.enabled=true", + "spring.ai.bedrock.aws.access-key=ACCESS_KEY", "spring.ai.bedrock.aws.secret-key=SECRET_KEY", + "spring.ai.bedrock.llama2.chat.model=MODEL_XYZ", + "spring.ai.bedrock.aws.region=" + Region.EU_CENTRAL_1.id(), + "spring.ai.bedrock.llama2.chat.temperature=0.55", "spring.ai.bedrock.llama2.chat.maxGenLen=123") + .withConfiguration(AutoConfigurations.of(BedrockLlama2ChatAutoConfiguration.class)) + .run(context -> { + var llama2ChatProperties = context.getBean(BedrockLlama2ChatProperties.class); + var awsProperties = context.getBean(BedrockAwsConnectionProperties.class); + + assertThat(llama2ChatProperties.isEnabled()).isTrue(); + assertThat(awsProperties.getRegion()).isEqualTo(Region.EU_CENTRAL_1.id()); + + assertThat(llama2ChatProperties.getTemperature()).isEqualTo(0.55f); + assertThat(llama2ChatProperties.getMaxGenLen()).isEqualTo(123); + assertThat(llama2ChatProperties.getModel()).isEqualTo("MODEL_XYZ"); + + assertThat(awsProperties.getAccessKey()).isEqualTo("ACCESS_KEY"); + assertThat(awsProperties.getSecretKey()).isEqualTo("SECRET_KEY"); + }); + } + + @Test + public void chatCompletionDisabled() { + + // It is disabled by default + new ApplicationContextRunner() + .withConfiguration(AutoConfigurations.of(BedrockLlama2ChatAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockLlama2ChatProperties.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockLlama2ChatClient.class)).isEmpty(); + }); + + // Explicitly enable the chat auto-configuration. + new ApplicationContextRunner().withPropertyValues("spring.ai.bedrock.llama2.chat.enabled=true") + .withConfiguration(AutoConfigurations.of(BedrockLlama2ChatAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockLlama2ChatProperties.class)).isNotEmpty(); + assertThat(context.getBeansOfType(BedrockLlama2ChatClient.class)).isNotEmpty(); + }); + + // Explicitly disable the chat auto-configuration. + new ApplicationContextRunner().withPropertyValues("spring.ai.bedrock.llama2.chat.enabled=false") + .withConfiguration(AutoConfigurations.of(BedrockLlama2ChatAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(BedrockLlama2ChatProperties.class)).isEmpty(); + assertThat(context.getBeansOfType(BedrockLlama2ChatClient.class)).isEmpty(); + }); + } + +} diff --git a/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfigurationIT.java b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfigurationIT.java new file mode 100644 index 000000000..0f132edd9 --- /dev/null +++ b/spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/openai/OpenAiAutoConfigurationIT.java @@ -0,0 +1,70 @@ +/* + * Copyright 2023-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ai.autoconfigure.openai; + +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; + +import org.springframework.ai.embedding.EmbeddingResponse; +import org.springframework.ai.openai.client.OpenAiClient; +import org.springframework.ai.openai.embedding.OpenAiEmbeddingClient; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +@EnabledIfEnvironmentVariable(named = "OPENAI_API_KEY", matches = ".*") +public class OpenAiAutoConfigurationIT { + + private static final Log logger = LogFactory.getLog(OpenAiAutoConfigurationIT.class); + + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withPropertyValues("spring.ai.openai.apiKey=" + System.getenv("OPENAI_API_KEY")) + .withConfiguration(AutoConfigurations.of(OpenAiAutoConfiguration.class)); + + @Test + void generate() { + contextRunner.run(context -> { + OpenAiClient client = context.getBean(OpenAiClient.class); + String response = client.generate("Hello"); + assertThat(response).isNotEmpty(); + logger.info("Response: " + response); + }); + } + + @Test + void embedding() { + contextRunner.run(context -> { + OpenAiEmbeddingClient embeddingClient = context.getBean(OpenAiEmbeddingClient.class); + + EmbeddingResponse embeddingResponse = embeddingClient + .embedForResponse(List.of("Hello World", "World is big and salvation is near")); + assertThat(embeddingResponse.getData()).hasSize(2); + assertThat(embeddingResponse.getData().get(0).getEmbedding()).isNotEmpty(); + assertThat(embeddingResponse.getData().get(0).getIndex()).isEqualTo(0); + assertThat(embeddingResponse.getData().get(1).getEmbedding()).isNotEmpty(); + assertThat(embeddingResponse.getData().get(1).getIndex()).isEqualTo(1); + + assertThat(embeddingClient.dimensions()).isEqualTo(1536); + }); + } + +} diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-bedrock-ai/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-bedrock-ai/pom.xml new file mode 100644 index 000000000..9af97333c --- /dev/null +++ b/spring-ai-spring-boot-starters/spring-ai-starter-bedrock-ai/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + org.springframework.ai + spring-ai + 0.8.0-SNAPSHOT + ../../pom.xml + + spring-ai-bedrock-ai-spring-boot-starter + jar + Spring AI Starter - Bedrock AI + Spring AI Bedrock AI Auto Configuration + https://github.com/spring-projects/spring-ai + + + https://github.com/spring-projects/spring-ai + git://github.com/spring-projects/spring-ai.git + git@github.com:spring-projects/spring-ai.git + + + + + org.springframework.boot + spring-boot-starter + + + + org.springframework.ai + spring-ai-spring-boot-autoconfigure + ${project.parent.version} + + + + org.springframework.ai + spring-ai-bedrock + ${project.parent.version} + + + + diff --git a/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/generation/VertexAiChatClient.java b/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/generation/VertexAiChatClient.java index a231e9ec4..5a2ac9432 100644 --- a/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/generation/VertexAiChatClient.java +++ b/spring-ai-vertex-ai/src/main/java/org/springframework/ai/vertex/generation/VertexAiChatClient.java @@ -50,20 +50,24 @@ public class VertexAiChatClient implements AiClient { this.vertexAiApi = vertexAiApi; } - public void setTemperature(Float temperature) { + public VertexAiChatClient withTemperature(Float temperature) { this.temperature = temperature; + return this; } - public void setTopK(Integer candidateCount) { - this.topK = candidateCount; - } - - public void setTopP(Float topP) { + public VertexAiChatClient withTopP(Float topP) { this.topP = topP; + return this; } - public void setCandidateCount(Integer maxTokens) { + public VertexAiChatClient withTopK(Integer topK) { + this.topK = topK; + return this; + } + + public VertexAiChatClient withCandidateCount(Integer maxTokens) { this.candidateCount = maxTokens; + return this; } @Override diff --git a/vector-stores/spring-ai-chroma/pom.xml b/vector-stores/spring-ai-chroma/pom.xml index 671a0809d..8aaa88d0d 100644 --- a/vector-stores/spring-ai-chroma/pom.xml +++ b/vector-stores/spring-ai-chroma/pom.xml @@ -27,6 +27,11 @@ ${parent.version} + + org.springframework + spring-web + + org.springframework.ai