Amazon Bedrock
Maven 依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-bedrock</artifactId>
<version>1.3.0</version>
</dependency>
AWS 凭证
为了使用 Amazon Bedrock 模型,您需要配置 AWS 凭证。
其中一种选择是设置 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
环境变量。更多信息请参阅 这里。另外,也可以在本地设置 AWS_BEARER_TOKEN_BEDROCK
环境变量以进行 API 密钥认证。有关更多 API 密钥详细信息,请参阅 文档。
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(...)
.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(...)
.build())
.build();
示例
附加模型请求字段
BedrockChatRequestParameters
中的 additionalModelRequestFields
字段是一个 Map<String, Object>
。
正如这里所解释的,它允许为特定模型添加不包含在通用 InferenceConfiguration
中的推理参数。
思维/推理
要启用 Claude 的思维过程,请在 BedrockChatRequestParameters
上调用 enableReasoning
并设置它,然后在构建模型时通过 defaultRequestParameters
进行设置:
BedrockChatRequestParameters parameters = BedrockChatRequestParameters.builder()
.enableReasoning(1024) // 令牌预算
.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。- 默认启用。