Add seperate models

This commit is contained in:
kwaroran
2025-03-17 14:30:29 +09:00
parent 5c53e16b85
commit bf4f27d0e5
5 changed files with 82 additions and 2 deletions

View File

@@ -1074,4 +1074,7 @@ export const languageEnglish = {
loadingChatData: "Loading Chat Data", loadingChatData: "Loading Chat Data",
outputImageModal: "Output Image Modal", outputImageModal: "Output Image Modal",
playMessageOnTranslateEnd: "Play Audio on Translate Completion", playMessageOnTranslateEnd: "Play Audio on Translate Completion",
seperateModelsForAxModels: "Seperate Models for Auxiliary Models",
axModelsDef: "Ax Models Definition",
doNotChangeSeperateModels: "Do Not Change Seperate Models",
} }

View File

@@ -211,6 +211,11 @@
<Help key="unrecommended" unrecommended/> <Help key="unrecommended" unrecommended/>
</Check> </Check>
</div> </div>
<div class="flex items-center mt-4">
<Check bind:check={DBState.db.doNotChangeSeperateModels} name={language.doNotChangeSeperateModels}>
<Help key="unrecommended" unrecommended/>
</Check>
</div>
{/if} {/if}
{#if DBState.db?.account?.useSync} {#if DBState.db?.account?.useSync}
<div class="flex items-center mt-4"> <div class="flex items-center mt-4">

View File

@@ -13,6 +13,8 @@
import TextAreaInput from "src/lib/UI/GUI/TextAreaInput.svelte"; import TextAreaInput from "src/lib/UI/GUI/TextAreaInput.svelte";
import SelectInput from "src/lib/UI/GUI/SelectInput.svelte"; import SelectInput from "src/lib/UI/GUI/SelectInput.svelte";
import OptionInput from "src/lib/UI/GUI/OptionInput.svelte"; import OptionInput from "src/lib/UI/GUI/OptionInput.svelte";
import Arcodion from "src/lib/UI/Arcodion.svelte";
import ModelList from "src/lib/UI/ModelList.svelte";
let sorted = 0 let sorted = 0
let opened = 0 let opened = 0
@@ -164,4 +166,39 @@
<span class="text-textcolor mt-4">{language.extractJson} <Help key='extractJson' /></span> <span class="text-textcolor mt-4">{language.extractJson} <Help key='extractJson' /></span>
<TextInput bind:value={DBState.db.extractJson}/> <TextInput bind:value={DBState.db.extractJson}/>
{/if} {/if}
<div class="flex items-center mt-4">
<Check bind:check={DBState.db.seperateModelsForAxModels} name={language.seperateModelsForAxModels}>
<Help key="experimentalChatCompressionDesc"/><Help key="experimental"/>
</Check>
</div>
{#if DBState.db.seperateModelsForAxModels}
<Arcodion name={language.axModelsDef} styled>
<span class="text-textcolor mt-4">
Memory
</span>
<ModelList bind:value={DBState.db.seperateModels.memory} />
<span class="text-textcolor mt-4">
Translations
</span>
<ModelList bind:value={DBState.db.seperateModels.translate} />
<span class="text-textcolor mt-4">
Emotion
</span>
<ModelList bind:value={DBState.db.seperateModels.emotion} />
<span class="text-textcolor mt-4">
OtherAx
</span>
<ModelList bind:value={DBState.db.seperateModels.otherAx} />
</Arcodion>
{/if}
{/if} {/if}

View File

@@ -486,6 +486,13 @@ export async function requestChatDataMain(arg:requestDataArgument, model:ModelMo
targ.customURL = db.forceReplaceUrl targ.customURL = db.forceReplaceUrl
} }
if(db.seperateModelsForAxModels){
if(db.seperateModels[model]){
targ.aiModel = db.seperateModels[model]
targ.modelInfo = getModelInfo(targ.aiModel)
}
}
const format = targ.modelInfo.format const format = targ.modelInfo.format
targ.formated = reformater(targ.formated, targ.modelInfo) targ.formated = reformater(targ.formated, targ.modelInfo)

View File

@@ -494,6 +494,7 @@ export function setDatabase(data:Database){
key: data.hypaCustomSettings?.key ?? "", key: data.hypaCustomSettings?.key ?? "",
model: data.hypaCustomSettings?.model ?? "", model: data.hypaCustomSettings?.model ?? "",
} }
data.doNotChangeSeperateModels ??= false
changeLanguage(data.language) changeLanguage(data.language)
setDatabaseLite(data) setDatabaseLite(data)
} }
@@ -930,7 +931,14 @@ export interface Database{
claudeRetrivalCaching: boolean claudeRetrivalCaching: boolean
outputImageModal: boolean outputImageModal: boolean
playMessageOnTranslateEnd:boolean playMessageOnTranslateEnd:boolean
seperateModelsForAxModels:boolean
seperateModels:{
memory: string
emotion: string
translate: string
otherAx: string
}
doNotChangeSeperateModels:boolean
} }
interface SeparateParameters{ interface SeparateParameters{
@@ -1114,6 +1122,7 @@ export interface character{
hideChatIcon?:boolean hideChatIcon?:boolean
lastInteraction?:number lastInteraction?:number
translatorNote?:string translatorNote?:string
doNotChangeSeperateModels?:boolean
} }
@@ -1265,6 +1274,13 @@ export interface botPreset{
reasonEffort?:number reasonEffort?:number
thinkingTokens?:number thinkingTokens?:number
outputImageModal?:boolean outputImageModal?:boolean
seperateModelsForAxModels?:boolean
seperateModels?:{
memory: string
emotion: string
translate: string
otherAx: string
}
} }
@@ -1581,7 +1597,9 @@ export function saveCurrentPreset(){
image: pres?.[db.botPresetsId]?.image ?? '', image: pres?.[db.botPresetsId]?.image ?? '',
reasonEffort: db.reasoningEffort ?? 0, reasonEffort: db.reasoningEffort ?? 0,
thinkingTokens: db.thinkingTokens ?? null, thinkingTokens: db.thinkingTokens ?? null,
outputImageModal: db.outputImageModal ?? false outputImageModal: db.outputImageModal ?? false,
seperateModelsForAxModels: db.seperateModelsForAxModels ?? false,
seperateModels: safeStructuredClone(db.seperateModels),
} }
db.botPresets = pres db.botPresets = pres
setDatabase(db) setDatabase(db)
@@ -1694,6 +1712,16 @@ export function setPreset(db:Database, newPres: botPreset){
db.reasoningEffort = newPres.reasonEffort ?? 0 db.reasoningEffort = newPres.reasonEffort ?? 0
db.thinkingTokens = newPres.thinkingTokens ?? null db.thinkingTokens = newPres.thinkingTokens ?? null
db.outputImageModal = newPres.outputImageModal ?? false db.outputImageModal = newPres.outputImageModal ?? false
if(!db.doNotChangeSeperateModels){
db.seperateModelsForAxModels = newPres.seperateModelsForAxModels ?? false
db.seperateModels = safeStructuredClone(newPres.seperateModels) ?? {
memory: '',
emotion: '',
translate: '',
otherAx: ''
}
}
return db return db
} }