[docs]classStreamlitChatMessageHistory(BaseChatMessageHistory):""" Chat message history that stores messages in Streamlit session state. Args: key: The key to use in Streamlit session state for storing messages. """
[docs]def__init__(self,key:str="langchain_messages"):try:importstreamlitasstexceptImportErrorase:raiseImportError("Unable to import streamlit, please run `pip install streamlit`.")fromeifkeynotinst.session_state:st.session_state[key]=[]self._messages=st.session_state[key]self._key=key
@propertydefmessages(self)->List[BaseMessage]:"""Retrieve the current list of messages"""returnself._messages@messages.setterdefmessages(self,value:List[BaseMessage])->None:"""Set the messages list with a new value"""importstreamlitasstst.session_state[self._key]=valueself._messages=st.session_state[self._key]
[docs]defadd_message(self,message:BaseMessage)->None:"""Add a message to the session memory"""self.messages.append(message)