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) | |