GPTCache 增强功能:异步函数调用以提高并发性

rnmwe5a2  于 2个月前  发布在  其他
关注(0)|答案(2)|浏览(49)

你想添加什么内容?
你好,我对我们现有的代码库进行了简要的研究。似乎大部分涉及外部I/O的部分都不支持异步?
由于CPython实现强制执行GIL(全局解释器锁),运行脚本的主要线程将被这些I/O阻塞,从而极大地降低了并发性。更糟糕的是,对于这个库的用户来说,任何调用检索缓存结果的操作都将在这里被阻塞,无论用户如何优化他们的代码以使用异步调用。
为什么需要这个?
I/O构成了这个库的主要部分,而Python只有一个线程在运行。我认为使用异步非常重要。
还有其他吗?
以使用异步Redis客户端为例:
https://redis.com/blog/async-await-programming-basics-python-examples/

svdrlsy4

svdrlsy41#

在整个缓存操作中,并不是数据库访问花费的时间最多,而是嵌入和其他模型的操作。但是对于异步性来说,这确实是一个优化点,我们目前正在计划

yh2wf1be

yh2wf1be2#

我也非常热衷于使用异步版本。目前我的聊天机器人使用了chain.arun()调用,如果来自gptcache.adapter.langchain_models的LangChainLLMs支持acall(),那将非常棒。这个功能有预计的发布时间吗?

相关问题