Toggle Menu
Prev Up Next

# `langchain_community.chat_message_histories.tidb`.TiDBChatMessageHistory

class langchain_community.chat_message_histories.tidb.TiDBChatMessageHistory(session_id: str, connection_string: str, table_name: str = 'langchain_message_store', earliest_time: Optional[datetime] = None)

  Represents a chat message history stored in a TiDB database.

  Initializes a new instance of the TiDBChatMessageHistory class.

  Parameters

    - session_id (str) – The ID of the chat session.

    - connection_string (str) – The connection string for the TiDB database. format: mysql+pymysql://<host>:<PASSWORD>@<host>:4000/<db>?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true

    - table_name (str, optional) – the table name to store the chat messages. Defaults to “langchain_message_store”.

    - earliest_time (Optional[datetime], optional) – The earliest time to retrieve messages from. Defaults to None.

  Attributes

  `messages` | returns all messages

  Methods

  `__init__`(session_id, connection_string[, ...]) | Initializes a new instance of the TiDBChatMessageHistory class.
  `aadd_messages`(messages) | Add a list of messages.
  `aclear`() | Remove all messages from the store
  `add_ai_message`(message) | Convenience method for adding an AI message string to the store.
  `add_message`(message) | adds a message to the database and cache
  `add_messages`(messages) | Add a list of messages.
  `add_user_message`(message) | Convenience method for adding a human message string to the store.
  `aget_messages`() | Async version of getting messages.
  `clear`() | clears all messages
  `reload_cache`() | reloads messages from database to cache

  __init__(session_id: str, connection_string: str, table_name: str = 'langchain_message_store', earliest_time: Optional[datetime] = None)

    Initializes a new instance of the TiDBChatMessageHistory class.

    Parameters

      - session_id (str) – The ID of the chat session.

      - connection_string (str) – The connection string for the TiDB database. format: mysql+pymysql://<host>:<PASSWORD>@<host>:4000/<db>?ssl_ca=/etc/ssl/cert.pem&ssl_verify_cert=true&ssl_verify_identity=true

      - table_name (str, optional) – the table name to store the chat messages. Defaults to “langchain_message_store”.

      - earliest_time (Optional[datetime], optional) – The earliest time to retrieve messages from. Defaults to None.

  async aadd_messages(messages: Sequence[BaseMessage]) → None

    Add a list of messages.

    Parameters

      messages (Sequence[BaseMessage]) – A list of BaseMessage objects to store.

    Return type

      None

  async aclear() → None

    Remove all messages from the store

    Return type

      None

  add_ai_message(message: Union[AIMessage, str]) → None

    Convenience method for adding an AI message string to the store.

    Please note that this is a convenience method. Code should favor the bulk add_messages interface instead to save on round-trips to the underlying persistence layer.

    This method may be deprecated in a future release.

    Parameters

      message (Union[AIMessage, str]) – The AI message to add.

    Return type

      None

  add_message(message: BaseMessage) → None

    adds a message to the database and cache

    Parameters

      message (BaseMessage) –

    Return type

      None

  add_messages(messages: Sequence[BaseMessage]) → None

    Add a list of messages.

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

    Parameters

      messages (Sequence[BaseMessage]) – A list of BaseMessage objects to store.

    Return type

      None

  add_user_message(message: Union[HumanMessage, str]) → None

    Convenience method for adding a human message string to the store.

    Please note that this is a convenience method. Code should favor the bulk add_messages interface instead to save on round-trips to the underlying persistence layer.

    This method may be deprecated in a future release.

    Parameters

      message (Union[HumanMessage, str]) – The human message to add

    Return type

      None

  async aget_messages() → List[BaseMessage]

    Async version of getting messages.

    Can over-ride this method to provide an efficient async implementation.

    In general, fetching messages may involve IO to the underlying persistence layer.

    Return type

      List[BaseMessage]

  clear() → None

    clears all messages

    Return type

      None

  reload_cache() → None

    reloads messages from database to cache

    Return type

      None

# Examples using TiDBChatMessageHistory

- TiDB

- copy from tidb cloud console