Spaces:
Runtime error
Runtime error
from typing import List | |
from langchain_core.chat_history import BaseChatMessageHistory | |
from langchain_core.messages import BaseMessage | |
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. | |
""" | |
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] | |
def messages(self) -> List[BaseMessage]: # type: ignore | |
"""Retrieve the current list of messages""" | |
return self._messages | |
def add_message(self, message: BaseMessage) -> None: | |
"""Add a message to the session memory""" | |
self._messages.append(message) | |
def clear(self) -> None: | |
"""Clear session memory""" | |
self._messages.clear() | |