Skip to content

Commit a4f8749

Browse files
committed
feat: add ToolRecord handling for task execution state updates
1 parent d147880 commit a4f8749

1 file changed

Lines changed: 20 additions & 1 deletion

File tree

apps/trigger/handler/impl/task/tool_task.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from common.utils.rsa_util import rsa_long_decrypt
1818
from common.utils.tool_code import ToolExecutor
1919
from knowledge.models.knowledge_action import State
20-
from tools.models import Tool
20+
from tools.models import Tool, ToolRecord, ToolTaskTypeChoices
2121
from trigger.handler.base_task import BaseTriggerTask
2222
from trigger.models import TaskRecord
2323

@@ -145,6 +145,15 @@ def execute(self, trigger_task, **kwargs):
145145
meta={'input': parameter_setting, 'output': {}},
146146
state=State.STARTED
147147
).save()
148+
ToolRecord(
149+
id=task_record_id,
150+
workspace_id=tool.workspace_id,
151+
tool_id=tool.id,
152+
source_type=ToolTaskTypeChoices.TRIGGER,
153+
source_id=trigger_task.get('trigger'),
154+
meta={'input': parameter_setting, 'output': {}},
155+
state=State.STARTED
156+
).save()
148157

149158
parameters = get_tool_execute_parameters(tool.input_field_list, parameter_setting, kwargs)
150159
init_params_default_value = {i["field"]: i.get('default_value') for i in tool.init_field_list}
@@ -165,9 +174,19 @@ def execute(self, trigger_task, **kwargs):
165174
run_time=time.time() - start_time,
166175
meta={'input': parameter_setting, 'output': result_dict}
167176
)
177+
QuerySet(ToolRecord).filter(id=task_record_id).update(
178+
state=State.SUCCESS,
179+
run_time=time.time() - start_time,
180+
meta={'input': all_params, 'output': result_dict}
181+
)
168182
except Exception as e:
169183
maxkb_logger.error(f"Tool execution error: {traceback.format_exc()}")
170184
QuerySet(TaskRecord).filter(id=task_record_id).update(
171185
state=State.FAILURE,
172186
run_time=time.time() - start_time
173187
)
188+
QuerySet(ToolRecord).filter(id=task_record_id).update(
189+
state=State.FAILURE,
190+
run_time=time.time() - start_time
191+
)
192+

0 commit comments

Comments
 (0)