Not-Grim-Refer commited on
Commit
f4bea37
1 Parent(s): 38df5e4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -54
app.py CHANGED
@@ -1,69 +1,59 @@
1
- import streamlit as st
2
  from streamlit_chat import message
3
  from src.langchain_agent import init, init_agent
4
 
5
- def main():
6
-
7
- #initialise agent and streamlit page
8
- init()
9
- agent_executor = init_agent()
10
-
11
- # initialize message history
12
- if "messages" not in st.session_state:
13
- st.session_state.messages = []
14
-
15
- # store agent in memory
16
- if "clarina" not in st.session_state:
17
- st.session_state.clarina = agent_executor
18
-
19
- # store generated responses in memory
20
- if 'generated' not in st.session_state:
21
- st.session_state.generated = []
22
-
23
- # define function to generate response
24
- def generate_response(user_input):
25
- # handle user input
26
- if user_input:
27
- # save user input
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
- # container for chat history
37
- response_container = st.container()
38
- # container for text box
39
- container = st.container()
 
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
- """callback function to clear input text box"""
49
  st.session_state.temp = st.session_state.user_input
50
  st.session_state.user_input = ""
51
 
52
- st.text_input("user input",key="user_input",placeholder = "Enter your code here", label_visibility="hidden",on_change=clear_text) # get user input
53
- generate_response(st.session_state.temp) # generate response
54
 
55
- # display message history
56
  if st.session_state.generated:
57
-
58
  with response_container:
59
- messages = st.session_state.get('messages', [])
60
- for i, msg in enumerate(messages):
61
- if i % 2 == 0:
62
- # display user input
63
- message(msg, is_user=True, key=str(i) + '_user')
64
- else:
65
- # display response
66
- message(msg, is_user=False, key=str(i) + '_ai')
 
 
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()