chatgpt-web
chatgpt-web copied to clipboard
feat:新增限流功能
feat:新增限流功能:
可选参数 - MAX_REQUEST_PERHOUR
每小时最大请求次数,可选,不填时默认36000次
请问自定义api功能如何开启呢,看你的介绍里面有自定义,但是搭建后没找到
请问自定义api功能如何开启呢,看你的介绍里面有自定义,但是搭建后没找到
因同一ip请求多个api可能导致较高的封号风险,故此feature未采纳
这个是服务端总数量吗?
这个是服务端总数量吗?
针对单个IP的
动画演示:我将每小时的请求数限制到5,超出后就会返回429限流。
未填写时可以修改为不限制吗?
未填写时可以修改为不限制吗?
不开启时目前的默认值已经很大了(单个请求ip限制每小时请求3.6w次,相当于一秒10次)。如果觉得还不够大,可以调整limiter.ts里面的值
未填写时可以修改为不限制吗?
不开启时目前的默认值已经很大了(单个请求ip限制每小时请求3.6w次,相当于一秒10次)。如果觉得还不够大,可以调整limiter.ts里面的值
再请教个问题状态码 429 可以自定义吗?因为如果添加这个功能,需要和现在的 OpwnAI 的状态码区分下。我电脑不在身边,我没法看 npm 上的文档。
还有需要加个 number 类型的判断,现在只判断了变量是否存在,不过我来处理也可以
未填写时可以修改为不限制吗?
不开启时目前的默认值已经很大了(单个请求ip限制每小时请求3.6w次,相当于一秒10次)。如果觉得还不够大,可以调整limiter.ts里面的值
再请教个问题状态码 429 可以自定义吗?因为如果添加这个功能,需要和现在的 OpwnAI 的状态码区分下。我电脑不在身边,我没法看 npm 上的文档。
目前框架默认就是429,业界通用的429就是请求速率受限。而且当达到请求速率上限时,并不会调用OpenAI接口 而是直接给前端返回了429状态码,可能需要前端做一下状态码的判断
还有需要加个 number 类型的判断,现在只判断了变量是否存在,不过我来处理也可以
感谢~
这个不错,期待合并进主分支.
希望改为
const limiter = rateLimit({
windowMs: 60 * 60 * 1000, // Maximum number of accesses within an hour
max: maxCount,
statusCode: 200, // 200 means success,but the message is `Exceeded the limit of ${maxCount} questions per hour. Please try again later.`
message: async (req, res) => {
res.send({ status: 'Fail', message: `Exceeded the limit of ${maxCount} questions per hour. Please try again later.`, data: null })
},
})

提示会更明确.
希望改为
const limiter = rateLimit({ windowMs: 60 * 60 * 1000, // Maximum number of accesses within an hour max: maxCount, statusCode: 200, // 200 means success,but the message is `Exceeded the limit of ${maxCount} questions per hour. Please try again later.` message: async (req, res) => { res.send({ status: 'Fail', message: `Exceeded the limit of ${maxCount} questions per hour. Please try again later.`, data: null }) }, })
![]()
提示会更明确.
其实感觉没有必要,根据安全性原则,接口的限流参数无需对客户端提示。提示了最大次数之后反而会更利于别人精确控制请求你接口的频率