From 3f78daf5633623a297162eb72fc56a1beab8faad Mon Sep 17 00:00:00 2001 From: Yuhwan Kim Date: Sun, 2 Jun 2024 03:53:50 +0900 Subject: [PATCH 1/4] Add translation response size option --- src/lang/cn.ts | 1 + src/lang/en.ts | 1 + src/lang/ko.ts | 1 + src/lang/zh-Hant.ts | 1 + src/lib/Setting/Pages/LanguageSettings.svelte | 10 ++++++---- src/ts/storage/database.ts | 11 +++++++++-- src/ts/translator/translator.ts | 2 +- 7 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/lang/cn.ts b/src/lang/cn.ts index 33ec2e43..de0e4f31 100644 --- a/src/lang/cn.ts +++ b/src/lang/cn.ts @@ -472,6 +472,7 @@ export const languageChinese = { "imgGenInstructions": "图像生成指令", "usePlainFetchWarn": "请在使用NovelAI时禁用此选项,因为它可能导致CORS错误。", "translationPrompt": "翻译提示", + "translationResponseSize": "翻译响应大小", "webdeeplwarn": "此选项不推荐在网页版本中使用,因为它可能导致CORS错误。", "saveBackupLocal": "本地保存备份", "loadBackupLocal": "本地加载备份", diff --git a/src/lang/en.ts b/src/lang/en.ts index 631378ce..dda63234 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -504,6 +504,7 @@ export const languageEnglish = { imgGenInstructions: "Image Generation Instructions", usePlainFetchWarn: "Please disable this option when using NovelAI, as it can cause CORS errors when using NovelAI.", translationPrompt: "Translation Prompt", + translationResponseSize: "Translation Response Size", webdeeplwarn: "This option is not recommended for use with web version, as it can cause CORS errors.", saveBackupLocal: "Save Backup Locally", loadBackupLocal: "Load Backup Locally", diff --git a/src/lang/ko.ts b/src/lang/ko.ts index 2353f596..d0a85278 100644 --- a/src/lang/ko.ts +++ b/src/lang/ko.ts @@ -469,6 +469,7 @@ export const languageKorean = { "imgGenInstructions": "이미지 생성 지시사항", "usePlainFetchWarn": "NovelAI 사용 시 CORS 오류가 발생할 수 있으므로, NovelAI를 사용할 때는 이 옵션을 비활성화해 주세요.", "translationPrompt": "번역 프롬프트", + "translationResponseSize": "번역 응답 크기", "webdeeplwarn": "이 옵션은 웹에서는 제대로 작동하지 않을 수 있습니다.", "saveBackupLocal": "로컬 백업 저장", "loadBackupLocal": "로컬 백업 불러오기", diff --git a/src/lang/zh-Hant.ts b/src/lang/zh-Hant.ts index 607d5944..5e50f5d8 100644 --- a/src/lang/zh-Hant.ts +++ b/src/lang/zh-Hant.ts @@ -472,6 +472,7 @@ export const languageChineseTraditional = { "imgGenInstructions": "圖像產生指令", "usePlainFetchWarn": "請在使用NovelAI時禁用此選項,因為它可能導致CORS錯誤。", "translationPrompt": "翻譯提示", + "translationResponseSize": "翻譯響應大小", "webdeeplwarn": "此選項不推薦在網頁版本中使用,因為它可能導致CORS錯誤。", "saveBackupLocal": "本地保存備份", "loadBackupLocal": "本地載入備份", diff --git a/src/lib/Setting/Pages/LanguageSettings.svelte b/src/lib/Setting/Pages/LanguageSettings.svelte index 0974f0af..c18bc6de 100644 --- a/src/lib/Setting/Pages/LanguageSettings.svelte +++ b/src/lib/Setting/Pages/LanguageSettings.svelte @@ -5,7 +5,8 @@ import { sleep } from "src/ts/util"; import OptionInput from "src/lib/UI/GUI/OptionInput.svelte"; import SelectInput from "src/lib/UI/GUI/SelectInput.svelte"; - import { alertNormal, alertSelect } from "src/ts/alert"; + import NumberInput from "src/lib/UI/GUI/NumberInput.svelte"; + import { alertNormal, alertSelect, alertConfirm } from "src/ts/alert"; import { downloadFile, isTauri } from "src/ts/storage/globalApi"; import { languageEnglish } from "src/lang/en"; import TextInput from "src/lib/UI/GUI/TextInput.svelte"; @@ -13,7 +14,7 @@ import Help from "src/lib/Others/Help.svelte"; let langChanged = false - +

{language.language}

{language.UiLanguage} @@ -111,7 +112,8 @@ {/if} {#if $DataBase.translatorType === 'llm'} - {language.translationPrompt} + {language.translationResponseSize} + {/if} @@ -125,4 +127,4 @@ -{/if} \ No newline at end of file + {/if} \ No newline at end of file diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index 158dfa41..eb862d1e 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -93,6 +93,9 @@ export function setDatabase(data:Database){ if(checkNullish(data.translator)){ data.translator = '' } + if(checkNullish(data.translatorMaxResponse)){ + data.translatorMaxResponse = 1000 + } if(checkNullish(data.currentPluginProvider)){ data.currentPluginProvider = '' } @@ -610,6 +613,7 @@ export interface Database{ huggingfaceKey:string allowAllExtentionFiles?:boolean translatorPrompt:string + translatorMaxResponse:number top_p: number, google: { accessToken: string @@ -897,6 +901,7 @@ export interface botPreset{ useInstructPrompt?:boolean customPromptTemplateToggle?:string templateDefaultVariables?:string + translatorMaxResponse: number } @@ -1101,7 +1106,7 @@ export const presetTemplate:botPreset = { }, top_p: 1, useInstructPrompt: false, - + translatorMaxResponse: 1000, } const defaultSdData:[string,string][] = [ @@ -1165,7 +1170,8 @@ export function saveCurrentPreset(){ openrouterProvider: db.openrouterProvider, useInstructPrompt: db.useInstructPrompt, customPromptTemplateToggle: db.customPromptTemplateToggle ?? "", - templateDefaultVariables: db.templateDefaultVariables ?? "" + templateDefaultVariables: db.templateDefaultVariables ?? "", + translatorMaxResponse: db.translatorMaxResponse } db.botPresets = pres setDatabase(db) @@ -1250,6 +1256,7 @@ export function setPreset(db:Database, newPres: botPreset){ db.useInstructPrompt = newPres.useInstructPrompt ?? false db.customPromptTemplateToggle = newPres.customPromptTemplateToggle ?? '' db.templateDefaultVariables = newPres.templateDefaultVariables ?? '' + db.translatorMaxResponse = newPres.translatorMaxResponse ?? db.translatorMaxResponse return db } diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts index e4ca8957..c991c240 100644 --- a/src/ts/translator/translator.ts +++ b/src/ts/translator/translator.ts @@ -464,7 +464,7 @@ async function translateLLM(text:string, arg:{to:string}){ bias: {}, useStreaming: false, noMultiGen: true, - maxTokens: 1000, + maxTokens: db.translatorMaxResponse, }, 'submodel') if(rq.type === 'fail' || rq.type === 'streaming' || rq.type === 'multiline'){ From fe405c0ed21a50a3d14abc9af797b86b9cd3072c Mon Sep 17 00:00:00 2001 From: Yuhwan Kim Date: Sun, 2 Jun 2024 05:05:41 +0900 Subject: [PATCH 2/4] Improved outer tag removal. --- src/ts/translator/translator.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts index c991c240..ee696fd1 100644 --- a/src/ts/translator/translator.ts +++ b/src/ts/translator/translator.ts @@ -416,8 +416,8 @@ export async function translateHTML(html: string, reverse:boolean, charArg:simpl // Serialize the DOM back to HTML const serializer = new XMLSerializer(); let translatedHTML = serializer.serializeToString(dom); - // Remove the outer tags - translatedHTML = translatedHTML.replace(/^]*>|<\/body>$/g, ''); + // Remove the outer tags + translatedHTML = translatedHTML.replace(/<\/?(html|body|head)[^>]*>/g, ''); if(charArg !== ''){ let scripts:customscript[] = [] From 391295d15f06ce5e1f0a84c326601d04fdc080f9 Mon Sep 17 00:00:00 2001 From: Yuhwan Kim Date: Sun, 2 Jun 2024 05:10:58 +0900 Subject: [PATCH 3/4] Modify LLM HTML translation to also use DOM parser --- src/ts/translator/translator.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts index ee696fd1..187ad48c 100644 --- a/src/ts/translator/translator.ts +++ b/src/ts/translator/translator.ts @@ -238,10 +238,7 @@ export async function translateHTML(html: string, reverse:boolean, charArg:simpl return html } } - if(db.translatorType === 'llm'){ - const tr = db.translator || 'en' - return translateLLM(html, {to: tr}) - } + const dom = new DOMParser().parseFromString(html, 'text/html'); console.log(html) From 011795e08319ddf2f9e24e57e4d8d3d23da56f02 Mon Sep 17 00:00:00 2001 From: Yuhwan Kim Date: Sun, 2 Jun 2024 07:37:23 +0900 Subject: [PATCH 4/4] Delete wrong tab space in LanguageSettings.svelte file --- src/lib/Setting/Pages/LanguageSettings.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/Setting/Pages/LanguageSettings.svelte b/src/lib/Setting/Pages/LanguageSettings.svelte index c18bc6de..4f54c5ef 100644 --- a/src/lib/Setting/Pages/LanguageSettings.svelte +++ b/src/lib/Setting/Pages/LanguageSettings.svelte @@ -14,7 +14,7 @@ import Help from "src/lib/Others/Help.svelte"; let langChanged = false - +

{language.language}

{language.UiLanguage} @@ -127,4 +127,4 @@ - {/if} \ No newline at end of file +{/if} \ No newline at end of file