langchain_core.rate_limiters
.InMemoryRateLimiter¶
- class langchain_core.rate_limiters.InMemoryRateLimiter(*, requests_per_second: float = 1, check_every_n_seconds: float = 0.1, max_bucket_size: float = 1)[source]¶
测试版
自 0.2.24 版本引入。API 可能会更改。
基于令牌桶算法的内存速率限制器。
这是一个内存速率限制器,因此它无法跨不同进程进行速率限制。
速率限制器只允许基于时间的速率限制,不考虑任何关于输入或输出的信息,因此不能用于基于请求大小的速率限制。
它是线程安全的,可以在同步或异步上下文中使用。
内存速率限制器基于令牌桶。以一定的速率向桶中填充令牌。每个请求消耗一个令牌。如果桶中没有足够的令牌,请求将被阻塞,直到有足够的令牌为止。
这些 令牌 与 LLM 令牌无关。它们只是跟踪在给定时间内可以发出多少请求的一种方式。
当前限制
速率限制器不是为跨进程工作而设计的。这是一个内存速率限制器,但它是线程安全的。
速率限制器仅支持基于时间的速率限制。它不考虑请求大小或其他因素。
示例
import time from langchain_core.rate_limiters import InMemoryRateLimiter rate_limiter = InMemoryRateLimiter( requests_per_second=0.1, # <-- 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. ) from langchain_anthropic import ChatAnthropic model = ChatAnthropic( model_name="claude-3-opus-20240229", rate_limiter=rate_limiter ) for _ in range(5): tic = time.time() model.invoke("hello") toc = time.time() print(toc - tic)
新功能自 0.2.24 版本。
基于令牌桶的速率限制器。
这些 令牌 与 LLM 令牌无关。它们只是跟踪在给定时间内可以发出多少请求的一种方式。
此速率限制器旨在在多线程环境中工作。
它通过以一定的速率将令牌填充到桶中来工作。每个请求消耗一定数量的令牌。如果桶中没有足够的令牌,请求将被阻塞,直到有足够的令牌为止。
- 参数
requests_per_second (float) – 每秒添加到桶中的令牌数量。必须是至少 1。令牌代表可以使用的“信用”来发出请求。
check_every_n_seconds (float) – 每隔这么多秒检查一次令牌是否可用。可以是表示秒分数的浮点数。
max_bucket_size (float) – 桶中可以有的最大令牌数量。这用于防止请求突增。
方法
__init__
(*[, requests_per_second, ...])基于令牌桶的速率限制器。
aacquire
(*[, blocking])尝试从速率限制器获取令牌。
acquire
(*[, blocking])尝试从速率限制器获取令牌。
- __init__(*, requests_per_second: float = 1, check_every_n_seconds: float = 0.1, max_bucket_size: float = 1) None [source]¶
基于令牌桶的速率限制器。
这些 令牌 与 LLM 令牌无关。它们只是跟踪在给定时间内可以发出多少请求的一种方式。
此速率限制器旨在在多线程环境中工作。
它通过以一定的速率将令牌填充到桶中来工作。每个请求消耗一定数量的令牌。如果桶中没有足够的令牌,请求将被阻塞,直到有足够的令牌为止。
- 参数
requests_per_second (float) – 每秒添加到桶中的令牌数量。必须是至少 1。令牌代表可以使用的“信用”来发出请求。
check_every_n_seconds (float) – 每隔这么多秒检查一次令牌是否可用。可以是表示秒分数的浮点数。
max_bucket_size (float) – 桶中可以有的最大令牌数量。这用于防止请求突增。
- 返回类型
None