From 5f7a5386d4129135ef730b2554db112ae75b60a4 Mon Sep 17 00:00:00 2001 From: kwaroran Date: Thu, 17 Aug 2023 17:46:06 +0900 Subject: [PATCH] [feat] added 0613 to reverse proxy --- src/lang/en.ts | 4 +++ src/lib/Setting/Pages/BotSettings.svelte | 2 ++ src/lib/Setting/Pages/LanguageSettings.svelte | 28 ++++++++++----- src/ts/storage/database.ts | 12 ++++++- src/ts/translator/translator.ts | 35 +++++++++++++++++-- 5 files changed, 69 insertions(+), 12 deletions(-) diff --git a/src/lang/en.ts b/src/lang/en.ts index 93ef9fa4..0b3f54ec 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -417,4 +417,8 @@ export const languageEnglish = { emotionMethod: "Emotion Method", continueResponse: "Continue Response", showMenuChatList: "Show Menu Chat List", + translatorLanguage: "Translator Language", + translatorType: "Translator Type", + deeplKey: "deepL API Key", + deeplFreeKey: "deepL Free API Key", } \ No newline at end of file diff --git a/src/lib/Setting/Pages/BotSettings.svelte b/src/lib/Setting/Pages/BotSettings.svelte index 1fcbe0e7..fc232cd6 100644 --- a/src/lib/Setting/Pages/BotSettings.svelte +++ b/src/lib/Setting/Pages/BotSettings.svelte @@ -143,6 +143,8 @@ GPT-4 32k GPT-3.5 0301 GPT-4 0301 + GPT-3.5 0613 + GPT-4 0613 claude-2 claude-v1.3 claude-v1.3-100k diff --git a/src/lib/Setting/Pages/LanguageSettings.svelte b/src/lib/Setting/Pages/LanguageSettings.svelte index 91b5807f..60215c02 100644 --- a/src/lib/Setting/Pages/LanguageSettings.svelte +++ b/src/lib/Setting/Pages/LanguageSettings.svelte @@ -9,6 +9,7 @@ import { alertNormal } from "src/ts/alert"; import { downloadFile } from "src/ts/storage/globalApi"; import { languageEnglish } from "src/lang/en"; + import TextInput from "src/lib/UI/GUI/TextInput.svelte"; let langChanged = false

{language.language}

@@ -32,7 +33,7 @@ {#if langChanged} Close the settings to take effect {/if} -{language.translator} +{language.translatorLanguage} {language.disabled} Korean @@ -46,17 +47,28 @@ Indonesian Malaysian Ukranian - {#if $DataBase.translator} + {language.translatorType} + + Google + DeepL + + + {#if $DataBase.translatorType === 'deepl'} + + {language.deeplKey} + + +
+ +
+ + {/if} + +
- {#if $DataBase.useExperimental} -
- - -
- {/if} {/if} \ No newline at end of file diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index d862d474..35788b0a 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -305,6 +305,11 @@ export function setDatabase(data:Database){ data.hypaModel ??= 'MiniLM' data.mancerHeader ??= '' data.emotionProcesser ??= 'submodel' + data.translatorType ??= 'google' + data.deeplOptions ??= { + key:'', + freeApi: false + } changeLanguage(data.language) DataBase.set(data) } @@ -465,7 +470,12 @@ export interface Database{ saveTime?:number mancerHeader:string emotionProcesser:'submodel'|'embedding', - showMenuChatList?:boolean + showMenuChatList?:boolean, + translatorType:'google'|'deepl'|'none', + deeplOptions:{ + key:string, + freeApi:boolean + } } export interface customscript{ diff --git a/src/ts/translator/translator.ts b/src/ts/translator/translator.ts index b004682a..9e1b71b4 100644 --- a/src/ts/translator/translator.ts +++ b/src/ts/translator/translator.ts @@ -1,6 +1,8 @@ import { get } from "svelte/store" import { translatorPlugin } from "../plugins/plugins" import { DataBase } from "../storage/database" +import { globalFetch } from "../storage/globalApi" +import { alertError } from "../alert" let cache={ origin: [''], @@ -28,10 +30,10 @@ export async function translate(text:string, reverse:boolean) { } } - return googleTrans(text, reverse, db.translator,db.aiModel.startsWith('novellist') ? 'ja' : 'en') + return runTranslator(text, reverse, db.translator,db.aiModel.startsWith('novellist') ? 'ja' : 'en') } -async function googleTrans(text:string, reverse:boolean, from:string,target:'en'|'ja') { +async function runTranslator(text:string, reverse:boolean, from:string,target:'en'|'ja') { const arg = { from: reverse ? from : target, @@ -70,6 +72,11 @@ async function googleTrans(text:string, reverse:boolean, from:string,target:'en' } const result = await translateMain(trimed, arg); + if(result.startsWith('ERR::')){ + alertError(result) + return text + } + fullResult.push(result.trim()) } @@ -90,6 +97,28 @@ async function googleTrans(text:string, reverse:boolean, from:string,target:'en' } async function translateMain(text:string, arg:{from:string, to:string, host:string}){ + let db = get(DataBase) + + if(db.translatorType === 'deepl'){ + let url = db.deeplOptions.freeApi ? "https://api-free.deepl.com/v2/translate" : "https://api.deepl.com/v2/translate" + const f = await globalFetch(url, { + headers: { + "Authorization": "DeepL-Auth-Key " + db.deeplOptions.key, + }, + body: { + text: text, + source_lang: arg.from.toLocaleUpperCase(), + target_lang: arg.to.toLocaleUpperCase(), + } + }) + + if(!f.ok){ + return 'ERR::DeepL API Error' + (await f.data) + } + return f.data.translations[0].text + + } + const url = `https://${arg.host}/translate_a/single?client=gtx&dt=t&sl=${arg.from}&tl=${arg.to}&q=` + encodeURIComponent(text) @@ -129,5 +158,5 @@ async function jaTrans(text:string) { if(/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/.test(text)){ return text } - return await googleTrans(text,false, 'en','ja') + return await runTranslator(text,false, 'en','ja') } \ No newline at end of file