Spaces:
Sleeping
Sleeping
changes made to app.py
Browse files
app.py
CHANGED
@@ -141,7 +141,7 @@ def start_interview(name, domain, company, level):
|
|
141 |
state = reset_state(name, domain, company, level)
|
142 |
prompt = f"Domain: {domain}. Candidate experience level: {level}. Generate the first question:"
|
143 |
question = generate_question(prompt, domain, state)
|
144 |
-
state["conversation"].append(
|
145 |
return state["conversation"], state
|
146 |
|
147 |
def submit_response(response, state):
|
@@ -149,14 +149,14 @@ def submit_response(response, state):
|
|
149 |
return state["conversation"], state
|
150 |
|
151 |
if not response.strip():
|
152 |
-
state["conversation"].append(
|
153 |
return state["conversation"], state
|
154 |
|
155 |
if response.strip().lower() == "exit":
|
156 |
return end_interview(state)
|
157 |
|
158 |
-
state["conversation"].append(
|
159 |
-
last_q = [
|
160 |
rating, suggestion = evaluate_response(response, last_q)
|
161 |
|
162 |
state["evaluations"].append({
|
@@ -166,10 +166,10 @@ def submit_response(response, state):
|
|
166 |
"suggestion": suggestion
|
167 |
})
|
168 |
|
169 |
-
state["conversation"].append(
|
170 |
prompt = f"Domain: {state['domain']}. Candidate's last response: {response}. Generate a follow-up question:"
|
171 |
follow_up = generate_question(prompt, state["domain"], state)
|
172 |
-
state["conversation"].append(
|
173 |
return state["conversation"], state
|
174 |
|
175 |
def end_interview(state):
|
@@ -195,7 +195,7 @@ def end_interview(state):
|
|
195 |
with open(filename, "w") as f:
|
196 |
json.dump(summary, f, indent=4)
|
197 |
|
198 |
-
state["conversation"].append(
|
199 |
return state["conversation"], state
|
200 |
|
201 |
def clear_state():
|
|
|
141 |
state = reset_state(name, domain, company, level)
|
142 |
prompt = f"Domain: {domain}. Candidate experience level: {level}. Generate the first question:"
|
143 |
question = generate_question(prompt, domain, state)
|
144 |
+
state["conversation"].append({"role": "Interviewer", "content": question})
|
145 |
return state["conversation"], state
|
146 |
|
147 |
def submit_response(response, state):
|
|
|
149 |
return state["conversation"], state
|
150 |
|
151 |
if not response.strip():
|
152 |
+
state["conversation"].append({"role": "System", "content": "⚠️ Please answer the question before proceeding."})
|
153 |
return state["conversation"], state
|
154 |
|
155 |
if response.strip().lower() == "exit":
|
156 |
return end_interview(state)
|
157 |
|
158 |
+
state["conversation"].append({"role": "Candidate", "content": response})
|
159 |
+
last_q = next(msg["content"] for msg in reversed(state["conversation"]) if msg["role"] == "Interviewer")
|
160 |
rating, suggestion = evaluate_response(response, last_q)
|
161 |
|
162 |
state["evaluations"].append({
|
|
|
166 |
"suggestion": suggestion
|
167 |
})
|
168 |
|
169 |
+
state["conversation"].append({"role": "Evaluator", "content": f"Rating: {rating}\nSuggestion: {suggestion}"})
|
170 |
prompt = f"Domain: {state['domain']}. Candidate's last response: {response}. Generate a follow-up question:"
|
171 |
follow_up = generate_question(prompt, state["domain"], state)
|
172 |
+
state["conversation"].append({"role": "Interviewer", "content": follow_up})
|
173 |
return state["conversation"], state
|
174 |
|
175 |
def end_interview(state):
|
|
|
195 |
with open(filename, "w") as f:
|
196 |
json.dump(summary, f, indent=4)
|
197 |
|
198 |
+
state["conversation"].append({"role": "System", "content": f"✅ Interview ended. \nFinal Score: {summary['score']} ({summary['category']})"})
|
199 |
return state["conversation"], state
|
200 |
|
201 |
def clear_state():
|