|
|
@ -224,9 +224,12 @@ async def _ahandle_event_for_handler(
|
|
|
|
if asyncio.iscoroutinefunction(event):
|
|
|
|
if asyncio.iscoroutinefunction(event):
|
|
|
|
await event(*args, **kwargs)
|
|
|
|
await event(*args, **kwargs)
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
await asyncio.get_event_loop().run_in_executor(
|
|
|
|
if handler.run_inline:
|
|
|
|
None, functools.partial(event, *args, **kwargs)
|
|
|
|
event(*args, **kwargs)
|
|
|
|
)
|
|
|
|
else:
|
|
|
|
|
|
|
|
await asyncio.get_event_loop().run_in_executor(
|
|
|
|
|
|
|
|
None, functools.partial(event, *args, **kwargs)
|
|
|
|
|
|
|
|
)
|
|
|
|
except NotImplementedError as e:
|
|
|
|
except NotImplementedError as e:
|
|
|
|
if event_name == "on_chat_model_start":
|
|
|
|
if event_name == "on_chat_model_start":
|
|
|
|
message_strings = [get_buffer_string(m) for m in args[1]]
|
|
|
|
message_strings = [get_buffer_string(m) for m in args[1]]
|
|
|
@ -259,12 +262,17 @@ async def _ahandle_event(
|
|
|
|
**kwargs: Any,
|
|
|
|
**kwargs: Any,
|
|
|
|
) -> None:
|
|
|
|
) -> None:
|
|
|
|
"""Generic event handler for AsyncCallbackManager."""
|
|
|
|
"""Generic event handler for AsyncCallbackManager."""
|
|
|
|
|
|
|
|
for handler in [h for h in handlers if h.run_inline]:
|
|
|
|
|
|
|
|
await _ahandle_event_for_handler(
|
|
|
|
|
|
|
|
handler, event_name, ignore_condition_name, *args, **kwargs
|
|
|
|
|
|
|
|
)
|
|
|
|
await asyncio.gather(
|
|
|
|
await asyncio.gather(
|
|
|
|
*(
|
|
|
|
*(
|
|
|
|
_ahandle_event_for_handler(
|
|
|
|
_ahandle_event_for_handler(
|
|
|
|
handler, event_name, ignore_condition_name, *args, **kwargs
|
|
|
|
handler, event_name, ignore_condition_name, *args, **kwargs
|
|
|
|
)
|
|
|
|
)
|
|
|
|
for handler in handlers
|
|
|
|
for handler in handlers
|
|
|
|
|
|
|
|
if not handler.run_inline
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|