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): """在Streamlit会话状态中存储消息的聊天消息历史记录。 参数: key: 用于在Streamlit会话状态中存储消息的键。"""
[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]: """获取当前消息列表""" return self._messages @messages.setter def messages(self, value: List[BaseMessage]) -> None: """设置消息列表为新值""" 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: """向会话内存添加一条消息""" self.messages.append(message)
[docs] def clear(self) -> None: """清除会话内存""" self.messages.clear()