Entz commited on
Commit
5d54d5e
·
verified ·
1 Parent(s): 0e81284

Upload index.py

Browse files
Files changed (1) hide show
  1. index.py +49 -33
index.py CHANGED
@@ -28,30 +28,41 @@ def start_registration():
28
  print("Starting registration...")
29
  if "backend_waiting" not in st.session_state:
30
  st.session_state.backend_waiting = False
31
- if not st.session_state.backend_waiting:
32
- st.session_state.backend_waiting = True
33
- st.warning("Waiting up to 60secs for the backend to spin up. Please wait...")
34
- try:
35
- response = requests.post(f"{API_URL}/start_registration", timeout=60) # <----------
36
- response.raise_for_status()
37
- data = response.json()
38
- print("API Response:", data)
39
- st.session_state.session_id = data["session_id"]
40
- st.session_state.current_question = data["message"]
41
- st.session_state.feedback = ""
42
- st.session_state.summary = None
43
- st.session_state.answer = ""
44
- st.session_state.skip_address = False
45
- st.session_state.skip_phone = False
46
- st.session_state.prev_question = ""
47
- st.session_state.question_number = 1
48
- st.session_state.backend_waiting = False
49
- except requests.RequestException as e:
50
- print(f"Error starting registration: {e}")
51
- st.error(f"Error starting registration: {e}")
52
- st.session_state.backend_waiting = False
 
 
 
 
 
 
 
 
 
 
53
  else:
54
- st.warning("Backend is still waking up. Please wait...")
 
55
 
56
  def submit_response():
57
  if not st.session_state.session_id:
@@ -88,9 +99,13 @@ def submit_response():
88
  st.session_state.skip_address = False
89
  st.session_state.skip_phone = False
90
  st.rerun()
 
 
 
 
 
91
  except requests.RequestException as e:
92
- print(f"Error submitting response: {e}")
93
- st.error(f"Error submitting response: {e}")
94
 
95
  def edit_field(field, value):
96
  if not st.session_state.session_id:
@@ -111,12 +126,16 @@ def edit_field(field, value):
111
  st.session_state.summary = data.get("summary", st.session_state.summary)
112
  if data.get("message") == "Needs clarification":
113
  st.error(f"Clarification needed for {field}: {data['validation_feedback']}")
114
- elif data.get("message") == "Field updated successfully!":
115
  st.success("Database updated.")
116
- st.run()
 
 
 
 
 
117
  except requests.RequestException as e:
118
- print(f"Error editing field: {e}")
119
- st.error(f"Error editing field: {e}")
120
 
121
  def main():
122
  st.title("AI-Powered Registration System")
@@ -192,7 +211,7 @@ def main():
192
  if st.button("Submit", key="submit_button"):
193
  submit_response()
194
  else:
195
- print("Waiting for session to initialize...")
196
 
197
  if __name__ == "__main__":
198
  # Initialize session state
@@ -209,7 +228,4 @@ if __name__ == "__main__":
209
  st.session_state.question_number = 1
210
  st.session_state.backend_waiting = False
211
 
212
- if st.session_state.session_id is None:
213
- start_registration()
214
-
215
  main()
 
28
  print("Starting registration...")
29
  if "backend_waiting" not in st.session_state:
30
  st.session_state.backend_waiting = False
31
+ if "session_id" not in st.session_state or st.session_state.session_id is None:
32
+ if not st.session_state.backend_waiting:
33
+ st.session_state.backend_waiting = True
34
+ st.warning("Waiting up to 60 seconds for the backend to spin up. Please wait...")
35
+ try:
36
+ response = requests.post(f"{API_URL}/start_registration", timeout=60)
37
+ response.raise_for_status()
38
+ data = response.json()
39
+ print("API Response:", data)
40
+ st.session_state.session_id = data["session_id"]
41
+ st.session_state.current_question = data["message"]
42
+ st.session_state.feedback = ""
43
+ st.session_state.summary = None
44
+ st.session_state.answer = ""
45
+ st.session_state.skip_address = False
46
+ st.session_state.skip_phone = False
47
+ st.session_state.prev_question = ""
48
+ st.session_state.question_number = 1
49
+ st.session_state.backend_waiting = False
50
+ st.experimental_rerun() # Refresh to clear the warning
51
+ except requests.exceptions.HTTPError as e:
52
+ if e.response.status_code == 403:
53
+ st.session_state.backend_waiting = False
54
+ st.error("Backend unavailable, please try again later.")
55
+ else:
56
+ st.session_state.backend_waiting = False
57
+ st.error(f"Unexpected error: {e}")
58
+ except requests.RequestException as e:
59
+ st.session_state.backend_waiting = False
60
+ st.error("Connection issue, please try again later.")
61
+ else:
62
+ st.warning("Backend is still waking up. Please wait...")
63
  else:
64
+ # Backend is already spun up, no need to show waiting message
65
+ pass
66
 
67
  def submit_response():
68
  if not st.session_state.session_id:
 
99
  st.session_state.skip_address = False
100
  st.session_state.skip_phone = False
101
  st.rerun()
102
+ except requests.exceptions.HTTPError as e:
103
+ if e.response.status_code == 403:
104
+ st.error("Backend unavailable, please try again later.")
105
+ else:
106
+ st.error(f"Unexpected error: {e}")
107
  except requests.RequestException as e:
108
+ st.error("Connection issue, please try again later.")
 
109
 
110
  def edit_field(field, value):
111
  if not st.session_state.session_id:
 
126
  st.session_state.summary = data.get("summary", st.session_state.summary)
127
  if data.get("message") == "Needs clarification":
128
  st.error(f"Clarification needed for {field}: {data['validation_feedback']}")
129
+ elif data.get("message") == "Field updated successfully!"):
130
  st.success("Database updated.")
131
+ st.rerun()
132
+ except requests.exceptions.HTTPError as e:
133
+ if e.response.status_code == 403:
134
+ st.error("Backend unavailable, please try again later.")
135
+ else:
136
+ st.error(f"Unexpected error: {e}")
137
  except requests.RequestException as e:
138
+ st.error("Connection issue, please try again later.")
 
139
 
140
  def main():
141
  st.title("AI-Powered Registration System")
 
211
  if st.button("Submit", key="submit_button"):
212
  submit_response()
213
  else:
214
+ start_registration() # Call start_registration if no current question
215
 
216
  if __name__ == "__main__":
217
  # Initialize session state
 
228
  st.session_state.question_number = 1
229
  st.session_state.backend_waiting = False
230
 
 
 
 
231
  main()