[Python] **Error with st.session_state attribute**

Discussão em 'Python' iniciado por Stack, Janeiro 24, 2025.

  1. Stack

    Stack Membro Participativo

    I am new to python and streamlit and I am creating a bot to answer based on a vectorstore and i am using Langchain too. This is my part for the streamlit UI code and although I initialize the session state, I'm having an error related to it.

    if "generated" not in st.session_state:
    st.session_state["generated"] = []

    if "past" not in st.session_state:
    st.session_state["past"] = []

    if "stored_session" not in st.session_state:
    st.session_state["stored_session"] = []


    def get_text():
    input_text = st.text_input("You: ", st.session_state.get("input", "Hello, how are you?"), key="input",
    placeholder="Your Notion bot, ask me anything")
    return input_text

    def new_chat()
    save = []
    for i in range(len(st.session_state['generated'])-1, -1, -1):
    save.append("User:" + st.session_state["past"])
    save.append("Bot:" + st.session_state["generated"])
    st.session_state["stored_session"].append(save)
    st.session_state["generated"] = []
    st.session_state["past"] = []
    st.session_state["input"] = ""

    st.sidebar.button("New Chat", on_click=new_chat)

    user_input = get_text()

    if user_input:

    result = chain({"question": user_input})
    output = f"Answer: {result['answer']}"
    #output = f"Answer: {result['answer']}\nSources: {result['sources']}"

    st.session_state.past.append(user_input)
    st.session_state.generated.append(output)


    if st.session_state["generated"]:

    for i in range(len(st.session_state["generated"]) - 1, -1, -1):
    message(st.session_state["past"], is_user=True, key=str(i) + "_user")
    message(st.session_state["generated"], key=str(i))


    The error i get is : AttributeError: st.session_state has no attribute "past". Did you forget to initialize it? I am running the script in the terminal using streamlit run filename.py What could be the problem?

    Continue reading...

Compartilhe esta Página