JimmyLv / BibiGPT-v1

BibiGPT v1 · one-Click AI Summary for Audio/Video & Chat with Learning Content: Bilibili | YouTube | Tweet丨TikTok丨Dropbox丨Google Drive丨Local files | Websites丨Podcasts | Meetings | Lectures, etc. 音视频内容 AI 一键总结 & 对话:哔哩哔哩丨YouTube丨推特丨小红书丨抖音丨快手丨百度网盘丨阿里云盘丨网页丨播客丨会议丨本地文件等 (原 BiliGPT 省流神器 & AI课代表)
https://bibigpt.co
GNU General Public License v3.0
5.24k stars 702 forks source link

关于getSmallSizeTranscripts的疑问或bug? #158

Closed lightfate closed 1 year ago

lightfate commented 1 year ago

https://github.com/JimmyLv/BibiGPT/blob/e491477687b04de6765220029ec85fe57296fc20/lib/openai/getSmallSizeTranscripts.ts#L92C86-L92C86 这行代码有个地方没想通,这段代码我的理解是将旧字幕项添加到结果中,但同时需要确保总字节长度不超过限制。如果添加旧字幕项会导致超出限制,则只添加该字幕项的一部分;如果不会超出限制,则完整添加该字幕项。 比如我们假设以下参数: lastByteLength: 1000 nextTextByteLength: 300 byteLimit: 1000 也就是说这时候文本正好达到限制长度,应该不截取任何长度到resultData中 但实际计算确是 计算超出的字节数: 1000+300−1000=300 计算超出比率: overRate=300/300=1 const chunkedText = obj.text.substring(0, Math.floor(obj.text.length * overRate)); 这不就变成了把这一段文本都放到resultdata中吗 不知道是否是哪里理解错了

JimmyLv commented 1 year ago

最好不要用这个方案啦,可以看看 Langchain 的 mapreduce https://python.langchain.com/docs/modules/chains/document/map_reduce

lightfate commented 1 year ago

最好不要用这个方案啦,可以看看 Langchain 的 mapreduce https://python.langchain.com/docs/modules/chains/document/map_reduce

mapreduce是否会增加token的使用数,如果视频很长很长,就要消耗视频总长度的token数

JimmyLv commented 1 year ago

多快好省,不能兼得啦