Class Chat

java.lang.Object
com.google.genai.Chat

public class Chat extends Object
A chat session with a generative model.

This class provides a way to interact with a generative model in a multi-turn chat session. It keeps track of the chat history and uses it to provide context for subsequent messages.

Note: this class is NOT thread-safe.

  • Method Details

    • sendMessage

      public GenerateContentResponse sendMessage(String text, GenerateContentConfig config)
      Sends a message to the model in the current multi-turn chat session and returns the model's response.

      This appends the message and the model's response to the chat history, which is sent back to the model in subsequent calls to sendMessage. Be sure to initialize a chat session using chats.create() before calling sendMessage.

      Parameters:
      text - the text to send to the generative model
      config - a GenerateContentConfig instance that specifies the optional configurations
    • sendMessage

      public GenerateContentResponse sendMessage(String text)
      Sends a message to the model in the current multi-turn chat session and returns the model's response.

      This appends the message and the model's response to the chat history, which is sent back to the model in subsequent calls to sendMessage. Be sure to initialize a chat session using chats.create() before calling sendMessage.

      Parameters:
      text - the text to send to the generative model
    • sendMessage

      public GenerateContentResponse sendMessage(Content content, GenerateContentConfig config)
      Sends a message to the model in the current multi-turn chat session and returns the model's response.

      This appends the message and the model's response to the chat history, which is sent back to the model in subsequent calls to sendMessage. Be sure to initialize a chat session using chats.create() before calling sendMessage.

      Parameters:
      content - a Content to send to the generative model
      config - a GenerateContentConfig instance that specifies the optional configurations
    • sendMessage

      public GenerateContentResponse sendMessage(Content content)
      Sends a message to the model in the current multi-turn chat session and returns the model's response.

      This appends the message and the model's response to the chat history, which is sent back to the model in subsequent calls to sendMessage. Be sure to initialize a chat session using chats.create() before calling sendMessage.

      Parameters:
      content - a Content to send to the generative model
    • sendMessage

      public GenerateContentResponse sendMessage(List<Content> contents, GenerateContentConfig config)
      Sends a message to the model in the current multi-turn chat session and returns the model's response.

      This appends the message and the model's response to the chat history, which is sent back to the model in subsequent calls to sendMessage. Be sure to initialize a chat session using chats.create() before calling sendMessage.

      Parameters:
      contents - a List<Content> to send to the generative model
      config - a GenerateContentConfig instance that specifies the optional configurations
    • sendMessage

      public GenerateContentResponse sendMessage(List<Content> contents)
      Sends a message to the model in the current multi-turn chat session and returns the model's response.

      This appends the message and the model's response to the chat history, which is sent back to the model in subsequent calls to sendMessage. Be sure to initialize a chat session using chats.create() before calling sendMessage.

      Parameters:
      contents - a List<Content> to send to the generative model
    • sendMessageStream

      public ResponseStream<GenerateContentResponse> sendMessageStream(String text, GenerateContentConfig config)
      Sends a message to the model in the current multi-turn chat session and returns a stream of responses.

      This appends the message and the model's response to the chat history after the stream is consumed. Be sure to initialize a chat session using chats.create() before calling sendMessageStream.

      Parameters:
      text - the text to send to the generative model
      config - a GenerateContentConfig instance that specifies the optional configurations *
    • sendMessageStream

      public ResponseStream<GenerateContentResponse> sendMessageStream(String text)
      Sends a message to the model in the current multi-turn chat session and returns a stream of responses.

      This appends the message and the model's response to the chat history after the stream is consumed. Be sure to initialize a chat session using chats.create() before calling sendMessageStream.

      Parameters:
      text - the text to send to the generative model
    • sendMessageStream

      public ResponseStream<GenerateContentResponse> sendMessageStream(Content content, GenerateContentConfig config)
      Sends a message to the model in the current multi-turn chat session and returns a stream of responses.

      This appends the message and the model's response to the chat history after the stream is consumed. Be sure to initialize a chat session using chats.create() before calling sendMessageStream.

      Parameters:
      content - a Content to send to the generative model
      config - a GenerateContentConfig instance that specifies the optional configurations *
    • sendMessageStream

      public ResponseStream<GenerateContentResponse> sendMessageStream(Content content)
      Sends a message to the model in the current multi-turn chat session and returns a stream of responses.

      This appends the message and the model's response to the chat history after the stream is consumed. Be sure to initialize a chat session using chats.create() before calling sendMessageStream.

      Parameters:
      content - a Content to send to the generative model
    • sendMessageStream

      public ResponseStream<GenerateContentResponse> sendMessageStream(List<Content> contents, GenerateContentConfig config)
      Sends a message to the model in the current multi-turn chat session and returns a stream of responses.

      This appends the message and the model's response to the chat history after the stream is consumed. Be sure to initialize a chat session using chats.create() before calling sendMessageStream.

      Parameters:
      contents - a List<Content> to send to the generative model
      config - a GenerateContentConfig instance that specifies the optional configurations
    • sendMessageStream

      public ResponseStream<GenerateContentResponse> sendMessageStream(List<Content> contents)
      Sends a message to the model in the current multi-turn chat session and returns the model's response.

      This appends the message and the model's response to the chat history after the stream is consumed. Be sure to initialize a chat session using chats.create() before calling sendMessageStream.m

      Parameters:
      contents - a List<Content> to send to the generative model the optional configurations
    • getHistory

      public com.google.common.collect.ImmutableList<Content> getHistory(boolean curated)
      Returns the chat history.
      Parameters:
      curated - Whether to return the curated history or the comprehensive history. Comprehensive history includes all messages, including empty or invalid parts. Curated history excludes empty or invalid parts.