跳到主要内容

Amazon Bedrock

Maven 依赖

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-bedrock</artifactId>
<version>1.0.0-beta3</version>
</dependency>

AWS 凭证

为了使用 Amazon Bedrock 模型,您需要配置 AWS 凭证。 其中一个选项是设置 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 环境变量。 更多信息可以在这里找到。

InvokeAPI 和 ConverseAPI 之间的区别

Amazon Bedrock 提供两种主要的模型调用 API 操作用于推理:

  • Converse – Amazon 推荐使用 Converse API,因为它提供了一致的 API,适用于所有支持消息的 Amazon Bedrock 模型。
  • InvokeModel – 最初旨在进行单次调用,以获取对单个提示的响应。

使用 ConverseAPI 的 ChatLanguageModel

当前实现不支持防护栏。

支持的模型及其功能可以在这里找到。

模型 ID 可以在这里找到。

配置

ChatLanguageModel model = BedrockChatModel.builder()
.modelId("us.amazon.nova-lite-v1:0")
.region(...)
.maxRetries(...)
.timeout(...)
.logRequests(...)
.logResponses(...)
.listeners(...)
.defaultRequestParameters(BedrockChatRequestParameters.builder()
.topP(...)
.temperature(...)
.maxOutputTokens(...)
.stopSequences(...)
.toolSpecifications(...)
.additionalModelRequestFields(...)
.build())
.build();

字段 additionalModelRequestFields 是一个 Map<String, Object>。如这里所解释的, 它允许为特定模型添加不被通用 inferenceConfig 覆盖的推理参数。 BedrockChatRequestParameters 有一个便捷方法,通过在 additionalModelRequestFields 中添加推理参数来启用 Claude 3.7 的思考过程。

Maven 依赖

<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>apache-client</artifactId>
<version>2.31.6</version>
</dependency>

示例

使用 ConverseAPI 的 StreamingChatLanguageModel

当前实现不支持防护栏。

支持的模型及其功能可以在这里找到。

模型 ID 可以在这里找到。

配置

StreamingChatLanguageModel model = BedrockStreamingChatModel.builder()
.modelId("us.amazon.nova-lite-v1:0")
.region(...)
.maxRetries(...)
.timeout(...)
.logRequests(...)
.logResponses(...)
.listeners(...)
.defaultRequestParameters(BedrockChatRequestParameters.builder()
.topP(...)
.temperature(...)
.maxOutputTokens(...)
.stopSequences(...)
.toolSpecifications(...)
.additionalModelRequestFields(...)
.build())
.build();

字段 additionalModelRequestFields 是一个 Map<String, Object>。如这里所解释的, 它允许为特定模型添加不被通用 inferenceConfig 覆盖的推理参数。 BedrockChatRequestParameters 有一个便捷方法,通过在 additionalModelRequestFields 中添加推理参数来启用 Claude 3.7 的思考过程。

Maven 依赖

<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>netty-nio-client</artifactId>
<version>2.31.6</version>
</dependency>

示例

使用 InvokeAPI 的 ChatLanguageModel

AI21 模型

  • BedrockAI21LabsChatModel(已弃用,请使用 BedrockChatModel

Anthropic 模型

  • BedrockAnthropicMessageChatModel:(已弃用,请使用 BedrockChatModel)支持新的 Messages API
  • BedrockAnthropicCompletionChatModel:(已弃用,请使用 BedrockChatModel)支持旧的 Text Completions API
  • BedrockAnthropicStreamingChatModel

示例:

ChatLanguageModel model = BedrockAnthropicMessageChatModel.builder()
.model("anthropic.claude-3-sonnet-20240229-v1:0")
.build();

Cohere 模型

  • BedrockCohereChatModel(已弃用,请使用 BedrockChatModel

Meta Llama 模型

  • BedrockLlamaChatModel(已弃用,请使用 BedrockChatModel

Mistral 模型

  • BedrockMistralAiChatModel(已弃用,请使用 BedrockChatModel

Titan 模型

  • BedrockTitanChatModel(已弃用,请使用 BedrockChatModel
  • BedrockTitanEmbeddingModel

示例