This commit is contained in:
yumoqing 2026-03-05 17:34:32 +08:00
parent 814c927b61
commit 024fd55699

View File

@ -256,6 +256,7 @@ class IndustrialSkillEngine:
await self.write_output(output) await self.write_output(output)
if "CALL: " in decision: if "CALL: " in decision:
st = decision[6:] st = decision[6:]
debug(f'函数调用:{st=}')
d = DictObject(**json.loads(st)) d = DictObject(**json.loads(st))
env = self.request._run_ns env = self.request._run_ns
f = env.get(d.function) f = env.get(d.function)
@ -263,15 +264,22 @@ class IndustrialSkillEngine:
e = Exception(f'function({d.function} is not in env') e = Exception(f'function({d.function} is not in env')
exception(f'{e}') exception(f'{e}')
raise e raise e
ret = '' try:
if inspect.iscoroutinefunction(f): ret = ''
ret = await f(self.request, params_kw=d.params) if inspect.iscoroutinefunction(f):
else: ret = await f(self.request, params_kw=d.params)
ret = f(self.request, params_kw=d.params) else:
await self.write_output({ ret = f(self.request, params_kw=d.params)
"status": "SUCCEEDED", await self.write_output({
"content": ret "status": "SUCCEEDED",
}) "content": ret
})
except Exception as e:
exception(f'{e}\n{format_exc()}')
await self.write_output({
"status": "FAILED",
"error": f'{e}'
})
return return
if "REPLY: " in decision: if "REPLY: " in decision:
sessionkey = getID() sessionkey = getID()