From 801746220903a9517b1f49e01cd9dfc26dcf7695 Mon Sep 17 00:00:00 2001 From: Julio Menendez Gonzalez Date: Thu, 18 Jan 2024 23:07:25 -0700 Subject: [PATCH] Fixes parsing and setting step variables. Code change suggested by @amritpal-singh-98 --- python/semantic_kernel/planning/plan.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/python/semantic_kernel/planning/plan.py b/python/semantic_kernel/planning/plan.py index b804765977dd..d3c948b0097f 100644 --- a/python/semantic_kernel/planning/plan.py +++ b/python/semantic_kernel/planning/plan.py @@ -402,19 +402,17 @@ def get_next_step_variables(self, variables: ContextVariables, step: "Plan") -> elif param.name in self._state and (self._state[param.name] is not None and self._state[param.name] != ""): step_variables.set(param.name, self._state[param.name]) - for param_var in step.parameters.variables: - if param_var in step_variables: + for param_name, param_val in step.parameters.variables.items(): + if param_name in step_variables: continue - expanded_value = self.expand_from_variables(variables, param_var) - if expanded_value.lower() == param_var.lower(): - step_variables.set(param_var, step.parameters.variables[param_var]) - elif param_var in variables: - step_variables.set(param_var, variables[param_var]) - elif param_var in self._state: - step_variables.set(param_var, self._state[param_var]) + if param_name in variables: + step_variables.set(param_name, param_val) + elif param_name in self._state: + step_variables.set(param_name, self._state[param_name]) else: - step_variables.set(param_var, expanded_value) + expanded_value = self.expand_from_variables(variables, param_val) + step_variables.set(param_name, expanded_value) for item in variables.variables: if item not in step_variables: