AWS Bedrock integration for LangChain4j enabling Java applications to interact with various LLM providers through a unified interface
Synchronous and streaming chat model implementations for AWS Bedrock.
Synchronous chat model using AWS Bedrock Converse API.
public class BedrockChatModel extends AbstractBedrockChatModel implements ChatModel {
// Constructors
public BedrockChatModel(String modelId);
public BedrockChatModel(Builder builder);
// Core methods
public ChatResponse doChat(ChatRequest request);
public BedrockChatRequestParameters defaultRequestParameters();
public List<ChatModelListener> listeners();
public ModelProvider provider();
// Builder
public static Builder builder();
}public static class Builder extends AbstractBuilder<Builder> {
// Bedrock-specific
public Builder client(BedrockRuntimeClient client);
public Builder maxRetries(Integer maxRetries);
// Inherited from AbstractBuilder
public Builder region(Region region);
public Builder modelId(String modelId);
public Builder defaultRequestParameters(ChatRequestParameters params);
public Builder returnThinking(Boolean returnThinking);
public Builder sendThinking(Boolean sendThinking);
public Builder timeout(Duration timeout);
public Builder logRequests(Boolean logRequests);
public Builder logResponses(Boolean logResponses);
public Builder logger(Logger logger);
public Builder listeners(List<ChatModelListener> listeners);
public BedrockChatModel build();
}Streaming chat model using AWS Bedrock Converse API.
public class BedrockStreamingChatModel extends AbstractBedrockChatModel implements StreamingChatModel {
// Constructors
public BedrockStreamingChatModel(String modelId);
public BedrockStreamingChatModel(Builder builder);
// Core methods
public void doChat(ChatRequest chatRequest, StreamingChatResponseHandler handler);
public BedrockChatRequestParameters defaultRequestParameters();
public List<ChatModelListener> listeners();
public ModelProvider provider();
// Builder
public static Builder builder();
}public static class Builder extends AbstractBuilder<Builder> {
// Streaming-specific
public Builder client(BedrockRuntimeAsyncClient client);
// Inherited from AbstractBuilder (same as BedrockChatModel.Builder)
public Builder region(Region region);
public Builder modelId(String modelId);
public Builder defaultRequestParameters(ChatRequestParameters params);
public Builder returnThinking(Boolean returnThinking);
public Builder sendThinking(Boolean sendThinking);
public Builder timeout(Duration timeout);
public Builder logRequests(Boolean logRequests);
public Builder logResponses(Boolean logResponses);
public Builder logger(Logger logger);
public Builder listeners(List<ChatModelListener> listeners);
public BedrockStreamingChatModel build();
}| Parameter | Type | Description |
|---|---|---|
| region | Region | AWS region (default: US_EAST_1) |
| modelId | String | Bedrock model identifier |
| defaultRequestParameters | ChatRequestParameters | Default parameters for all requests |
| returnThinking | Boolean | Return thinking content in responses |
| sendThinking | Boolean | Send thinking in conversation history |
| timeout | Duration | API call timeout (default: 1 minute) |
| maxRetries | Integer | Max retry attempts (default: 2) |
| logRequests | Boolean | Log request bodies (WARNING: may log sensitive data) |
| logResponses | Boolean | Log response bodies |
| listeners | List | Chat model listeners for observability |
Common model identifiers:
Claude Models:
anthropic.claude-3-5-sonnet-20241022-v2:0 - Claude 3.5 Sonnet v2 (with thinking mode)anthropic.claude-3-5-sonnet-20240620-v1:0 - Claude 3.5 Sonnet v1anthropic.claude-3-opus-20240229-v1:0 - Claude 3 Opusanthropic.claude-3-sonnet-20240229-v1:0 - Claude 3 Sonnetanthropic.claude-3-haiku-20240307-v1:0 - Claude 3 HaikuAmazon Nova Models:
amazon.nova-pro-v1:0 - Nova Proamazon.nova-lite-v1:0 - Nova Liteamazon.nova-micro-v1:0 - Nova MicroRelated: