diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 64e1db1d..ad0332c1 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -23,4 +23,4 @@ darling = "0.20.3" [features] # this feature is used for production builds or when `devPath` points to the filesystem # DO NOT REMOVE!! -custom-protocol = ["tauri/custom-protocol"] \ No newline at end of file +custom-protocol = ["tauri/custom-protocol"] diff --git a/src/lib/ChatScreens/DefaultChatScreen.svelte b/src/lib/ChatScreens/DefaultChatScreen.svelte index 53daa0c1..97710c49 100644 --- a/src/lib/ChatScreens/DefaultChatScreen.svelte +++ b/src/lib/ChatScreens/DefaultChatScreen.svelte @@ -404,7 +404,7 @@ {#if $DataBase.useAutoSuggestions} messageInput=( - $DataBase.subModel === "textgen_webui" && $DataBase.autoSuggestClean + ($DataBase.subModel === "textgen_webui" || $DataBase.subModel === "mancer") && $DataBase.autoSuggestClean ? msg.replace(/ +\(.+?\) *$| - [^"'*]*?$/, '') : msg )} {send}/> diff --git a/src/lib/ChatScreens/Suggestion.svelte b/src/lib/ChatScreens/Suggestion.svelte index e079f3d6..2a0f6fa4 100644 --- a/src/lib/ChatScreens/Suggestion.svelte +++ b/src/lib/ChatScreens/Suggestion.svelte @@ -75,7 +75,7 @@ } ] - if($DataBase.subModel === "textgen_webui"){ + if($DataBase.subModel === "textgen_webui" || $DataBase.subModel === 'mancer'){ promptbody = [ { role: 'system', diff --git a/src/lib/Setting/Pages/BotSettings.svelte b/src/lib/Setting/Pages/BotSettings.svelte index e0d4d8a9..646a0b12 100644 --- a/src/lib/Setting/Pages/BotSettings.svelte +++ b/src/lib/Setting/Pages/BotSettings.svelte @@ -57,7 +57,7 @@ unsub() }) - $: if($DataBase.aiModel === 'textgen_webui'){ + $: if($DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'mancer'){ $DataBase.useStreaming = $DataBase.textgenWebUIStreamURL.startsWith("wss://") } @@ -121,7 +121,10 @@ NovelList {language.apiKey} {/if} - +{#if $DataBase.aiModel.startsWith('mancer') || $DataBase.subModel.startsWith('mancer')} + Mancer {language.apiKey} + +{/if} {#if $DataBase.aiModel.startsWith('claude') || $DataBase.subModel.startsWith('claude')} Claude {language.apiKey} @@ -222,11 +225,12 @@ {/if} -{#if $DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'textgen_webui'} - Oobabooga Blocking {language.providerURL} +{#if $DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'textgen_webui' + || $DataBase.aiModel === 'mancer' || $DataBase.subModel === 'mancer'} + Blocking {language.providerURL} You must use textgen webui with --public-api - Oobabooga Stream {language.providerURL} + Stream {language.providerURL} {#if !isTauri} You are using web version. you must use ngrok or other tunnels to use your local webui. @@ -261,7 +265,7 @@ {/if} {($DataBase.temperature / 100).toFixed(2)} -{#if $DataBase.aiModel === 'textgen_webui'} +{#if $DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'mancer'} Repetition Penalty {($DataBase.ooba.repetition_penalty).toFixed(2)} diff --git a/src/lib/UI/ModelList.svelte b/src/lib/UI/ModelList.svelte index 0fd23eb1..ba24ff93 100644 --- a/src/lib/UI/ModelList.svelte +++ b/src/lib/UI/ModelList.svelte @@ -36,6 +36,8 @@ return "PaLM2" case "textgen_webui": return "Oobabooga WebUI" + case "mancer": + return "Mancer" case "kobold": return "Kobold" case "custom": @@ -111,6 +113,7 @@ + diff --git a/src/ts/process/request.ts b/src/ts/process/request.ts index 9b16b85b..6c056f0b 100644 --- a/src/ts/process/request.ts +++ b/src/ts/process/request.ts @@ -433,7 +433,8 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model' } } - case "textgen_webui":{ + case "textgen_webui": + case 'mancer':{ let streamUrl = db.textgenWebUIStreamURL.replace(/\/api.*/, "/api/v1/stream") let blockingUrl = db.textgenWebUIBlockingURL.replace(/\/api.*/, "/api/v1/generate") let bodyTemplate:any @@ -464,6 +465,11 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model' add_bos_token: true, prompt: proompt } + + const headers = (aiModel === 'textgen_webui') ? {} : { + 'X-API-KEY': db.mancerHeader + } + if(db.useStreaming && arg.useStreaming){ const oobaboogaSocket = new WebSocket(streamUrl); const statusCode = await new Promise((resolve) => { @@ -514,7 +520,7 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model' const res = await globalFetch(blockingUrl, { body: bodyTemplate, - headers: {}, + headers: headers, abortSignal }) diff --git a/src/ts/process/templates/getRecomended.ts b/src/ts/process/templates/getRecomended.ts index 7504baa6..de5df181 100644 --- a/src/ts/process/templates/getRecomended.ts +++ b/src/ts/process/templates/getRecomended.ts @@ -25,9 +25,13 @@ export async function setRecommended(model: string, ask:'ask'|'force') { const pr:botPreset = prebuiltPresets.NAI setDatabase(setPreset(db, pr)) } - else if(db.aiModel === 'textgen_webui'){ + else if(db.aiModel === 'textgen_webui' || db.aiModel === 'mancer'){ + const model = db.aiModel + const submodel = db.subModel const sel = parseInt(await alertSelect(["Vicuna, WizardLM, Airoboros", "OpenChat V3.2", "Guanaco", "OpenAssistant", "Dolphin, Luna", "StableBeluga, Orca-Mini", "Others (Alpaca, Nous-Hermes, ...)"])) let pr = prebuiltPresets.ooba + pr.aiModel = model + pr.subModel = submodel pr.mainPrompt = pr.bias = pr.globalNote = undefined pr.jailbreak = "" if(!db.autoSuggestPrompt || db.autoSuggestPrompt === defaultAutoSuggestPrompt){ @@ -99,5 +103,5 @@ export async function setRecommended(model: string, ask:'ask'|'force') { } export function recommendedPresetExist(model:string){ - return model.startsWith('gpt') || model === 'openrouter' || model === 'reverse_proxy' || model === 'textgen_webui' || model.startsWith('novelai') + return model.startsWith('gpt') || model === 'openrouter' || model === 'reverse_proxy' || model === 'textgen_webui' || model.startsWith('novelai') || model === 'mancer' } \ No newline at end of file diff --git a/src/ts/storage/database.ts b/src/ts/storage/database.ts index 10fe668d..d71dc196 100644 --- a/src/ts/storage/database.ts +++ b/src/ts/storage/database.ts @@ -303,7 +303,7 @@ export function setDatabase(data:Database){ data.colorSchemeName ??= 'default' data.NAIsettings.starter ??= "" data.hypaModel ??= 'MiniLM' - + data.mancerHeader ??= '' changeLanguage(data.language) DataBase.set(data) } @@ -622,6 +622,7 @@ export interface Database{ forceProxyAsOpenAI?:boolean hypaModel:'ada'|'MiniLM' saveTime?:number + mancerHeader:string } interface hordeConfig{