Amazon Bedrock
Maven 依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-bedrock</artifactId>
<version>1.13.0</version>
</dependency>
AWS 凭证
使用 Amazon Bedrock 模型需要配置 AWS 凭证。
一种方式是设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量,详情请参阅此处。
也可在本地设置 AWS_BEARER_TOKEN_BEDROCK 环境变量以进行 API Key 认证,更多 API Key 详情请参阅文档。
BedrockChatModel
备注
当前实现不支持 Guardrails。
支持的模型及其功能可在此处查找。
模型 ID 可在此处查找。
配置
ChatModel model = BedrockChatModel.builder()
.client(BedrockRuntimeClient)
.region(...)
.modelId("us.amazon.nova-lite-v1:0")
.returnThinking(...)
.sendThinking(...)
.timeout(...)
.maxRetries(...)
.logRequests(...)
.logResponses(...)
.listeners(...)
.defaultRequestParameters(BedrockChatRequestParameters.builder()
.modelName(...)
.temperature(...)
.topP(...)
.maxOutputTokens(...)
.stopSequences(...)
.toolSpecifications(...)
.toolChoice(...)
.additionalModelRequestFields(...)
.additionalModelRequestField(...)
.enableReasoning(...)
.promptCaching(...)
.build())
.build();
示例
BedrockStreamingChatModel
备注
当前实现不支持 Guardrails。
支持的模型及其功能可在此处查找。
模型 ID 可在此处查找。
配置
StreamingChatModel model = BedrockStreamingChatModel.builder()
.client(BedrockRuntimeAsyncClient)
.region(...)
.modelId("us.amazon.nova-lite-v1:0")
.returnThinking(...)
.sendThinking(...)
.timeout(...)
.logRequests(...)
.logResponses(...)
.listeners(...)
.defaultRequestParameters(BedrockChatRequestParameters.builder()
.modelName(...)
.temperature(...)
.topP(...)
.maxOutputTokens(...)
.stopSequences(...)
.toolSpecifications(...)
.toolChoice(...)
.additionalModelRequestFields(...)
.additionalModelRequestField(...)
.enableReasoning(...)
.promptCaching(...)
.build())
.build();
示例
附加模型请求字段
BedrockChatRequestParameters 中的 additionalModelRequestFields 字段类型为 Map<String, Object>。
如此处所述,
它允许为特定模型添加通用 InferenceConfiguration 未涵盖的推理参数。
思考 / 推理
要启用 Claude 的思考过程,请在 BedrockChatRequestParameters 上调用 enableReasoning,
并在构建模型时通过 defaultRequestParameters 传入 :
BedrockChatRequestParameters parameters = BedrockChatRequestParameters.builder()
.enableReasoning(1024) // token 预算
.build();
ChatModel model = BedrockChatModel.builder()
.modelId("us.anthropic.claude-sonnet-4-20250514-v1:0")
.defaultRequestParameters(parameters)
.returnThinking(true)
.sendThinking(true)
.build();
以下参数也控制思考行为:
returnThinking:控制是否在AiMessage.thinking()中返回思考内容(如果可用),以及在使用BedrockStreamingChatModel时是否触发StreamingChatResponseHandler.onPartialThinking()和TokenStream.onPartialThinking()回调。默认禁用。启用后,思考签名也会存储在AiMessage.attributes()中并随之返回。sendThinking:控制是否将存储在AiMessage中的思考内容和签名发送给后续请求中的 LLM。默认启用。
提示缓存
AWS Bedrock 支持提示缓存,可在使用相同提示重复调用 API 时提高性能并降低成本。此功能可将延迟降低最多 85%,缓存内容的成本降低最多 90%。