使用 langchain RateLimiters(仅 Python)
如果您在应用程序或评估器中使用 langchain Python 聊天模型,您可以向模型添加速率限制器,这将添加客户端对发送到模型提供商 API 的请求频率的控制,以避免速率限制错误。
使用指数退避重试
处理速率限制错误的一种非常常见的方法是使用指数退避重试。使用指数退避重试意味着反复重试失败的请求,每次重试之间的等待时间(指数)增加。这将持续到请求成功或达到最大请求数为止。使用 langchain
如果您使用 langchain 组件,可以使用 .with_retry(...) / .withRetry() 方法向所有模型调用添加重试:
langchain Python 和 JS API 参考。
不使用 langchain
如果您不使用 langchain,可以使用其他库,如 tenacity(Python)或 backoff(Python)来实现指数退避重试,或者您可以从头实现它。有关如何执行此操作的一些示例,请参阅 OpenAI 文档。
限制 max_concurrency
限制您对应用程序和评估器进行的并发调用数是降低模型调用频率的另一种方法,从而避免速率限制错误。max_concurrency 可以直接在 evaluate() / aevaluate() 函数上设置。这通过有效地跨线程拆分数据集来并行化评估。