adamlui / chatgpt-auto-refresh

↻ Keeps ChatGPT sessions fresh to avoid network errors + Cloudflare checks
https://chatgptautorefresh.com
Other
178 stars 12 forks source link

新版本的代码中使用了fetch POST,可以保持页面活性,但是会返回400错误,这是否有隐患 #9

Closed gydx6 closed 1 year ago

gydx6 commented 1 year ago

频繁的400错误可能会让openai服务器注意,会不会被识别为恶意攻击? 我试了get和post,都可以很好的保持页面活性 在我的使用场景里,需要把间隔时间调为30s,45s还是会断开 我的使用场景:我是gpt plus会员,本来可以一直保持页面活性,不需要这个插件,但是最近openai把我的ip ban了,所以我在vps端弄了warp,这样就可以用了,不过也导致会频繁重载页面,用了您的插件后得以解决,感谢

gydx6 commented 1 year ago

对了,忘记说了,get不会有400错误

selfboot commented 1 year ago

频繁的400错误可能会让openai服务器注意,会不会被识别为恶意攻击? 我试了get和post,都可以很好的保持页面活性 在我的使用场景里,需要把间隔时间调为30s,45s还是会断开 我的使用场景:我是gpt plus会员,本来可以一直保持页面活性,不需要这个插件,但是最近openai把我的ip ban了,所以我在vps端弄了warp,这样就可以用了,不过也导致会频繁重载页面,用了您的插件后得以解决,感谢

我也是ip+warp,然后需要每次刷新。 用这里插件每隔45s,还是不行。

adamlui commented 1 year ago

@gydx6 谢谢提供的信息,我已将定时器缩短至30秒,这样即使以后问题得到解决,新代码对您仍然更有用

@selfboot 你能试着更新脚本吗?我觉得gydx6的意思是45秒不行但是30秒可以

selfboot commented 1 year ago

@gydx6 谢谢提供的信息,我已将定时器缩短至30秒,这样即使以后问题得到解决,新代码对您仍然更有用

@selfboot 你能试着更新脚本吗?我觉得gydx6的意思是45秒不行但是30秒可以

我更新了,还是不行,应该是 openai 更新了策略。

adamlui commented 1 year ago

@selfboot 我指的是我刚刚推送的更新(之前那个是45秒,不是30秒)

gydx6 commented 1 year ago

@gydx6 谢谢提供的信息,我已将定时器缩短至30秒,这样即使以后问题得到解决,新代码对您仍然更有用

@selfboot 你能试着更新脚本吗?我觉得gydx6的意思是45秒不行但是30秒可以

是的,我还有一个建议是最好能把post换位get,因为post每次都会返回400错误,我怕到时候被openai判定为恶意攻击,封号啥的

adamlui commented 1 year ago

@gydx6 这原本是GET方法,但是在 #7 中,@NoahXcl 说会返回403,所以他改成了POST方法,虽然返回了400但是可以使用。你是否也像他一样使用GET方法会返回403?

gydx6 commented 1 year ago

@gydx6 这原本是GET方法,但是在 #7 中,@NoahXcl 说会返回403,所以他改成了POST方法,虽然返回了400但是可以使用。你是否也像他一样使用GET方法会返回403?

get一切正常,不会返回403或者400,那个人说get返回403的原因估计是他已经断联了

adamlui commented 1 year ago

你有没有想过如何保持网络连接不丢失?

gydx6 commented 1 year ago

你有没有想过如何保持网络连接不丢失?

说实话,我没有网络这方面的基础,我刚刚问了gpt4,他是这样回答的: 为了保持与服务器的连接,您可以尝试以下方法:

使用WebSockets:WebSockets 提供了一种在客户端和服务器之间建立持久连接的方法,允许实时双向通信。您可以尝试使用 WebSocket 与服务器保持连接,以便在需要时发送和接收数据。

使用心跳包:心跳包是定期发送的小型数据包,用于告知服务器您仍然在线。您可以设置一个计时器,以固定的时间间隔向服务器发送轻量级请求,以保持连接。请注意,不要过于频繁地发送心跳包,以免给服务器带来过多负担。

