Class BedrockStreamingChatModel

java.lang.Object
dev.langchain4j.model.bedrock.BedrockStreamingChatModel
All Implemented Interfaces:
dev.langchain4j.model.chat.StreamingChatModel

public class BedrockStreamingChatModel extends Object implements dev.langchain4j.model.chat.StreamingChatModel
BedrockStreamingChatModel uses the Bedrock ConverseAPI.
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
    protected final List<dev.langchain4j.model.chat.listener.ChatModelListener>
     
    protected final software.amazon.awssdk.regions.Region
     
    protected final boolean
     
    protected final boolean
     
    protected final Duration
     
  • Constructor Summary

    Constructors
  • Method Summary

    Modifier and Type
    Method
    Description
    protected software.amazon.awssdk.core.document.Document
    additionalRequestModelFieldsFrom(dev.langchain4j.model.chat.request.ChatRequestParameters chatRequestParameters)
     
    protected dev.langchain4j.data.message.AiMessage
    aiMessageFrom(software.amazon.awssdk.services.bedrockruntime.model.ConverseResponse converseResponse)
     
     
    protected software.amazon.awssdk.services.bedrockruntime.model.ContentBlock
    convertContent(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.Message
    convertToBedRockMessage(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.Message
    createAiMessage(dev.langchain4j.data.message.AiMessage message)
     
    protected software.amazon.awssdk.services.bedrockruntime.model.ContentBlock
    createImageBlock(dev.langchain4j.data.message.ImageContent imageContent)
     
    protected software.amazon.awssdk.services.bedrockruntime.model.ContentBlock
    createToolResultBlock(dev.langchain4j.data.message.ToolExecutionResultMessage toolResult)
     
    protected software.amazon.awssdk.services.bedrockruntime.model.Message
    createUserMessage(dev.langchain4j.data.message.UserMessage message)
     
    protected static Float
     
     
    void
    doChat(dev.langchain4j.model.chat.request.ChatRequest chatRequest, dev.langchain4j.model.chat.response.StreamingChatResponseHandler handler)
     
    protected static String
     
    protected 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.ToolConfiguration
    extractToolConfigurationFrom(dev.langchain4j.model.chat.request.ChatRequest chatRequest)
     
    protected software.amazon.awssdk.services.bedrockruntime.model.ToolConfiguration
    extractToolConfigurationFrom(dev.langchain4j.model.chat.request.ChatRequest chatRequest, BedrockCachePointPlacement cachePointPlacement)
     
    protected dev.langchain4j.model.output.FinishReason
    finishReasonFrom(software.amazon.awssdk.services.bedrockruntime.model.StopReason stopReason)
     
    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)
     
    protected software.amazon.awssdk.services.bedrockruntime.model.InferenceConfiguration
    inferenceConfigFrom(dev.langchain4j.model.chat.request.ChatRequestParameters parameters)
     
    List<dev.langchain4j.model.chat.listener.ChatModelListener>
     
    dev.langchain4j.model.ModelProvider
     
    protected dev.langchain4j.model.output.TokenUsage
    tokenUsageFrom(software.amazon.awssdk.services.bedrockruntime.model.TokenUsage tokenUsage)
     
    protected static void
    validate(dev.langchain4j.model.chat.request.ChatRequestParameters parameters)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface dev.langchain4j.model.chat.StreamingChatModel

    chat, chat, chat, supportedCapabilities
  • Field Details

    • region

      protected final software.amazon.awssdk.regions.Region region
    • timeout

      protected final Duration timeout
    • returnThinking

      protected final boolean returnThinking
    • sendThinking

      protected final boolean sendThinking
    • defaultRequestParameters

      protected final BedrockChatRequestParameters defaultRequestParameters
    • listeners

      protected final List<dev.langchain4j.model.chat.listener.ChatModelListener> listeners
  • Constructor Details

  • Method Details

    • doChat

      public void doChat(dev.langchain4j.model.chat.request.ChatRequest chatRequest, dev.langchain4j.model.chat.response.StreamingChatResponseHandler handler)
      Specified by:
      doChat in interface dev.langchain4j.model.chat.StreamingChatModel
    • defaultRequestParameters

      public BedrockChatRequestParameters defaultRequestParameters()
      Specified by:
      defaultRequestParameters in interface dev.langchain4j.model.chat.StreamingChatModel
    • listeners

      public List<dev.langchain4j.model.chat.listener.ChatModelListener> listeners()
      Specified by:
      listeners in interface dev.langchain4j.model.chat.StreamingChatModel
    • provider

      public dev.langchain4j.model.ModelProvider provider()
      Specified by:
      provider in interface dev.langchain4j.model.chat.StreamingChatModel
    • builder

      public static BedrockStreamingChatModel.Builder builder()
    • extractSystemMessages

      protected List<software.amazon.awssdk.services.bedrockruntime.model.SystemContentBlock> extractSystemMessages(List<dev.langchain4j.data.message.ChatMessage> messages)
    • extractSystemMessages

      protected List<software.amazon.awssdk.services.bedrockruntime.model.SystemContentBlock> extractSystemMessages(List<dev.langchain4j.data.message.ChatMessage> messages, BedrockCachePointPlacement cachePointPlacement)
    • extractRegularMessages

      protected List<software.amazon.awssdk.services.bedrockruntime.model.Message> extractRegularMessages(List<dev.langchain4j.data.message.ChatMessage> messages)
    • 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

      protected List<software.amazon.awssdk.services.bedrockruntime.model.ContentBlock> convertToolRequests(List<dev.langchain4j.agent.tool.ToolExecutionRequest> requests)
    • convertContents

      protected List<software.amazon.awssdk.services.bedrockruntime.model.ContentBlock> convertContents(List<dev.langchain4j.data.message.Content> contents)
    • 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)
    • aiMessageFrom

      protected dev.langchain4j.data.message.AiMessage aiMessageFrom(software.amazon.awssdk.services.bedrockruntime.model.ConverseResponse converseResponse)
    • tokenUsageFrom

      protected dev.langchain4j.model.output.TokenUsage 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)
    • additionalRequestModelFieldsFrom

      protected software.amazon.awssdk.core.document.Document additionalRequestModelFieldsFrom(dev.langchain4j.model.chat.request.ChatRequestParameters chatRequestParameters)
    • validate

      protected static void validate(dev.langchain4j.model.chat.request.ChatRequestParameters parameters)
    • dblToFloat

      protected static Float dblToFloat(Double d)
    • extractFilenameWithoutExtensionFromUri

      protected static String extractFilenameWithoutExtensionFromUri(URI uri)