jostlebot commited on
Commit
4da0cb5
·
verified ·
1 Parent(s): bf623c0

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +23 -8
src/streamlit_app.py CHANGED
@@ -127,10 +127,10 @@ To learn more about my work, visit:
127
  with st.form("setup_form"):
128
  st.header("Set Up Your Simulation")
129
 
130
- attachment_style = st.selectbox(
131
- "Select your attachment style:",
132
- ["Secure", "Anxious", "Avoidant", "Disorganized"]
133
- )
134
 
135
  scenario = st.text_area(
136
  "Describe the scenario you'd like to practice:",
@@ -152,7 +152,7 @@ with st.form("setup_form"):
152
  if submitted:
153
  # Store simulation parameters for debrief
154
  st.session_state.simulation_params = {
155
- "attachment_style": attachment_style,
156
  "scenario": scenario,
157
  "tone": tone,
158
  "goals": goals
@@ -161,7 +161,7 @@ with st.form("setup_form"):
161
  # Prepare system message with simulation parameters
162
  st.session_state.system_message = f"""
163
  You are a conversational partner helping someone practice difficult conversations.
164
- The user has a {attachment_style} attachment style and wants to practice: {scenario}
165
 
166
  Respond in a {tone} manner. Help them achieve their goals: {goals}
167
 
@@ -175,7 +175,7 @@ with st.form("setup_form"):
175
 
176
  **Goal Alignment**: [Reflect on how well they stayed aligned with their stated goal. Note small wins and struggles, affirm effort and awareness]
177
 
178
- **Attachment Insight**: [Offer one insight based on their {attachment_style} attachment style. Normalize the response as protective. Gently suggest a next growth step without shaming]
179
 
180
  **Practical Tool**: [Offer a brief NVC or DBT tool they could try next time (e.g., needs check-in, opposite action, self-validation, distress tolerance)]
181
 
@@ -200,6 +200,21 @@ else:
200
  for message in st.session_state.messages:
201
  with st.chat_message(message["role"]):
202
  st.markdown(message["content"])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
 
204
  # Chat input
205
  if prompt := st.chat_input("Type your message here (type 'debrief' or 'end roleplay' when ready to reflect)"):
@@ -215,7 +230,7 @@ else:
215
  # Add debrief request to messages
216
  prompt = f"""Please provide a therapeutic debrief for this roleplay session using:
217
 
218
- Attachment Style: {st.session_state.simulation_params['attachment_style']}
219
  Scenario: {st.session_state.simulation_params['scenario']}
220
  Goals: {st.session_state.simulation_params['goals']}
221
  AI Tone: {st.session_state.simulation_params['tone']}
 
127
  with st.form("setup_form"):
128
  st.header("Set Up Your Simulation")
129
 
130
+ tone_archetype = st.selectbox(
131
+ "Select the voice you'd like to engage with:",
132
+ ["Ghost", "Sycophant", "Critic"]
133
+ )
134
 
135
  scenario = st.text_area(
136
  "Describe the scenario you'd like to practice:",
 
152
  if submitted:
153
  # Store simulation parameters for debrief
154
  st.session_state.simulation_params = {
155
+ "tone_archetype": tone_archetype,
156
  "scenario": scenario,
157
  "tone": tone,
158
  "goals": goals
 
161
  # Prepare system message with simulation parameters
162
  st.session_state.system_message = f"""
163
  You are a conversational partner helping someone practice difficult conversations.
164
+ The user has a {tone_archetype} attachment style and wants to practice: {scenario}
165
 
166
  Respond in a {tone} manner. Help them achieve their goals: {goals}
167
 
 
175
 
176
  **Goal Alignment**: [Reflect on how well they stayed aligned with their stated goal. Note small wins and struggles, affirm effort and awareness]
177
 
178
+ **Attachment Insight**: [Offer one insight based on their {tone_archetype} attachment style. Normalize the response as protective. Gently suggest a next growth step without shaming]
179
 
180
  **Practical Tool**: [Offer a brief NVC or DBT tool they could try next time (e.g., needs check-in, opposite action, self-validation, distress tolerance)]
181
 
 
200
  for message in st.session_state.messages:
201
  with st.chat_message(message["role"]):
202
  st.markdown(message["content"])
203
+
204
+ # Optional somatic input logging
205
+ st.subheader("🧘 Somatic Reflection (Optional)")
206
+ somatic_input = st.text_input("What’s happening in your body right now?", key="soma_input")
207
+
208
+ if st.button("Log Somatic Entry"):
209
+ if 'soma_log' not in st.session_state:
210
+ st.session_state.soma_log = []
211
+ st.session_state.soma_log.append({
212
+ "timestamp": datetime.now().isoformat(),
213
+ "tone": st.session_state.simulation_params.get('tone_archetype', st.session_state.simulation_params.get('tone_archetype', 'Unknown')),
214
+ "somatic_input": somatic_input
215
+ })
216
+ st.success("Somatic reflection logged.")
217
+
218
 
219
  # Chat input
220
  if prompt := st.chat_input("Type your message here (type 'debrief' or 'end roleplay' when ready to reflect)"):
 
230
  # Add debrief request to messages
231
  prompt = f"""Please provide a therapeutic debrief for this roleplay session using:
232
 
233
+ Attachment Style: {st.session_state.simulation_params['tone_archetype']}
234
  Scenario: {st.session_state.simulation_params['scenario']}
235
  Goals: {st.session_state.simulation_params['goals']}
236
  AI Tone: {st.session_state.simulation_params['tone']}