pgmr.cloud
11 May 2023
SEO Title
我们很高兴能够利用asyncio库在LangChain中推出最初的异步支持。Asyncio使用协程和事件循环来执行非阻塞I/O操作;这些协同程序能够在等待最终结果时“暂停”(等待),并在此期间让其他例程运行。要了解更多关于asyncio的信息,以及它与多线程和多处理的比较,请查看这个很棒的教程。
动机
由于LangChain应用程序往往是相当I/O和网络绑定的(调用LLM API并与数据存储交互),asyncio通过允许您同时运行LLM、链和代理提供了显著的优势:当一个代理正在等待LLM调用或工具完成时,另一个代理可以继续取得进展。LangChain中的异步支持还允许您将异步链和代理更无缝地集成到支持异步的框架中,例如FastAPI。
特别查看异步代理文档,看看并发执行可以在多大程度上加快速度!
用法
作为起点,我们已经实现了对以下各项的异步支持:
LLM
via agenerate
(see docs):
OpenAI
Chain
via arun
and acall
(see docs):
LLMChain
LLMMathChain
Agent
and Tool
via arun
(see docs):
SerpAPIWrapper
LLMMathChain
下一步
我们才刚刚开始使用异步。在不久的将来,我们希望补充:
- 异步支持更多LLM、链和代理工具
- 能够为单个操作输入同时运行多个工具
- 对回调处理程序的异步支持
- 通过跟踪提供更无缝的支持
- 登录 发表评论