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",
outputImageModal: "Output Image Modal",
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/>
</Check>
</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 DBState.db?.account?.useSync}
<div class="flex items-center mt-4">

View File

@@ -13,6 +13,8 @@
import TextAreaInput from "src/lib/UI/GUI/TextAreaInput.svelte";
import SelectInput from "src/lib/UI/GUI/SelectInput.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 opened = 0
@@ -164,4 +166,39 @@
<span class="text-textcolor mt-4">{language.extractJson} <Help key='extractJson' /></span>
<TextInput bind:value={DBState.db.extractJson}/>
{/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}

View File

@@ -486,6 +486,13 @@ export async function requestChatDataMain(arg:requestDataArgument, model:ModelMo
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
targ.formated = reformater(targ.formated, targ.modelInfo)

View File

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