fixed parallel async function calls bug (#569)
This commit is contained in:
@@ -254,12 +254,11 @@ class BaseOpenAILLMService(LLMService):
|
|||||||
arguments_list.append(arguments)
|
arguments_list.append(arguments)
|
||||||
tool_id_list.append(tool_call_id)
|
tool_id_list.append(tool_call_id)
|
||||||
|
|
||||||
total_items = len(functions_list)
|
|
||||||
for index, (function_name, arguments, tool_id) in enumerate(
|
for index, (function_name, arguments, tool_id) in enumerate(
|
||||||
zip(functions_list, arguments_list, tool_id_list), start=1
|
zip(functions_list, arguments_list, tool_id_list), start=1
|
||||||
):
|
):
|
||||||
if self.has_function(function_name):
|
if self.has_function(function_name):
|
||||||
run_llm = index == total_items
|
run_llm = False
|
||||||
arguments = json.loads(arguments)
|
arguments = json.loads(arguments)
|
||||||
await self.call_function(
|
await self.call_function(
|
||||||
context=context,
|
context=context,
|
||||||
@@ -550,7 +549,8 @@ class OpenAIAssistantContextAggregator(LLMAssistantContextAggregator):
|
|||||||
"tool_call_id": frame.tool_call_id,
|
"tool_call_id": frame.tool_call_id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
run_llm = frame.run_llm
|
# Only run the LLM if there are no more function calls in progress.
|
||||||
|
run_llm = not bool(self._function_calls_in_progress)
|
||||||
else:
|
else:
|
||||||
self._context.add_message({"role": "assistant", "content": aggregation})
|
self._context.add_message({"role": "assistant", "content": aggregation})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user