嵌套的 AsyncIO 循环

NeMo Guardrails 是一个异步优先的工具包,即核心功能是使用异步函数实现的。为了提供阻塞式 API,该工具包必须使用 asyncio.run 在同步代码内部调用异步函数。但是,当前 Python 的 asyncio 实现不允许“嵌套事件循环”。Python 核心团队正在讨论此问题,并且很可能会添加支持(请参阅 GitHub Issue 66435Pull Request 93338)。

同时,NeMo Guardrails 使用了 nest_asyncio。当首次加载 nemoguardrails 包时,将应用补丁。

如果不需要阻塞式 API,或者 nest_asyncio 补丁导致意外问题,您可以通过设置 DISABLE_NEST_ASYNCIO=True 环境变量来禁用它。