调整刷新间隔:如果您使用 GET 请求或其他方法来保持连接,请尝试增加刷新间隔。较长的间隔可能减少服务器的负担,降低被服务器认为是非法操作的风险。

与 OpenAI 服务器协商:尝试联系 OpenAI 以了解他们是否有任何建议或官方方法来保持与服务器的连接。

请注意,使用这些方法可能需要您对脚本进行一定程度的修改。在修改脚本之前,请确保您了解每种方法的工作原理以及可能的风险。遵循服务器的使用政策和指南,以防止被封禁或限制。

adamlui commented 1 year ago

@gydx6 @selfboot 我用一个无头的方法替换了自动刷新方法,我在最新更新中测试了一个小时后仍然可以工作!

gydx6 commented 1 year ago

@gydx6 @selfboot 我用一个无头的方法替换了自动刷新方法,我在最新更新中测试了一个小时后仍然可以工作!

如果能不用@require就更好了,方便我们直接查看源代码的实现

adamlui commented 1 year ago

@gydx6 它对你也有用吗? 神奇之处在于 https://github.com/chatgptjs/chatgpt.js/blob/main/chatgpt.js btw 第 42-112 行的“autoRefresh”方法

gydx6 commented 1 year ago

@gydx6 它对你也有用吗? 神奇之处在于 https://github.com/chatgptjs/chatgpt.js/blob/main/chatgpt.js btw 第 42-112 行的“autoRefresh”方法

我这几天有空时测试一下,其实之前的脚本已经很好满足了我的需求,基本上不会掉线,你用的新方法与之前的GET和POST相比有什么特殊的优势吗,我很好奇

adamlui commented 1 year ago

@gydx6 除了为报告它对您不起作用的用户进行修复之外,我想不出任何优势

另外,既然它对你有用,你能对 Greasy Fork 留下正面评价吗?

adamlui commented 1 year ago

@gydx6 顺便说一句,我正在使用谷歌翻译,所以我的一些句子可能很奇怪

gydx6 commented 1 year ago

@gydx6 除了为报告它对您不起作用的用户进行修复之外,我想不出任何优势

另外,既然它对你有用,你能对 Greasy Fork 留下正面评价吗?

No problem! I just gave a positive review on Grease Monkey, I thought you were Chinese, so I used Chinese

adamlui commented 1 year ago

@gydx6 thank you!! I am Chinese American my Chinese sucks lol

selfboot commented 1 year ago

Finally, only I am in China, using Chinese.

adamlui commented 1 year ago

@selfboot can you review too then if you confirm it works after several hours? It would help reward my effort (it was really hard for me to solve)

selfboot commented 1 year ago

In fact, i switched to another plugin and it was working fine.

https://github.com/xcanwin/KeepChatGPT/

adamlui commented 1 year ago

@selfboot that one uses hundreds of lines of unnecessary code to do unnecessary stuff like create an iframe to pass Cloudflare, but mine uses less than 70 lines because it doesn't need to pass Cloudflare since it works to keep the session alive ( so less memory used )

adamlui commented 1 year ago

@selfboot I meant it's necessary for him because he didn't know how to solve, but in mine it's unnecesssary so much fewer lines & complexity = faster browser

adamlui commented 1 year ago

@selfboot Also when he first released the plug-in, he left a fake negative review on mine that I had to report to get removed, so he is a bad person

adamlui commented 1 year ago

@selfboot ( so someone who is bad like that is capable of injecting bad code in the future that does dangerous things )

selfboot commented 1 year ago

@adamlui Thank you very much for your suggestion. I have switched back to chatgpt-auto-refresh and no longer need to refresh the page repeatedly.

Also, after looking at the code, yours is indeed much simpler and safer.

selfboot commented 1 year ago

@selfboot can you review too then if you confirm it works after several hours? It would help reward my effort (it was really hard for me to solve)

I gave a positive review on Grease Monkey too.