IAMTFRMZA commited on
Commit
f9aa563
·
verified ·
1 Parent(s): 2b8b374

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -9
app.py CHANGED
@@ -19,13 +19,16 @@ else:
19
 
20
  ASSISTANT_ID = "asst_Iu6cCU4CyugmAD2yPgktyivH"
21
 
22
- # Initialize session state for chat history
23
  if "messages" not in st.session_state:
24
- st.session_state["messages"] = []
 
 
25
 
26
- # Clear chat button above chat input
27
  if st.button("Clear Chat", use_container_width=True):
28
  st.session_state.messages = []
 
29
  st.rerun()
30
 
31
  # Display chat history
@@ -39,11 +42,14 @@ if prompt := st.chat_input():
39
  st.chat_message("user").write(prompt)
40
 
41
  try:
42
- # Create a new thread for conversation
43
- thread = client.beta.threads.create()
44
- thread_id = thread.id
 
 
 
45
 
46
- # Send user message to OpenAI API
47
  client.beta.threads.messages.create(
48
  thread_id=thread_id,
49
  role="user",
@@ -65,13 +71,17 @@ if prompt := st.chat_input():
65
 
66
  # Retrieve assistant response
67
  messages = client.beta.threads.messages.list(thread_id=thread_id)
68
- assistant_message = messages.data[0].content[0].text.value
 
 
 
 
69
 
70
  # Display assistant's response
71
  st.chat_message("assistant").write(assistant_message)
72
 
73
  # Store in session state
74
  st.session_state.messages.append({"role": "assistant", "content": assistant_message})
75
-
76
  except Exception as e:
77
  st.error(f"Error: {str(e)}")
 
19
 
20
  ASSISTANT_ID = "asst_Iu6cCU4CyugmAD2yPgktyivH"
21
 
22
+ # Initialize session state
23
  if "messages" not in st.session_state:
24
+ st.session_state.messages = []
25
+ if "thread_id" not in st.session_state:
26
+ st.session_state.thread_id = None
27
 
28
+ # Clear chat button
29
  if st.button("Clear Chat", use_container_width=True):
30
  st.session_state.messages = []
31
+ st.session_state.thread_id = None
32
  st.rerun()
33
 
34
  # Display chat history
 
42
  st.chat_message("user").write(prompt)
43
 
44
  try:
45
+ # Create a new thread only if one doesn't exist yet
46
+ if st.session_state.thread_id is None:
47
+ thread = client.beta.threads.create()
48
+ st.session_state.thread_id = thread.id
49
+
50
+ thread_id = st.session_state.thread_id
51
 
52
+ # Send user message to OpenAI API in the existing thread
53
  client.beta.threads.messages.create(
54
  thread_id=thread_id,
55
  role="user",
 
71
 
72
  # Retrieve assistant response
73
  messages = client.beta.threads.messages.list(thread_id=thread_id)
74
+ # Get the most recent assistant message
75
+ for message in reversed(messages.data):
76
+ if message.role == "assistant":
77
+ assistant_message = message.content[0].text.value
78
+ break
79
 
80
  # Display assistant's response
81
  st.chat_message("assistant").write(assistant_message)
82
 
83
  # Store in session state
84
  st.session_state.messages.append({"role": "assistant", "content": assistant_message})
85
+
86
  except Exception as e:
87
  st.error(f"Error: {str(e)}")