Class BedrockChatModel
java.lang.Object
dev.langchain4j.model.bedrock.BedrockChatModel
- All Implemented Interfaces:
dev.langchain4j.model.chat.ChatModel
BedrockChatModel uses the Bedrock ConverseAPI.
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final BedrockChatRequestParametersprotected final List<dev.langchain4j.model.chat.listener.ChatModelListener> protected final software.amazon.awssdk.regions.Regionprotected final booleanprotected final booleanprotected final Set<dev.langchain4j.model.chat.Capability> protected final Duration -
Constructor Summary
ConstructorsConstructorDescriptionBedrockChatModel(BedrockChatModel.Builder builder) BedrockChatModel(String modelId) -
Method Summary
Modifier and TypeMethodDescriptionprotected software.amazon.awssdk.core.document.DocumentadditionalRequestModelFieldsFrom(dev.langchain4j.model.chat.request.ChatRequestParameters chatRequestParameters) protected dev.langchain4j.data.message.AiMessageaiMessageFrom(software.amazon.awssdk.services.bedrockruntime.model.ConverseResponse converseResponse) static BedrockChatModel.Builderbuilder()protected software.amazon.awssdk.services.bedrockruntime.model.ContentBlockconvertContent(dev.langchain4j.data.message.Content content) protected List<software.amazon.awssdk.services.bedrockruntime.model.ContentBlock> convertContents(List<dev.langchain4j.data.message.Content> contents) protected software.amazon.awssdk.services.bedrockruntime.model.MessageconvertToBedRockMessage(dev.langchain4j.data.message.ChatMessage message) protected List<software.amazon.awssdk.services.bedrockruntime.model.ContentBlock> convertToolRequests(List<dev.langchain4j.agent.tool.ToolExecutionRequest> requests) protected software.amazon.awssdk.services.bedrockruntime.model.MessagecreateAiMessage(dev.langchain4j.data.message.AiMessage message) protected software.amazon.awssdk.services.bedrockruntime.model.ContentBlockcreateImageBlock(dev.langchain4j.data.message.ImageContent imageContent) protected software.amazon.awssdk.services.bedrockruntime.model.ContentBlockcreateToolResultBlock(dev.langchain4j.data.message.ToolExecutionResultMessage toolResult) protected software.amazon.awssdk.services.bedrockruntime.model.MessagecreateUserMessage(dev.langchain4j.data.message.UserMessage message) protected static FloatdblToFloat(Double d) dev.langchain4j.model.chat.response.ChatResponsedoChat(dev.langchain4j.model.chat.request.ChatRequest request) protected static Stringprotected List<software.amazon.awssdk.services.bedrockruntime.model.Message> extractRegularMessages(List<dev.langchain4j.data.message.ChatMessage> messages) protected List<software.amazon.awssdk.services.bedrockruntime.model.Message> extractRegularMessages(List<dev.langchain4j.data.message.ChatMessage> messages, BedrockCachePointPlacement cachePointPlacement) protected List<software.amazon.awssdk.services.bedrockruntime.model.SystemContentBlock> extractSystemMessages(List<dev.langchain4j.data.message.ChatMessage> messages) protected List<software.amazon.awssdk.services.bedrockruntime.model.SystemContentBlock> extractSystemMessages(List<dev.langchain4j.data.message.ChatMessage> messages, BedrockCachePointPlacement cachePointPlacement) protected software.amazon.awssdk.services.bedrockruntime.model.ToolConfigurationextractToolConfigurationFrom(dev.langchain4j.model.chat.request.ChatRequest chatRequest) protected software.amazon.awssdk.services.bedrockruntime.model.ToolConfigurationextractToolConfigurationFrom(dev.langchain4j.model.chat.request.ChatRequest chatRequest, BedrockCachePointPlacement cachePointPlacement) protected dev.langchain4j.model.output.FinishReasonfinishReasonFrom(software.amazon.awssdk.services.bedrockruntime.model.StopReason stopReason) protected GuardrailAssessmentSummaryguardrailAssessmentSummaryFrom(software.amazon.awssdk.services.bedrockruntime.model.ConverseTrace trace) protected software.amazon.awssdk.services.bedrockruntime.model.GuardrailConfigurationguardrailConfigFrom(BedrockGuardrailConfiguration bedrockGuardrailConfiguration) protected software.amazon.awssdk.services.bedrockruntime.model.GuardrailStreamConfigurationguardrailStreamConfigFrom(BedrockGuardrailConfiguration bedrockGuardrailConfiguration) protected voidhandleToolResult(dev.langchain4j.data.message.ToolExecutionResultMessage toolResult, List<software.amazon.awssdk.services.bedrockruntime.model.ContentBlock> blocks, List<software.amazon.awssdk.services.bedrockruntime.model.Message> bedrockMessages, int currentIndex, List<dev.langchain4j.data.message.ChatMessage> allMessages) protected software.amazon.awssdk.services.bedrockruntime.model.InferenceConfigurationinferenceConfigFrom(dev.langchain4j.model.chat.request.ChatRequestParameters parameters) List<dev.langchain4j.model.chat.listener.ChatModelListener> protected static software.amazon.awssdk.services.bedrockruntime.model.OutputConfigoutputConfigFrom(dev.langchain4j.model.chat.request.ResponseFormat responseFormat) Builds OutputConfig for structured output support based on the ResponseFormat.dev.langchain4j.model.ModelProviderprovider()protected software.amazon.awssdk.services.bedrockruntime.model.ServiceTierserviceTierFor(BedrockServiceTier bedrockServiceTier) Set<dev.langchain4j.model.chat.Capability> protected BedrockTokenUsagetokenUsageFrom(software.amazon.awssdk.services.bedrockruntime.model.TokenUsage tokenUsage) protected static voidvalidate(dev.langchain4j.model.chat.request.ChatRequestParameters parameters) protected voidvalidateTotalCachePoints(List<dev.langchain4j.data.message.ChatMessage> messages, BedrockCachePointPlacement cachePointPlacement, boolean hasTools) Validates that the total number of cache points across all sources does not exceed the AWS Bedrock limit of 4 per request.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface dev.langchain4j.model.chat.ChatModel
chat, chat, chat, chat
-
Field Details
-
region
protected final software.amazon.awssdk.regions.Region region -
timeout
-
returnThinking
protected final boolean returnThinking -
sendThinking
protected final boolean sendThinking -
defaultRequestParameters
-
listeners
-
supportedCapabilities
-
-
Constructor Details
-
BedrockChatModel
-
BedrockChatModel
-
-
Method Details
-
doChat
public dev.langchain4j.model.chat.response.ChatResponse doChat(dev.langchain4j.model.chat.request.ChatRequest request) - Specified by:
doChatin interfacedev.langchain4j.model.chat.ChatModel
-
defaultRequestParameters
- Specified by:
defaultRequestParametersin interfacedev.langchain4j.model.chat.ChatModel
-
listeners
- Specified by:
listenersin interfacedev.langchain4j.model.chat.ChatModel
-
supportedCapabilities
- Specified by:
supportedCapabilitiesin interfacedev.langchain4j.model.chat.ChatModel
-
provider
public dev.langchain4j.model.ModelProvider provider()- Specified by:
providerin interfacedev.langchain4j.model.chat.ChatModel
-
builder
-
extractSystemMessages
-
extractSystemMessages
protected List<software.amazon.awssdk.services.bedrockruntime.model.SystemContentBlock> extractSystemMessages(List<dev.langchain4j.data.message.ChatMessage> messages, BedrockCachePointPlacement cachePointPlacement) -
extractRegularMessages
-
extractRegularMessages
protected List<software.amazon.awssdk.services.bedrockruntime.model.Message> extractRegularMessages(List<dev.langchain4j.data.message.ChatMessage> messages, BedrockCachePointPlacement cachePointPlacement) -
handleToolResult
protected void handleToolResult(dev.langchain4j.data.message.ToolExecutionResultMessage toolResult, List<software.amazon.awssdk.services.bedrockruntime.model.ContentBlock> blocks, List<software.amazon.awssdk.services.bedrockruntime.model.Message> bedrockMessages, int currentIndex, List<dev.langchain4j.data.message.ChatMessage> allMessages) -
createToolResultBlock
protected software.amazon.awssdk.services.bedrockruntime.model.ContentBlock createToolResultBlock(dev.langchain4j.data.message.ToolExecutionResultMessage toolResult) -
convertToBedRockMessage
protected software.amazon.awssdk.services.bedrockruntime.model.Message convertToBedRockMessage(dev.langchain4j.data.message.ChatMessage message) -
createUserMessage
protected software.amazon.awssdk.services.bedrockruntime.model.Message createUserMessage(dev.langchain4j.data.message.UserMessage message) -
createAiMessage
protected software.amazon.awssdk.services.bedrockruntime.model.Message createAiMessage(dev.langchain4j.data.message.AiMessage message) -
convertToolRequests
-
convertContents
-
convertContent
protected software.amazon.awssdk.services.bedrockruntime.model.ContentBlock convertContent(dev.langchain4j.data.message.Content content) -
createImageBlock
protected software.amazon.awssdk.services.bedrockruntime.model.ContentBlock createImageBlock(dev.langchain4j.data.message.ImageContent imageContent) -
extractToolConfigurationFrom
protected software.amazon.awssdk.services.bedrockruntime.model.ToolConfiguration extractToolConfigurationFrom(dev.langchain4j.model.chat.request.ChatRequest chatRequest) -
extractToolConfigurationFrom
protected software.amazon.awssdk.services.bedrockruntime.model.ToolConfiguration extractToolConfigurationFrom(dev.langchain4j.model.chat.request.ChatRequest chatRequest, BedrockCachePointPlacement cachePointPlacement) -
validateTotalCachePoints
protected void validateTotalCachePoints(List<dev.langchain4j.data.message.ChatMessage> messages, BedrockCachePointPlacement cachePointPlacement, boolean hasTools) Validates that the total number of cache points across all sources does not exceed the AWS Bedrock limit of 4 per request.- Parameters:
messages- the chat messagescachePointPlacement- the cache point placement strategy (may be null)hasTools- whether tools are configured- Throws:
IllegalArgumentException- if total cache points exceed 4
-
aiMessageFrom
protected dev.langchain4j.data.message.AiMessage aiMessageFrom(software.amazon.awssdk.services.bedrockruntime.model.ConverseResponse converseResponse) -
tokenUsageFrom
protected BedrockTokenUsage tokenUsageFrom(software.amazon.awssdk.services.bedrockruntime.model.TokenUsage tokenUsage) -
finishReasonFrom
protected dev.langchain4j.model.output.FinishReason finishReasonFrom(software.amazon.awssdk.services.bedrockruntime.model.StopReason stopReason) -
inferenceConfigFrom
protected software.amazon.awssdk.services.bedrockruntime.model.InferenceConfiguration inferenceConfigFrom(dev.langchain4j.model.chat.request.ChatRequestParameters parameters) -
guardrailConfigFrom
protected software.amazon.awssdk.services.bedrockruntime.model.GuardrailConfiguration guardrailConfigFrom(BedrockGuardrailConfiguration bedrockGuardrailConfiguration) -
guardrailStreamConfigFrom
protected software.amazon.awssdk.services.bedrockruntime.model.GuardrailStreamConfiguration guardrailStreamConfigFrom(BedrockGuardrailConfiguration bedrockGuardrailConfiguration) -
serviceTierFor
protected software.amazon.awssdk.services.bedrockruntime.model.ServiceTier serviceTierFor(BedrockServiceTier bedrockServiceTier) -
additionalRequestModelFieldsFrom
protected software.amazon.awssdk.core.document.Document additionalRequestModelFieldsFrom(dev.langchain4j.model.chat.request.ChatRequestParameters chatRequestParameters) -
guardrailAssessmentSummaryFrom
protected GuardrailAssessmentSummary guardrailAssessmentSummaryFrom(software.amazon.awssdk.services.bedrockruntime.model.ConverseTrace trace) -
validate
protected static void validate(dev.langchain4j.model.chat.request.ChatRequestParameters parameters) -
outputConfigFrom
protected static software.amazon.awssdk.services.bedrockruntime.model.OutputConfig outputConfigFrom(dev.langchain4j.model.chat.request.ResponseFormat responseFormat) Builds OutputConfig for structured output support based on the ResponseFormat. When a JSON schema is provided, it creates the appropriate TextFormat configuration.- Parameters:
responseFormat- the response format specification- Returns:
- OutputConfig if JSON format with schema is requested, null otherwise
-
dblToFloat
-
extractFilenameWithoutExtensionFromUri
-