速率限制是许多 API 提供商实施的一种策略,旨在防止用户在短时间内因过多请求而导致服务器过载。如果超出速率限制,您将收到一条错误消息。
LangChain 提供了一个方便的功能来管理速率限制。maxConcurrency您可以在实例化嵌入模型时设置一个选项。此选项允许您指定要向提供程序发出的最大并发请求数。如果超过这个数量,LangChain会自动将您的请求排队,并在之前的请求完成后发送。
以下是如何设置最大并发数为 5 个请求的示例:
import { OpenAIEmbeddings } from "langchain/embeddings/openai";const model = new OpenAIEmbeddings({ maxConcurrency: 5 });
处理 API 错误
如果模型提供者返回错误,LangChain 有一个内置机制,可以重试请求最多 6 次,并采用指数退避。这意味着每次重试在再次尝试请求之前等待的时间都是前一次重试的两倍。此策略通常可以帮助成功完成请求,特别是在出现临时网络问题或服务器过载的情况下。
如果要更改最大重试次数,可以maxRetries在实例化模型时传递一个选项:
import { OpenAIEmbeddings } from "langchain/embeddings/openai";const model = new OpenAIEmbeddings({ maxRetries: 10 });
在这个例子中,LangChain将重试失败的请求最多10次,然后最终放弃。
结论
总而言之,嵌入是 NLP 任务中的强大工具,LangChain 提供了一个强大、灵活且用户友好的界面来生成和使用嵌入。LangChain 能够与多个提供商集成、处理速率限制和管理 API 错误,是任何人工智能项目的绝佳选择。