cryogenic22 commited on
Commit
4cf66df
·
verified ·
1 Parent(s): 073f7c3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -6
app.py CHANGED
@@ -34,6 +34,15 @@ def init_session_state():
34
  st.session_state.current_conversation_id = None
35
  if 'analysis_results' not in st.session_state:
36
  st.session_state.analysis_results = []
 
 
 
 
 
 
 
 
 
37
 
38
  def show_chart_analysis_tab(claude_service, analysis_service, storage_manager):
39
  """Display chart analysis functionality"""
@@ -41,7 +50,26 @@ def show_chart_analysis_tab(claude_service, analysis_service, storage_manager):
41
  expertise_level = create_expertise_selector()
42
 
43
  # Create sidebar and get inputs
44
- upload_option, uploaded_files, patterns, indicators, comparison_type = create_sidebar()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
  # Main content area
47
  col1, col2 = st.columns([2, 1])
@@ -103,8 +131,13 @@ def show_chart_analysis_tab(claude_service, analysis_service, storage_manager):
103
  if response:
104
  st.session_state.chat_history.append(response)
105
  st.markdown(response['analysis'])
106
- # Save to storage
107
- storage_manager.save_chat(st.session_state.chat_history)
 
 
 
 
 
108
 
109
  # Then show individual analyses
110
  individual_analyses = [r for r in results if r.get('analysis_type') == 'Individual']
@@ -126,8 +159,13 @@ def show_chart_analysis_tab(claude_service, analysis_service, storage_manager):
126
  if response:
127
  st.session_state.chat_history.append(response)
128
  st.markdown(response['analysis'])
129
- # Save to storage
130
- storage_manager.save_chat(st.session_state.chat_history)
 
 
 
 
 
131
 
132
  # Risk warning at the bottom
133
  st.warning(
@@ -145,7 +183,8 @@ def show_chart_analysis_tab(claude_service, analysis_service, storage_manager):
145
  filename = storage_manager.save_chat(
146
  st.session_state.chat_history,
147
  st.session_state.current_images[0] if st.session_state.current_images else None,
148
- f"{save_name}.json" if save_name else None
 
149
  )
150
  if filename:
151
  st.success(f"Chat saved as {filename}")
 
34
  st.session_state.current_conversation_id = None
35
  if 'analysis_results' not in st.session_state:
36
  st.session_state.analysis_results = []
37
+
38
+ def reset_session_state():
39
+ """Reset session state for a new chat"""
40
+ st.session_state.chat_history = []
41
+ st.session_state.current_image = None
42
+ st.session_state.current_analysis = None
43
+ st.session_state.current_images = []
44
+ st.session_state.analysis_results = []
45
+ st.session_state.conversation_context = []
46
 
47
  def show_chart_analysis_tab(claude_service, analysis_service, storage_manager):
48
  """Display chart analysis functionality"""
 
50
  expertise_level = create_expertise_selector()
51
 
52
  # Create sidebar and get inputs
53
+ result = create_sidebar()
54
+
55
+ # Check if we need to start a new chat
56
+ if result[0] == "new_chat":
57
+ # Save current chat if there's content
58
+ if st.session_state.chat_history:
59
+ storage_manager.save_chat(
60
+ st.session_state.chat_history,
61
+ st.session_state.current_images,
62
+ st.session_state.get('last_saved_chat'),
63
+ claude_service # Pass claude_service for smart naming
64
+ )
65
+ st.success("Previous chat saved! Starting new chat...")
66
+
67
+ # Reset session state
68
+ reset_session_state()
69
+ st.rerun()
70
+
71
+ # Unpack the sidebar results
72
+ upload_option, uploaded_files, patterns, indicators, comparison_type = result
73
 
74
  # Main content area
75
  col1, col2 = st.columns([2, 1])
 
131
  if response:
132
  st.session_state.chat_history.append(response)
133
  st.markdown(response['analysis'])
134
+ # Save to storage with smart naming
135
+ storage_manager.save_chat(
136
+ st.session_state.chat_history,
137
+ st.session_state.current_images,
138
+ None,
139
+ claude_service
140
+ )
141
 
142
  # Then show individual analyses
143
  individual_analyses = [r for r in results if r.get('analysis_type') == 'Individual']
 
159
  if response:
160
  st.session_state.chat_history.append(response)
161
  st.markdown(response['analysis'])
162
+ # Save to storage with smart naming
163
+ storage_manager.save_chat(
164
+ st.session_state.chat_history,
165
+ st.session_state.current_images,
166
+ None,
167
+ claude_service
168
+ )
169
 
170
  # Risk warning at the bottom
171
  st.warning(
 
183
  filename = storage_manager.save_chat(
184
  st.session_state.chat_history,
185
  st.session_state.current_images[0] if st.session_state.current_images else None,
186
+ f"{save_name}.json" if save_name else None,
187
+ claude_service
188
  )
189
  if filename:
190
  st.success(f"Chat saved as {filename}")