shansing

Results 5 comments of shansing

没人回答,不知道楼主问题解决没有。在此给同样搜过来的各位参考,这是自己环境 HTTP 劫持所致,并且很可能是深信服的设备。 Google 到相关资料如下: https://github.com/shadowsocks/shadowsocks-manager/issues/158 https://www.xuab.net/archives/36.html http://lufe1.cn/2017/09/19/%E6%B7%B1%E4%BF%A1%E6%9C%8D%E5%8A%AB%E6%8C%81HTTP%E9%98%B2%E8%B7%B3%E8%BD%AC/

感谢楼上提供的方法。而我使用 nginx 的 sub_filter 替换字符串的方式: ``` sub_filter '' 'window.addEventListener("DOMContentLoaded", function() { caches.keys().then(cacheNames => { cacheNames.forEach(cacheName => { caches.delete(cacheName); });}); }); '; ``` 这样可以把相关的引用变为清除缓存存储的代码。这些 JS 代码在 Firefox 实测可以清除 开发者工具-存储-缓存存储 下的项,供 @JinhuW...

可能需要区分是否经过反代,不然无条件信任前端传过来的 header 也可能被绕过 IP 限流。

我发现流式输出动画有关的代码可能导致输出中断。具体来说是 `app/client/platforms/openai.ts` (其他平台类似)下有一个 animateResponseText() 函数,它通过 requestAnimationFrame 递归调用自身(requestAnimationFrame(animateResponseText))。在文本比较长的时候,偶尔会一个没有 catch 的错误 `Maximum update depth exceeded` 抛出,于是相应请求的后续逻辑都不会执行。这个错误似乎是框架的一种防御机制。 简单地将相应报错 catch 起来(印象中最精细的 try{}catch{} 应该是包裹 animateResponseText 调用的 onUpdate 的 get().updateCurrentSession),似乎规避问题,且不影响输出。不过我最后在我的 fork 完全删除了 animateResponseText() 函数,只在收到一条新消息时(onmessage)请求一次动画帧,这样完全避免嵌套。ref: https://github.com/shansing/ChatGPT-Next-Web/commit/d81fdbf1df5485192141ca1ff6efc3f02f037a9b#diff-6de03d672a0a7c506b48a06a6bec2b3763d7e29f9b9c4fbd490fa2e177fbb01fR264

楼上的 URL 非常有用。我魔改了项目,跟原有 OpenAI 模型共存,如有需要可以参考我的改动点(但是不推荐直接用我的定制项目,没考虑通用性): https://github.com/shansing/ChatGPT-Next-Web/commit/61a1bd626d40f31601e897860cceeaa70b55fca1