mancer support

This commit is contained in:
kwaroran
2023-08-15 16:31:47 +09:00
parent 25bbf7703b
commit 22ea6b0890
8 changed files with 32 additions and 14 deletions

View File

@@ -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"]
custom-protocol = ["tauri/custom-protocol"]

View File

@@ -404,7 +404,7 @@
{#if $DataBase.useAutoSuggestions}
<Suggestion messageInput={(msg)=>messageInput=(
$DataBase.subModel === "textgen_webui" && $DataBase.autoSuggestClean
($DataBase.subModel === "textgen_webui" || $DataBase.subModel === "mancer") && $DataBase.autoSuggestClean
? msg.replace(/ +\(.+?\) *$| - [^"'*]*?$/, '')
: msg
)} {send}/>

View File

@@ -75,7 +75,7 @@
}
]
if($DataBase.subModel === "textgen_webui"){
if($DataBase.subModel === "textgen_webui" || $DataBase.subModel === 'mancer'){
promptbody = [
{
role: 'system',

View File

@@ -57,7 +57,7 @@
unsub()
})
$: if($DataBase.aiModel === 'textgen_webui'){
$: if($DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'mancer'){
$DataBase.useStreaming = $DataBase.textgenWebUIStreamURL.startsWith("wss://")
}
</script>
@@ -121,7 +121,10 @@
<span class="text-textcolor">NovelList {language.apiKey}</span>
<TextInput marginBottom={true} size={"sm"} placeholder="..." bind:value={$DataBase.novellistAPI}/>
{/if}
{#if $DataBase.aiModel.startsWith('mancer') || $DataBase.subModel.startsWith('mancer')}
<span class="text-textcolor">Mancer {language.apiKey}</span>
<TextInput marginBottom={true} size={"sm"} placeholder="..." bind:value={$DataBase.mancerHeader}/>
{/if}
{#if $DataBase.aiModel.startsWith('claude') || $DataBase.subModel.startsWith('claude')}
<span class="text-textcolor">Claude {language.apiKey}</span>
<TextInput marginBottom={true} size={"sm"} placeholder="..." bind:value={$DataBase.claudeAPIKey}/>
@@ -222,11 +225,12 @@
<TextInput marginBottom={true} bind:value={$DataBase.hordeConfig.apiKey} />
{/if}
{#if $DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'textgen_webui'}
<span class="text-textcolor mt-2">Oobabooga Blocking {language.providerURL}</span>
{#if $DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'textgen_webui'
|| $DataBase.aiModel === 'mancer' || $DataBase.subModel === 'mancer'}
<span class="text-textcolor mt-2">Blocking {language.providerURL}</span>
<TextInput marginBottom={true} bind:value={$DataBase.textgenWebUIBlockingURL} placeholder="https://..."/>
<span class="text-draculared text-xs mb-2">You must use textgen webui with --public-api</span>
<span class="text-textcolor mt-2">Oobabooga Stream {language.providerURL}</span>
<span class="text-textcolor mt-2">Stream {language.providerURL}</span>
<TextInput marginBottom={true} bind:value={$DataBase.textgenWebUIStreamURL} placeholder="wss://..."/>
{#if !isTauri}
<span class="text-draculared text-xs mb-2">You are using web version. you must use ngrok or other tunnels to use your local webui.</span>
@@ -261,7 +265,7 @@
{/if}
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.temperature / 100).toFixed(2)}</span>
{#if $DataBase.aiModel === 'textgen_webui'}
{#if $DataBase.aiModel === 'textgen_webui' || $DataBase.subModel === 'mancer'}
<span class="text-textcolor">Repetition Penalty</span>
<SliderInput min={1} max={1.5} step={0.01} bind:value={$DataBase.ooba.repetition_penalty}/>
<span class="text-textcolor2 mb-6 text-sm">{($DataBase.ooba.repetition_penalty).toFixed(2)}</span>

View File

@@ -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 @@
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('reverse_proxy')}}>Reverse Proxy</button>
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('openrouter')}}>OpenRouter</button>
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('textgen_webui')}}>Oobabooga WebUI</button>
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('mancer')}}>Mancer</button>
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('palm2')}}>Google PaLM2</button>
<button class="hover:bg-selected px-6 py-2 text-lg" on:click={() => {changeModel('kobold')}}>Kobold</button>
<Arcodion name="Novellist">

View File

@@ -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
})

View File

@@ -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'
}

View File

@@ -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{