fix: anthropic rate limit (#1583)

This commit is contained in:
yetone
2025-03-14 14:13:47 +08:00
committed by GitHub
parent 110ba8a21f
commit e332d74c06
4 changed files with 108 additions and 3 deletions

View File

@@ -13,6 +13,23 @@ M.role_map = {
assistant = "assistant",
}
---@param headers table<string, string>
---@return integer|nil
function M:get_rate_limit_sleep_time(headers)
local remaining_tokens = tonumber(headers["anthropic-ratelimit-tokens-remaining"])
if remaining_tokens == nil then return end
if remaining_tokens > 10000 then return end
local reset_dt_str = headers["anthropic-ratelimit-tokens-reset"]
if remaining_tokens ~= 0 then reset_dt_str = reset_dt_str or headers["anthropic-ratelimit-requests-reset"] end
local reset_dt, err = Utils.parse_iso8601_date(reset_dt_str)
if err then
Utils.warn(err)
return
end
local now = Utils.utc_now()
return Utils.datetime_diff(tostring(now), tostring(reset_dt))
end
---@param tool AvanteLLMTool
---@return AvanteClaudeTool
function M.transform_tool(tool)