Not-Grim-Refer/Reverse-Prompt-Engineering-Code
1
1from streamlit import container, text_input, spinner2from streamlit_chat import message3from src.langchain_agent import init, init_agent4 5# Initialize agent and streamlit page6init()7agent_executor = init_agent()8 9# Initialize session state variables10st.session_state.update({11 'messages': set(),12 'clarina': agent_executor,13 'generated': [],14 'temp': ""15})16 17def generate_response(user_input):18 # Handle user input19 if user_input:20 # Save user input21 st.session_state.messages.add(user_input)22 # Get response from agent23 with spinner("Thinking..."):24 response = st.session_state.clarina.reverse_prompt_engineer(user_input)25 # Save response26 st.session_state.messages.add(response)27 st.session_state.generated.append(response)28 29def main():30 # Container for chat history31 response_container = container()32 # Container for text box33 container = container()34 35 with container:36 def clear_text():37 """Callback function to clear input text box"""38 st.session_state.temp = st.session_state.user_input39 st.session_state.user_input = ""40 41 text_input("user input", key="user_input", placeholder="Enter your code here", label_visibility="hidden", on_change=clear_text) # Get user input42 generate_response(st.session_state.user_input) # Generate response43 44 # Display message history45 if st.session_state.generated:46 with response_container:47 messages = st.session_state.messages48 i = 049 while i < len(messages):50 # Display user input51 message(list(messages)[i], is_user=True, key=str(i) + '_user')52 i += 153 if i < len(messages):54 # Display response55 message(list(messages)[i], is_user=False, key=str(i) + '_ai')56 i += 157 58if __name__ == '__main__':59 main()