Spaces:
Runtime error
Runtime error
Commit
·
f4bea37
1
Parent(s):
38df5e4
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,69 +1,59 @@
|
|
| 1 |
-
|
| 2 |
from streamlit_chat import message
|
| 3 |
from src.langchain_agent import init, init_agent
|
| 4 |
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
st.session_state.
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
#
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
st.session_state.messages.append(user_input)
|
| 29 |
-
# get response from agent
|
| 30 |
-
with st.spinner("Thinking..."):
|
| 31 |
-
response = st.session_state.clarina.reverse_prompt_engineer(user_input)
|
| 32 |
-
# save response
|
| 33 |
-
st.session_state.messages.append(response)
|
| 34 |
-
st.session_state.generated.append(response)
|
| 35 |
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
|
|
|
| 40 |
|
| 41 |
with container:
|
| 42 |
-
|
| 43 |
-
# initialize session state to clear input text box after user enters input
|
| 44 |
-
if "temp" not in st.session_state:
|
| 45 |
-
st.session_state.temp = ""
|
| 46 |
-
|
| 47 |
def clear_text():
|
| 48 |
-
"""
|
| 49 |
st.session_state.temp = st.session_state.user_input
|
| 50 |
st.session_state.user_input = ""
|
| 51 |
|
| 52 |
-
|
| 53 |
-
generate_response(st.session_state.
|
| 54 |
|
| 55 |
-
#
|
| 56 |
if st.session_state.generated:
|
| 57 |
-
|
| 58 |
with response_container:
|
| 59 |
-
messages = st.session_state.
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
|
|
|
|
|
|
| 67 |
|
| 68 |
if __name__ == '__main__':
|
| 69 |
-
main()
|
|
|
|
| 1 |
+
from streamlit import container, text_input, spinner
|
| 2 |
from streamlit_chat import message
|
| 3 |
from src.langchain_agent import init, init_agent
|
| 4 |
|
| 5 |
+
# Initialize agent and streamlit page
|
| 6 |
+
init()
|
| 7 |
+
agent_executor = init_agent()
|
| 8 |
+
|
| 9 |
+
# Initialize session state variables
|
| 10 |
+
st.session_state.update({
|
| 11 |
+
'messages': set(),
|
| 12 |
+
'clarina': agent_executor,
|
| 13 |
+
'generated': [],
|
| 14 |
+
'temp': ""
|
| 15 |
+
})
|
| 16 |
+
|
| 17 |
+
def generate_response(user_input):
|
| 18 |
+
# Handle user input
|
| 19 |
+
if user_input:
|
| 20 |
+
# Save user input
|
| 21 |
+
st.session_state.messages.add(user_input)
|
| 22 |
+
# Get response from agent
|
| 23 |
+
with spinner("Thinking..."):
|
| 24 |
+
response = st.session_state.clarina.reverse_prompt_engineer(user_input)
|
| 25 |
+
# Save response
|
| 26 |
+
st.session_state.messages.add(response)
|
| 27 |
+
st.session_state.generated.append(response)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
+
def main():
|
| 30 |
+
# Container for chat history
|
| 31 |
+
response_container = container()
|
| 32 |
+
# Container for text box
|
| 33 |
+
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_input
|
| 39 |
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 input
|
| 42 |
+
generate_response(st.session_state.user_input) # Generate response
|
| 43 |
|
| 44 |
+
# Display message history
|
| 45 |
if st.session_state.generated:
|
|
|
|
| 46 |
with response_container:
|
| 47 |
+
messages = st.session_state.messages
|
| 48 |
+
i = 0
|
| 49 |
+
while i < len(messages):
|
| 50 |
+
# Display user input
|
| 51 |
+
message(list(messages)[i], is_user=True, key=str(i) + '_user')
|
| 52 |
+
i += 1
|
| 53 |
+
if i < len(messages):
|
| 54 |
+
# Display response
|
| 55 |
+
message(list(messages)[i], is_user=False, key=str(i) + '_ai')
|
| 56 |
+
i += 1
|
| 57 |
|
| 58 |
if __name__ == '__main__':
|
| 59 |
+
main()
|