chatGPTBox icon indicating copy to clipboard operation
chatGPTBox copied to clipboard

内容提取不全的问题找到了,希望作者解决一下。

Open Wooden-Gear opened this issue 1 year ago • 7 comments

我使用的时候,很多网页都会出现内容提取不全的问题。 今天终于通过试错的方式,找到了原因:就是网页没有完全加载出来,插件就提取内容了。 因为我完全不懂编程,所以是让AI帮忙,在代码中试着加入15秒的延迟,发现确实可行。 但这种加入延迟的方案有点蠢,希望作者能够用其他方案解决以下。 我试的是知乎的网页,哔哩哔哩同样有问题,但我没有试,应该也是同样的情况。 我一开始连github上的源代码文件是啥都不知道,通过AI一步步找出问题啊! 看在我这么上心的份上,你不得赶紧解决以下。

Wooden-Gear avatar Jul 04 '24 17:07 Wooden-Gear

用的是哪个功能,alt+B总结吗,还是啥

josStorer avatar Jul 05 '24 02:07 josStorer

用的是哪个功能,alt+B总结吗,还是啥

“src/content-script/site-adapters/zhihu”这个文件。 “src/content-script/site-adapters/”这个文件夹下的bilibili也有问题,事实上我怀疑这个文件夹下的所有插入组件都有同样的问题。毕竟要是没有监测网页完全加载的代码,那么必然会导致加载不全的时候,就提取内容。 你说的总结我也试过,也是有问题的。

咱是不是换一个思路,把提取内容这个操作,放在执行总结、询问等等操作之前,只有用户的点击了总结、询问的按钮,才执行提取操作。

按照我的逻辑,你们编程的时候,有些代码在非必要的时候,不是应该尽量不执行,以节省资源吗?(虽然占不了多少资源,但思路应该是这个思路吧!) 原本的代码,不管用户在这个页面会不会用到chatgptbox,上来就提取网页内容,这显然是不必要的吧! (以上是我一个完全不懂编程的人,出于逻辑层面的一些疑惑。)

@josStorer

Wooden-Gear avatar Jul 05 '24 05:07 Wooden-Gear

@josStorer 作者大大,总结和询问chatgptbox页面内容的过程是不是这样的。

打开网页——挂载页面组件——根据网站调用src/content-script/site-adapters/文件夹下的index.mjs文件——index文件提取网页内容——调用croptext函数对内容进行裁剪拼接——加入提示词成为最终的内容——用户点击——把内容传输给AI——AI输出结果。

如果我这个猜测没错的话,只要把"用户点击"放到 调用“src/content-script/site-adapters/文件夹下的index.mjs文件”之前,就不会出现提取内容不全的情况了吧?

Wooden-Gear avatar Jul 05 '24 06:07 Wooden-Gear

一般来说,页面加载完成后,才会开始执行这些逻辑,提取网页内容,如果你开一些载入慢的页面,会发现一直没有挂载组件,你说的提取内容不全,可能是因为某些内容被裁切了,你可以点击下图的这个按钮,查看发给AI的内容是什么 image

josStorer avatar Jul 05 '24 07:07 josStorer

我就是点击了这个按钮才确定是提取不全的缘故啊!起先我还以为是大模型太拉了,真是冤枉人家了。 而且有些长文本少的不是一星半点,也不大可能是劫持的缘故吧! 毕竟我加入延迟15秒的代码之后,就解决问题了。 如果是被劫持了,那延迟15秒也不管用啊! 我之前也加过监测页面是否加载完成的代码,但是不起作用。 AI提供了3种方案,各有各的优缺点,我加的好像是监测动态页面的,没起作用。 监测静态页面的没试过,延迟的试了有用。 最好的解决方案,就应该是用户点击总结、询问按钮之后,再提取页面内容吧! @josStorer

Wooden-Gear avatar Jul 05 '24 07:07 Wooden-Gear

我就是点击了这个按钮才确定是提取不全的缘故啊!起先我还以为是大模型太拉了,真是冤枉人家了。 而且有些长文本少的不是一星半点,也不大可能是劫持的缘故吧! 毕竟我加入延迟15秒的代码之后,就解决问题了。 如果是被劫持了,那延迟15秒也不管用啊! 我之前也加过监测页面是否加载完成的代码,但是不起作用。 AI提供了3种方案,各有各的优缺点,我加的好像是监测动态页面的,没起作用。 监测静态页面的没试过,延迟的试了有用。 最好的解决方案,就应该是用户点击总结、询问按钮之后,再提取页面内容吧! @josStorer

长文本提取不全的问题我老早就遇到了,跟其他总结摘要的插件也做过比对(比如elmo chat),确实中间一大块都漏掉了。以前我把原因归结于代码中写死的只提取2000个字节(一头一尾加起来)的网页文本,(2013年早起代码确实写死了取文本的长度,毕竟那个时候各路chatgpt都只有2K的上下文),后来尝试过修改配置里面的token的大小,改到4K、8K,有所改善但是改善不多,所以我认为可能不是这个原因,但是没有你这样的钻研精神(不懂编程也能研究的这么深入,我懂代码但是没有探索精神),后来其他网页总结工具层出不穷,用了其他的工具之后暂时回不来了。 但是今天又回来是看这个最早的工具,是因为其他网页摘要工具大多绑定了LLM(elmo绑定了mistral,kimi绑定了kimi,Slax绑定了chatgpt-4o),我有时候想切换一下后端LLM(感谢大模型最低价格战)他们都都做不到。 持续关注这个issue,如果能解决,那我继续回来。

anuxs avatar Jul 09 '24 02:07 anuxs

https://github.com/josStorer/chatGPTBox/issues/764

是同一个问题吧,我也遇到了,我是用的自定义的支持超长上下文的 gemini 2.0 的模型,总结全文,提取的只有很少一点内容,切成内置的 kimi 100k 模型才能正常提取到所有内容

刚才又试了发现,这个问题可以通过设置默认模型为内置的 kimi 100k,点击总结全文,然后切换成其他的模型再重新生成内容来绕过,这时候喂给其他模型的也是长文内容了。

heroesm avatar Jan 08 '25 09:01 heroesm