import asyncio import streamlit as st from agent import Agent def main() -> None: st.set_page_config(page_title="AI Chat Assistant", page_icon="🤖") st.title("AI Chat Assistant 🤖") # adding agent object to session state to persist across sessions # stramlit reruns the script on every user interaction if "agent" not in st.session_state: st.session_state["agent"] = Agent() # initialize chat history if "messages" not in st.session_state: st.session_state["messages"] = [] # displying chat history messages for message in st.session_state["messages"]: with st.chat_message(message["role"]): st.markdown(message["content"]) prompt = st.chat_input("Type a message...") if prompt: st.session_state["messages"].append({"role": "user", "content": prompt}) with st.chat_message("user"): st.markdown(prompt) response = asyncio.run(st.session_state["agent"].chat(prompt)) st.session_state["messages"].append({"role": "assistant", "content": response}) with st.chat_message("assistant"): st.markdown(response) if __name__ == "__main__": main()