Spaces:
Runtime error
Runtime error
from streamlit import container, text_input, spinner | |
from streamlit_chat import message | |
from src.langchain_agent import init, init_agent | |
# Initialize agent and streamlit page | |
init() | |
agent_executor = init_agent() | |
# Initialize session state variables | |
st.session_state.update({ | |
'messages': set(), | |
'clarina': agent_executor, | |
'generated': [], | |
'temp': "" | |
}) | |
def generate_response(user_input): | |
# Handle user input | |
if user_input: | |
# Save user input | |
st.session_state.messages.add(user_input) | |
# Get response from agent | |
with spinner("Thinking..."): | |
response = st.session_state.clarina.reverse_prompt_engineer(user_input) | |
# Save response | |
st.session_state.messages.add(response) | |
st.session_state.generated.append(response) | |
def main(): | |
# Container for chat history | |
response_container = container() | |
# Container for text box | |
container = container() | |
with container: | |
def clear_text(): | |
"""Callback function to clear input text box""" | |
st.session_state.temp = st.session_state.user_input | |
st.session_state.user_input = "" | |
text_input("user input", key="user_input", placeholder="Enter your code here", label_visibility="hidden", on_change=clear_text) # Get user input | |
generate_response(st.session_state.user_input) # Generate response | |
# Display message history | |
if st.session_state.generated: | |
with response_container: | |
messages = st.session_state.messages | |
i = 0 | |
while i < len(messages): | |
# Display user input | |
message(list(messages)[i], is_user=True, key=str(i) + '_user') | |
i += 1 | |
if i < len(messages): | |
# Display response | |
message(list(messages)[i], is_user=False, key=str(i) + '_ai') | |
i += 1 | |
if __name__ == '__main__': | |
main() |