Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from app import agent # your CodeAgent instance | |
| from Gradio_UI import stream_to_gradio # generator yielding gr.ChatMessage objects | |
| st.set_page_config(page_title="CodeAgent Chat", layout="wide") | |
| st.title("CodeAgent Chat (Streamlit)") | |
| # Initialize session state for chat history. | |
| if "chat_history" not in st.session_state: | |
| st.session_state.chat_history = [] | |
| # Reset Chat button. | |
| if st.button("Reset Chat"): | |
| st.session_state.chat_history = [] | |
| st.rerun() # Rerun the script to update the UI immediately. | |
| # Display chat history using Streamlit's chat message container. | |
| for chat in st.session_state.chat_history: | |
| st.chat_message(chat["role"]).write(chat["content"]) | |
| # Use st.chat_input for user message entry. | |
| user_input = st.chat_input("Type your message here") | |
| if user_input: | |
| # Append and display the user's message. | |
| st.session_state.chat_history.append({"role": "user", "content": user_input}) | |
| st.chat_message("user").write(user_input) | |
| # Stream the agent responses. | |
| # The generator yields gr.ChatMessage objects that have 'role' and 'content' attributes. | |
| for msg in stream_to_gradio(agent, user_input, reset_agent_memory=False): | |
| role = msg.role | |
| # Convert non-string content to a string as needed. | |
| content = msg.content if isinstance(msg.content, str) else str(msg.content) | |
| st.session_state.chat_history.append({"role": role, "content": content}) | |
| st.chat_message(role).write(content) | |