请求超时
此功能适用于所有 Portkey 计划。
通过 Portkey 的 请求超时 有效管理不可预测的 LLM 延迟。此功能允许自动终止超过指定持续时间的请求,让您优雅地处理错误或发起另一个更快的请求。
启用请求超时
您可以在发出请求时启用请求超时,或者您可以在配置中设置它们。
发起请求时
在实例化您的 Portkey 客户端时设置请求超时,或者如果您使用 REST API,请发送 x-portkey-request-timeout 头部。
from portkey_ai import Portkey
# 使用虚拟密钥构建客户端
portkey = Portkey(
api_key="PORTKEY_API_KEY",
virtual_key="VIRTUAL_KEY",
request_timeout=3000
)
completion = portkey.chat.completions.create(
messages = [{ "role": 'user', "content": 'Say this is a test' }],
model = 'gpt-4o-mini'
)import Portkey from 'portkey-ai';
// 使用虚拟密钥构建客户端
const portkey = new Portkey({
apiKey: "PORTKEY_API_KEY",
virtualKey: "VIRTUAL_KEY",
requestTimeout: 3000
})
const chatCompletion = await portkey.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'gpt-4o-mini',
});
console.log(chatCompletion.choices);配置说明
在配置中,请求超时时间可以设置在 (1) 策略级别,或 (2) 目标级别。
对于 10 秒的超时,它将是:
在策略层面设置请求超时
在这里,10秒的请求超时将适用于*所有*在此配置中的目标。
在目标级别设置请求超时
在这里,第一个目标设置了10秒的请求超时,而第二个目标设置了2秒的请求超时。
嵌套配置中的超时工作原理
我们在第3行设置了全局超时为2秒
第一个目标具有嵌套的回退策略,第7行的顶级请求超时为5秒
第一个虚拟键(第10行)将应用5秒的目标级超时
对于第二个虚拟键(即
open-ai-1-2),有一个超时覆盖,设置为10秒,仅适用于此目标对于最后一个目标(即虚拟键
azure-open-ai-1),将应用顶级策略超时2秒
处理请求超时
Portkey 对于超时请求发出标准的 408 错误。您可以通过 on_status_codes 参数设置备用或重试策略,从而确保对这些情况的强健处理。
触发请求超时的回退机制
在这里,只有在第一次请求超时超过2秒后,才会从OpenAI回退到Azure OpenAI,否则请求将以408错误代码失败。
触发重试与请求超时
在这里,当请求超过 1 秒未返回响应时,将最多触发 3 次重试。在 3 次重试均未成功后,将以 408 代码失败。
注意事项和考虑事项
虽然请求超时是一个强大的功能,可以帮助您优雅地处理不稳定的模型及其延迟,但仍有一些事项需要考虑:
确保您设置合理的超时时间 - 例如,像
gpt-4这样的模型通常具有不到10秒的响应时间确保您优雅地处理408错误,以便在请求超时时通知用户重新运行查询,并在您的应用中设置一些良好的交互
对于流式请求,如果在指定的持续时间之前获得至少一个数据块,则不会触发超时。
Last updated