如何处理速率限制
您可能会遇到由于请求过多而被大模型供应商的API限制速率的情况。
例如,如果您在测试数据集上对聊天模型进行基准测试时运行了许多并行查询,就可能会发生这种情况。
如果您面临这种情况,可以使用速率限制器来帮助将您的请求速率与API允许的速率相匹配。 由API提供。
Requires
langchain-core >= 0.2.24
此功能是在 langchain-core == 0.2.24
中添加的。请确保您的软件包是最新的。
初始化速率限制器
LangChain内置了一个内存速率限制器。该速率限制器是线程安全的,可以被同一进程中的多个线程共享。
提供的速率限制器只能限制单位时间内的请求数量。如果您还需要根据请求的大小进行限制,它将无能为力。 请求的大小。
<!--IMPORTS:[{"imported": "InMemoryRateLimiter", "source": "langchain_core.rate_limiters", "docs": "https://python.langchain.com/api_reference/core/rate_limiters/langchain_core.rate_limiters.InMemoryRateLimiter.html", "title": "How to handle rate limits"}]-->
from langchain_core.rate_limiters import InMemoryRateLimiter
rate_limiter = InMemoryRateLimiter(
requests_per_second=0.1, # <-- Super slow! We can only make a request once every 10 seconds!!
check_every_n_seconds=0.1, # Wake up every 100 ms to check whether allowed to make a request,
max_bucket_size=10, # Controls the maximum burst size.
)