A class for managing chat message history using Xata.io client. It extends the BaseListChatMessageHistory class and provides methods to get, add, and clear messages. It also ensures the existence of a table where the chat messages are stored.

const chatHistory = new XataChatMessageHistory({
table: "messages",
sessionId: new Date().toISOString(),
client: new BaseClient({
databaseURL: process.env.XATA_DB_URL,
apiKey: process.env.XATA_API_KEY,
branch: "main",
}),
apiKey: process.env.XATA_API_KEY,
});

const chain = new ConversationChain({
llm: new ChatOpenAI(),
memory: new BufferMemory({ chatHistory }),
});

const response = await chain.invoke({
input: "What did I just say my name was?",
});
console.log({ response });

Type Parameters

  • XataClient extends BaseClient

Hierarchy

  • BaseListChatMessageHistory
    • XataChatMessageHistory

Constructors

Properties

client: XataClient

Methods

  • Parameters

    • message: string

    Returns Promise<void>

    Use addAIMessage instead

  • This is a convenience method for adding an AI message string to the store. Please note that this is a convenience method. Code should favor the bulk addMessages interface instead to save on round-trips to the underlying persistence layer. This method may be deprecated in a future release.

    Parameters

    • message: string

    Returns Promise<void>

  • Adds a new message to the database.

    Parameters

    • message: BaseMessage

      The BaseMessage instance to be added.

    Returns Promise<void>

    A promise that resolves when the message has been added.

  • Add a list of messages.

    Implementations should override this method to handle bulk addition of messages in an efficient manner to avoid unnecessary round-trips to the underlying store.

    Parameters

    • messages: BaseMessage[]

      A list of BaseMessage objects to store.

    Returns Promise<void>

  • This is a convenience method for adding a human message string to the store. Please note that this is a convenience method. Code should favor the bulk addMessages interface instead to save on round-trips to the underlying persistence layer. This method may be deprecated in a future release.

    Parameters

    • message: string

    Returns Promise<void>

  • Retrieves all messages associated with the session ID, ordered by creation time.

    Returns Promise<BaseMessage[]>

    A promise that resolves to an array of BaseMessage instances.

  • Returns Serialized