diff --git a/talia_bot/start_bot.sh b/start_bot.sh similarity index 88% rename from talia_bot/start_bot.sh rename to start_bot.sh index cbf80c5..f592e89 100755 --- a/talia_bot/start_bot.sh +++ b/start_bot.sh @@ -8,4 +8,4 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" export PYTHONPATH="$PYTHONPATH:$DIR/.." # Run the bot -python3 "$DIR/main.py" +python3 "$DIR/talia_bot/main.py" diff --git a/talia_bot/modules/flow_engine.py b/talia_bot/modules/flow_engine.py index 190df5a..455fb93 100644 --- a/talia_bot/modules/flow_engine.py +++ b/talia_bot/modules/flow_engine.py @@ -115,13 +115,21 @@ class FlowEngine: state['collected_data'][f"step_{current_step['step_id']}_response"] = response_data - next_step_id = state['current_step_id'] + 1 - next_step = next((step for step in flow['steps'] if step['step_id'] == next_step_id), None) + # Find the index of the current step to determine the next one robustly + steps = flow['steps'] + current_step_index = -1 + for i, step in enumerate(steps): + if step['step_id'] == state['current_step_id']: + current_step_index = i + break - if next_step: - self.update_conversation_state(user_id, state['flow_id'], next_step_id, state['collected_data']) + # Check if there is a next step in the list + if current_step_index != -1 and current_step_index + 1 < len(steps): + next_step = steps[current_step_index + 1] + self.update_conversation_state(user_id, state['flow_id'], next_step['step_id'], state['collected_data']) return {"status": "in_progress", "step": next_step} else: + # This is the last step, so the flow is complete final_data = state['collected_data'] self.end_flow(user_id)