Upload index.py
Browse files
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.
|
32 |
-
st.session_state.backend_waiting
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
else:
|
54 |
-
|
|
|
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 |
-
|
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.
|
|
|
|
|
|
|
|
|
|
|
117 |
except requests.RequestException as e:
|
118 |
-
|
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 |
-
|
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()
|