Class AnthropicStreamingChatModel

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

public class AnthropicStreamingChatModel extends Object implements 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.
  • Method Details

    • withApiKey

      public static AnthropicStreamingChatModel withApiKey(String apiKey)
      Creates an instance of AnthropicStreamingChatModel with the specified API key.
      Parameters:
      apiKey - the API key for authentication
      Returns:
      an AnthropicStreamingChatModel instance
    • generate

      public void generate(List<ChatMessage> messages, StreamingResponseHandler<AiMessage> handler)
      Description copied from interface: StreamingChatLanguageModel
      Generates a response from the model based on a sequence of messages. Typically, the sequence contains messages in the following order: System (optional) - User - AI - User - AI - User ...
      Specified by:
      generate in interface StreamingChatLanguageModel
      Parameters:
      messages - A list of messages.
      handler - The handler for streaming the response.