-
Notifications
You must be signed in to change notification settings - Fork 11.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat:新增限流功能 #718
feat:新增限流功能 #718
Conversation
请问自定义api功能如何开启呢,看你的介绍里面有自定义,但是搭建后没找到 |
因同一ip请求多个api可能导致较高的封号风险,故此feature未采纳 |
这个是服务端总数量吗? |
针对单个IP的 |
未填写时可以修改为不限制吗? |
不开启时目前的默认值已经很大了(单个请求ip限制每小时请求3.6w次,相当于一秒10次)。如果觉得还不够大,可以调整limiter.ts里面的值 |
再请教个问题状态码 429 可以自定义吗?因为如果添加这个功能,需要和现在的 OpwnAI 的状态码区分下。我电脑不在身边,我没法看 npm 上的文档。 |
还有需要加个 number 类型的判断,现在只判断了变量是否存在,不过我来处理也可以 |
目前框架默认就是429,业界通用的429就是请求速率受限。而且当达到请求速率上限时,并不会调用OpenAI接口 而是直接给前端返回了429状态码,可能需要前端做一下状态码的判断 |
感谢~ |
这个不错,期待合并进主分支. |
* 请求速率限制 * perf: 优化代码 --------- Co-authored-by: ChenZhaoYu <[email protected]>
* 请求速率限制 * perf: 优化代码 --------- Co-authored-by: ChenZhaoYu <[email protected]>
希望改为 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 })
},
}) 提示会更明确. |
* 请求速率限制 * perf: 优化代码 --------- Co-authored-by: ChenZhaoYu <[email protected]>
* chore: change docs * feat: 添加 Prompt 模板和 Prompt 商店支持 (Chanzhaoyu#268) * feat: 添加Prompt模板和Prompt商店支持 * feat: well done --------- Co-authored-by: Redon <[email protected]> * feat: 设置添加关闭按钮 * chore: format * chore: 2.10.4 * chore: cover * fix: 更新JSON导入检查 (Chanzhaoyu#523) * feat: Improve zh-TW locale (Chanzhaoyu#511) * fix: cors in auth_secret_key model (Chanzhaoyu#499) * fix: 修改最大行数与官方保持一致 (Chanzhaoyu#502) * chore: rename environment variables files * docs: update README.md about .env file * feat: support long reply * chore: upgrade chatgpt package and set long reply to false default * chore: set long reply to false default * fix: change maxRows to 8 * feat: mobile max row --------- Co-authored-by: ChenZhaoYu <[email protected]> * feat: support linux command line proxy standard (Chanzhaoyu#308) * feat: support linux command line proxy standard with env HTTPS_PROXY and ALL_PROXY * chore: update docs for linux command linux proxy standard * fix: Prompt商店在线导入可以导入两种recommend.json里提到的模板 (Chanzhaoyu#516) (Chanzhaoyu#521) * fix(PromptStore): import prompt template using different dict keys * chore(PromptStore): clear url field after downloading * feat: 仓库添加翻译 * feat: 仓库查询筛选 * feat: 调整界面 * chore: update deps * feat: improve zh-TW locale, translate new strings (Chanzhaoyu#542) * feat: 语言设定改为下拉框选择 * feat: 修改 Prompt Store 移动端样式 * chore: docs change * feat: 权限输入框改为密码类型 * fix: 清空上下文时不应该重置会话标题 * chore: docs change * chore: optimize dockerfile to speed up building and reduce docker image size (Chanzhaoyu#520) * chore: v2.10.5 * fix: 修复导入、导出错误 * fix: inverted parameter for before each function (Chanzhaoyu#585) * fix: 🐛 fix scroll bar style (Chanzhaoyu#617) * fix: typo (Chanzhaoyu#636) * perf: 优化移动端 prompt 商店样式 (Chanzhaoyu#608) * feat: 修改移动端 prompt 商店样式 * add: 修改移动端 prompt 商店样式 * perf: 清理代码 --------- Co-authored-by: ChenZhaoYu <[email protected]> * chore: extract proxy setup code into reusable function (Chanzhaoyu#583) * perf: 记录上下文设定保存到本地 * perf: 优化部份判断 * docs: 移除 docker-compose.yml 省略 * feat: show api balance (Chanzhaoyu#582) * feat: show api balance * Update index.ts * 保留小数点后五位 * perf: 判断优化 --------- Co-authored-by: Redon <[email protected]> * chore: update deps and lint fix * feat: session 返回接口方式做显示判断 * fix: highlight.js 控制台兼容性警告 * chore: v2.10.6 * fix: 回退 chatgpt 版本导致的代理失效 * fix: 添加 usingContext 缺省 * chore: v2.10.7 * feat: 查询余额使用 API_BASE_URL 参数 * feat: 渲染的链接新窗口打开 * perf: config 接口添加权限验证 * fix: 手动重置异常的 loading * feat: 添加用于显示回复消息原文的选项 (Chanzhaoyu#672) * feat: 添加显示用于原文的选项 * chore: 修复暗色主题下文本颜色问题 给输入和输出气泡添加了 css 类,用来处理在暗色主题下聊天气泡的文本颜色 * feat: 用户输入不应该被渲染,防止 xss --------- Co-authored-by: ChenZhaoYu <[email protected]> * feat: 新增限流功能 (Chanzhaoyu#718) * 请求速率限制 * perf: 优化代码 --------- Co-authored-by: ChenZhaoYu <[email protected]> * feat: 添加角色设定预留API 设定页(Chanzhaoyu#768) * add systemMessage * perf: 优化代码和类型 * perf: 补全翻译和为以后做准备 --------- Co-authored-by: ChenZhaoYu <[email protected]> * perf: 重置回答时滚动定位至该回答 (Chanzhaoyu#781) * chore: 重置回答时滚动定位至该回答 * perf: format code --------- Co-authored-by: ChenZhaoYu <[email protected]> * perf: scrollToBottom 改成 scrollToBottomIfAtBottom (Chanzhaoyu#771) * feat: 更新依赖并兼容已存在的代理 * feat: 当用gpt-4的API 时增加可用的 Max Tokens (Chanzhaoyu#729) * fix: 用GPT-4 API时增加max token * style: eslint fix --------- Co-authored-by: Redon <[email protected]> * feat: Create start.cmd (Chanzhaoyu#656) 在windows下也可以运行 * chore(vsc-debug): 增加 visual-studio-code 的 debug 启动文件 (Chanzhaoyu#296) * fix line end with new-line in some backend (Chanzhaoyu#474) * fix line end with new-line in some backend In backend with golang (like https://github.com/sashabaranov/go-openai), the responseText always has '\n'. * feat: 补全遗漏 --------- Co-authored-by: ChenZhaoYu <[email protected]> * feat: 增加 ChatGPTUnofficialProxyAPI 的模型自定义配置 (Chanzhaoyu#632) * feat: 增加 ChatGPTUnofficialProxyAPI 的模型自定义配置(Chanzhaoyu#618) * perf: 修改判断 --------- Co-authored-by: ChenZhaoYu <[email protected]> * chore: 显示原文时使用 .whitespace-pre-wrap (Chanzhaoyu#779) 显示 ChatGPT 输出的原文时保留空格和换行 * feat: PWA 默认不开启 * feat: 切换 history 时自动聚焦输入框 (Chanzhaoyu#735) * feat: 修改 scrollToBottom 行为(当滚动条在底部或发送问题时才会进入自动滚动,滚轮向上滚动会中止自动滚动,方便复制和查看之前的代码; 切换 history 时自动聚焦输入框,方便直接输入文字,不用再次去点击输入框;) * chore: 通过eslint检查 * perf: 清理重复功能 --------- Co-authored-by: Redon <[email protected]> * perf: 网络连接时 500 自动跳转到主页 * docs: fix docker port to private (Chanzhaoyu#802) * feat: add zh-TW prompts in the Promt Store (Chanzhaoyu#796) * fix: prompt store 样式问题 * chore: v2.10.8 * fix: 重置时应该移除本地储存 * fix: PWA 未添加的问题 (Chanzhaoyu#807) Co-authored-by: bingo235 <> * fix: 移动端新建会话关闭侧边栏 (Chanzhaoyu#813) * perf: 移动端删除 chat 时,侧边栏应该收起 * fix: ESM error (Chanzhaoyu#826) * perf: 自动焦点时移动端上的不便 * fix: 移动端焦点不触发的问题 * perf: 本地地址 * fix: 反向代理限流失效 (Chanzhaoyu#863) https://docs.colyseus.io/zh_hk/colyseus/how-to/rate-limit/ 使用nginx限流会只识别为服务器ip,需启用trust proxy --------- Co-authored-by: ChenZhaoYu <[email protected]> Co-authored-by: Nothing1024 <[email protected]> Co-authored-by: Peter Dave Hello <[email protected]> Co-authored-by: Yige <[email protected]> Co-authored-by: Eason <[email protected]> Co-authored-by: 吴杉(Shan Wu) <[email protected]> Co-authored-by: Wisdom <[email protected]> Co-authored-by: Hayden Chen <[email protected]> Co-authored-by: 碎花爱洋裙 <[email protected]> Co-authored-by: CornerSkyless <[email protected]> Co-authored-by: Kirk Lin <[email protected]> Co-authored-by: pzcn <[email protected]> Co-authored-by: Yi <[email protected]> Co-authored-by: xiaozhu <[email protected]> Co-authored-by: quzard <[email protected]> Co-authored-by: 舜岳 <[email protected]> Co-authored-by: 吴杉(Shan Wu) <[email protected]> Co-authored-by: vulgate <[email protected]> Co-authored-by: KeepRunning <[email protected]> Co-authored-by: Liut <[email protected]> Co-authored-by: hncboy <[email protected]> Co-authored-by: Allen <[email protected]> Co-authored-by: 东子 <[email protected]> Co-authored-by: Bing <[email protected]> Co-authored-by: Kid <[email protected]> Co-authored-by: gitgitgogogo <[email protected]>
* 请求速率限制 * perf: 优化代码 --------- Co-authored-by: ChenZhaoYu <[email protected]>
* 请求速率限制 * perf: 优化代码 --------- Co-authored-by: ChenZhaoYu <[email protected]>
* 请求速率限制 * perf: 优化代码 --------- Co-authored-by: ChenZhaoYu <[email protected]>
feat:新增限流功能:
可选参数 -
MAX_REQUEST_PERHOUR
每小时最大请求次数,可选,不填时默认36000次