web: The concurrent translation function has been added, and the maxi…
增加了并发翻译功能,并且可以设置最大并发量(此功能可以极大提高翻译速度) 由于翻译log在翻译过程中只会显示第几次翻译,因此在前面加上了章节序号和分段序号 由于是并发翻译,所以翻译log的输出会比较乱 目前有个两小bug: 1 是停止后想要重新翻译只能刷新页面 2 是刷新页面后的并发量虽然默认显示1,但其实是之前翻译的并发,需要重新把值修改一次(这样监视器才会识别到值的修改)
翻译过程截图
(图中的失败是并发的api的余额不足(Insufficient Balance)导致的,不是代码的问题)
以下是修改的文件 web src domain translate Common.ts --在 SegmentContext 新增章节序号和分段序号 TranslateLocal.ts --修改为对章节的并发翻译(同时在翻译停止时关闭所有并发),同时向下传递章节序号 Translator.ts --修改为对分段的并发翻译(同时限制并发量),同时向下传递章节序号和分段序号 TranslatorOpenAi.ts --在 translate 打印章节序号和分段序号 TranslatorSakura.ts --在 translate 打印章节序号和分段序号 Semaphore.ts --并发限制的锁(最大并发量在此处修改),及修改并发量和创建锁的函数 pages novel components TranslateOptions.vue --增加调节最大并发量的控件及对其的监视器 workspace components JobWorker.vue --在启动时根据之前调节的最大并发量,创建并发限制的锁 vite.config.ts --在 server 新增对 host 和 port 的指定(我这边默认端口使用不了才加的)
不好意思啊,最近上班太忙了,抽不出来时间做code review。
并行翻译这个功能其实已经有方案了,做了一半,在workspace分支里面。 这种大型的pr最好先在qq/tg群里面at我商量下方案,不然因为方案冲突没办法合就尴尬了。
等我有时间会看下是先把你的方案合入,还是直接把做一半的方案做完。不好说春节前能不能有时间,上班上麻了。。。