Class AnthropicStreamingChatModel

java.lang.Object
dev.langchain4j.model.anthropic.AnthropicStreamingChatModel
All Implemented Interfaces:
dev.langchain4j.model.chat.StreamingChatLanguageModel

public class AnthropicStreamingChatModel extends Object implements dev.langchain4j.model.chat.StreamingChatLanguageModel
Represents an Anthropic language model with a Messages (chat) API. The model's response is streamed token by token and should be handled with StreamingResponseHandler.
More details are available here and here.

It supports Images as inputs. UserMessages can contain one or multiple ImageContents. Images must not be represented as URLs; they should be Base64-encoded strings and include a mimeType.

The content of SystemMessages is sent using the "system" parameter. If there are multiple SystemMessages, they are concatenated with a double newline (\n\n).

Sanitization is performed on the ChatMessages provided to ensure conformity with Anthropic API requirements. This includes ensuring the first message is a UserMessage and that there are no consecutive UserMessages. Any messages removed during sanitization are logged as warnings and not submitted to the API.

Does not support tools.
  • Nested Class Summary

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

    Modifier and Type
    Method
    Description
    void
    generate(List<dev.langchain4j.data.message.ChatMessage> messages, dev.langchain4j.agent.tool.ToolSpecification toolSpecification, dev.langchain4j.model.StreamingResponseHandler<dev.langchain4j.data.message.AiMessage> handler)
     
    void
    generate(List<dev.langchain4j.data.message.ChatMessage> messages, dev.langchain4j.model.StreamingResponseHandler<dev.langchain4j.data.message.AiMessage> handler)
     
    void
    generate(List<dev.langchain4j.data.message.ChatMessage> messages, List<dev.langchain4j.agent.tool.ToolSpecification> toolSpecifications, dev.langchain4j.model.StreamingResponseHandler<dev.langchain4j.data.message.AiMessage> handler)
     
    Deprecated.
    use builder() instead and explicitly set the model name and, if required, other 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.StreamingChatLanguageModel

    generate, generate
  • Method Details

    • withApiKey

      @Deprecated public static AnthropicStreamingChatModel withApiKey(String apiKey)
      Deprecated.
      use builder() instead and explicitly set the model name and, if required, other parameters.
    • generate

      public void generate(List<dev.langchain4j.data.message.ChatMessage> messages, dev.langchain4j.model.StreamingResponseHandler<dev.langchain4j.data.message.AiMessage> handler)
      Specified by:
      generate in interface dev.langchain4j.model.chat.StreamingChatLanguageModel
    • generate

      public void generate(List<dev.langchain4j.data.message.ChatMessage> messages, List<dev.langchain4j.agent.tool.ToolSpecification> toolSpecifications, dev.langchain4j.model.StreamingResponseHandler<dev.langchain4j.data.message.AiMessage> handler)
      Specified by:
      generate in interface dev.langchain4j.model.chat.StreamingChatLanguageModel
    • generate

      public void generate(List<dev.langchain4j.data.message.ChatMessage> messages, dev.langchain4j.agent.tool.ToolSpecification toolSpecification, dev.langchain4j.model.StreamingResponseHandler<dev.langchain4j.data.message.AiMessage> handler)
      Specified by:
      generate in interface dev.langchain4j.model.chat.StreamingChatLanguageModel