Skip to content

Commit 936a91c

Browse files
authored
Fix: code debug may corrupt by history answer (infiniflow#8385)
### What problem does this PR solve? Fix code debug may corrupt by history answer. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
1 parent ef5e7d8 commit 936a91c

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

agent/component/code.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,29 +81,30 @@ def _run(self, history, **kwargs):
8181
for input in self._param.arguments:
8282
if "@" in input["component_id"]:
8383
component_id = input["component_id"].split("@")[0]
84-
refered_component_key = input["component_id"].split("@")[1]
85-
refered_component = self._canvas.get_component(component_id)["obj"]
84+
referred_component_key = input["component_id"].split("@")[1]
85+
referred_component = self._canvas.get_component(component_id)["obj"]
8686

87-
for param in refered_component._param.query:
88-
if param["key"] == refered_component_key:
87+
for param in referred_component._param.query:
88+
if param["key"] == referred_component_key:
8989
if "value" in param:
9090
arguments[input["name"]] = param["value"]
9191
else:
92-
refered_component = self._canvas.get_component(input["component_id"])["obj"]
93-
refered_component_name = refered_component.component_name
94-
refered_component_id = refered_component._id
95-
if refered_component_name.lower() == "answer":
96-
arguments[input["name"]] = self._canvas.get_history(1)[0]["content"]
97-
continue
92+
referred_component = self._canvas.get_component(input["component_id"])["obj"]
93+
referred_component_name = referred_component.component_name
94+
referred_component_id = referred_component._id
9895

9996
debug_inputs = self._param.debug_inputs
10097
if debug_inputs:
10198
for param in debug_inputs:
102-
if param["key"] == refered_component_id:
99+
if param["key"] == referred_component_id:
103100
if "value" in param and param["name"] == input["name"]:
104101
arguments[input["name"]] = param["value"]
105102
else:
106-
_, out = refered_component.output(allow_partial=False)
103+
if referred_component_name.lower() == "answer":
104+
arguments[input["name"]] = self._canvas.get_history(1)[0]["content"]
105+
continue
106+
107+
_, out = referred_component.output(allow_partial=False)
107108
if not out.empty:
108109
arguments[input["name"]] = "\n".join(out["content"])
109110

@@ -146,3 +147,6 @@ def get_input_elements(self):
146147
cpn_id = input["component_id"]
147148
elements.append({"key": cpn_id, "name": input["name"]})
148149
return elements
150+
151+
def debug(self, **kwargs):
152+
return self._run([], **kwargs)

api/apps/canvas_app.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,9 @@ def debug():
249249
code=RetCode.OPERATING_ERROR)
250250

251251
canvas = Canvas(json.dumps(user_canvas.dsl), current_user.id)
252-
canvas.get_component(req["component_id"])["obj"]._param.debug_inputs = req["params"]
252+
componant = canvas.get_component(req["component_id"])["obj"]
253+
componant.reset()
254+
componant._param.debug_inputs = req["params"]
253255
df = canvas.get_component(req["component_id"])["obj"].debug()
254256
return get_json_result(data=df.to_dict(orient="records"))
255257
except Exception as e:

0 commit comments

Comments
 (0)