Source code for langchain_community.chat_message_histories.streamlit

from typing import List

from langchain_core.chat_history import BaseChatMessageHistory
from langchain_core.messages import BaseMessage


[docs]class StreamlitChatMessageHistory(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: import streamlit as st except ImportError as e: raise ImportError( "Unable to import streamlit, please run `pip install streamlit`." ) from e if key not in st.session_state: st.session_state[key] = [] self._messages = st.session_state[key] self._key = key
@property def messages(self) -> List[BaseMessage]: """Retrieve the current list of messages""" return self._messages @messages.setter def messages(self, value: List[BaseMessage]) -> None: """Set the messages list with a new value""" import streamlit as st st.session_state[self._key] = value self._messages = st.session_state[self._key]
[docs] def add_message(self, message: BaseMessage) -> None: """Add a message to the session memory""" self.messages.append(message)
[docs] def clear(self) -> None: """Clear session memory""" self.messages.clear()