Add custom flags
This commit is contained in:
@@ -815,4 +815,6 @@ export const languageEnglish = {
|
|||||||
autoTranslateCachedOnly: "Auto Translate Cached Only",
|
autoTranslateCachedOnly: "Auto Translate Cached Only",
|
||||||
notification: "Notification",
|
notification: "Notification",
|
||||||
permissionDenied: "Permission Denied by Your Browser or OS",
|
permissionDenied: "Permission Denied by Your Browser or OS",
|
||||||
|
customFlags: "Custom Flags",
|
||||||
|
enableCustomFlags: "Enable Custom Flags",
|
||||||
}
|
}
|
||||||
@@ -596,6 +596,38 @@
|
|||||||
}}/>
|
}}/>
|
||||||
{/if}
|
{/if}
|
||||||
</Arcodion>
|
</Arcodion>
|
||||||
|
|
||||||
|
{#snippet CustomFlagButton(name:string,flag:number)}
|
||||||
|
<Button className="mt-2" onclick={(e) => {
|
||||||
|
if(DBState.db.customFlags.includes(flag)){
|
||||||
|
DBState.db.customFlags = DBState.db.customFlags.filter((f) => f !== flag)
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
DBState.db.customFlags.push(flag)
|
||||||
|
}
|
||||||
|
}} styled={DBState.db.customFlags.includes(flag) ? 'primary' : 'outlined'}>
|
||||||
|
{name}
|
||||||
|
</Button>
|
||||||
|
{/snippet}
|
||||||
|
|
||||||
|
<Arcodion styled name={language.customFlags}>
|
||||||
|
<Check bind:check={DBState.db.enableCustomFlags} name={language.enableCustomFlags}/>
|
||||||
|
|
||||||
|
|
||||||
|
{#if DBState.db.enableCustomFlags}
|
||||||
|
{@render CustomFlagButton('hasImageInput', 0)}
|
||||||
|
{@render CustomFlagButton('hasImageOutput', 1)}
|
||||||
|
{@render CustomFlagButton('hasAudioInput', 2)}
|
||||||
|
{@render CustomFlagButton('hasAudioOutput', 3)}
|
||||||
|
{@render CustomFlagButton('hasPrefill', 4)}
|
||||||
|
{@render CustomFlagButton('hasCache', 5)}
|
||||||
|
{@render CustomFlagButton('hasFullSystemPrompt', 6)}
|
||||||
|
{@render CustomFlagButton('hasFirstSystemPrompt', 7)}
|
||||||
|
{@render CustomFlagButton('hasStreaming', 8)}
|
||||||
|
{@render CustomFlagButton('requiresAlternateRole', 9)}
|
||||||
|
{@render CustomFlagButton('mustStartWithUserInput', 10)}
|
||||||
|
{/if}
|
||||||
|
</Arcodion>
|
||||||
|
|
||||||
<Arcodion styled name={language.moduleIntergration} help="moduleIntergration">
|
<Arcodion styled name={language.moduleIntergration} help="moduleIntergration">
|
||||||
<TextAreaInput bind:value={DBState.db.moduleIntergration} fullwidth height={"32"} autocomplete="off"/>
|
<TextAreaInput bind:value={DBState.db.moduleIntergration} fullwidth height={"32"} autocomplete="off"/>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import type { Parameter } from "../process/request"
|
import type { Parameter } from "../process/request"
|
||||||
|
import { getDatabase } from "../storage/database.svelte"
|
||||||
|
|
||||||
export enum LLMFlags{
|
export enum LLMFlags{
|
||||||
hasImageInput,
|
hasImageInput,
|
||||||
@@ -979,11 +980,16 @@ for(let model of LLMModels){
|
|||||||
|
|
||||||
export function getModelInfo(id: string): LLMModel{
|
export function getModelInfo(id: string): LLMModel{
|
||||||
|
|
||||||
const found:LLMModel = LLMModels.find(model => model.id === id)
|
const db = getDatabase()
|
||||||
|
const found:LLMModel = safeStructuredClone(LLMModels.find(model => model.id === id))
|
||||||
|
|
||||||
|
if(found){
|
||||||
|
if(db.enableCustomFlags){
|
||||||
|
found.flags = db.customFlags
|
||||||
|
}
|
||||||
|
|
||||||
console.log('found', found)
|
return found
|
||||||
|
}
|
||||||
if(found) return found
|
|
||||||
|
|
||||||
if(id.startsWith('hf:::')){
|
if(id.startsWith('hf:::')){
|
||||||
const withoutPrefix = id.replace('hf:::', '')
|
const withoutPrefix = id.replace('hf:::', '')
|
||||||
|
|||||||
@@ -459,6 +459,8 @@ export function setDatabase(data:Database){
|
|||||||
translate: {},
|
translate: {},
|
||||||
otherAx: {}
|
otherAx: {}
|
||||||
}
|
}
|
||||||
|
data.customFlags ??= []
|
||||||
|
data.enableCustomFlags ??= false
|
||||||
changeLanguage(data.language)
|
changeLanguage(data.language)
|
||||||
setDatabaseLite(data)
|
setDatabaseLite(data)
|
||||||
}
|
}
|
||||||
@@ -849,6 +851,8 @@ export interface Database{
|
|||||||
autoTranslateCachedOnly:boolean
|
autoTranslateCachedOnly:boolean
|
||||||
lightningRealmImport:boolean
|
lightningRealmImport:boolean
|
||||||
notification: boolean
|
notification: boolean
|
||||||
|
customFlags: LLMFlags[]
|
||||||
|
enableCustomFlags: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
interface SeparateParameters{
|
interface SeparateParameters{
|
||||||
@@ -1168,6 +1172,8 @@ export interface botPreset{
|
|||||||
systemContentReplacement?: string
|
systemContentReplacement?: string
|
||||||
systemRoleReplacement?: 'user'|'assistant'
|
systemRoleReplacement?: 'user'|'assistant'
|
||||||
openAIPrediction?: string
|
openAIPrediction?: string
|
||||||
|
enableCustomFlags?: boolean
|
||||||
|
customFlags?: LLMFlags[]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1466,6 +1472,8 @@ export function saveCurrentPreset(){
|
|||||||
customAPIFormat: safeStructuredClone(db.customAPIFormat),
|
customAPIFormat: safeStructuredClone(db.customAPIFormat),
|
||||||
systemContentReplacement: db.systemContentReplacement,
|
systemContentReplacement: db.systemContentReplacement,
|
||||||
systemRoleReplacement: db.systemRoleReplacement,
|
systemRoleReplacement: db.systemRoleReplacement,
|
||||||
|
customFlags: safeStructuredClone(db.customFlags),
|
||||||
|
enableCustomFlags: db.enableCustomFlags,
|
||||||
}
|
}
|
||||||
db.botPresets = pres
|
db.botPresets = pres
|
||||||
setDatabase(db)
|
setDatabase(db)
|
||||||
@@ -1571,6 +1579,8 @@ export function setPreset(db:Database, newPres: botPreset){
|
|||||||
db.customAPIFormat = safeStructuredClone(newPres.customAPIFormat) ?? LLMFormat.OpenAICompatible
|
db.customAPIFormat = safeStructuredClone(newPres.customAPIFormat) ?? LLMFormat.OpenAICompatible
|
||||||
db.systemContentReplacement = newPres.systemContentReplacement ?? ''
|
db.systemContentReplacement = newPres.systemContentReplacement ?? ''
|
||||||
db.systemRoleReplacement = newPres.systemRoleReplacement ?? 'user'
|
db.systemRoleReplacement = newPres.systemRoleReplacement ?? 'user'
|
||||||
|
db.customFlags = safeStructuredClone(newPres.customFlags) ?? []
|
||||||
|
db.enableCustomFlags = newPres.enableCustomFlags ?? false
|
||||||
return db
|
return db
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1581,7 +1591,7 @@ import type { RisuModule } from '../process/modules';
|
|||||||
import type { HypaV2Data } from '../process/memory/hypav2';
|
import type { HypaV2Data } from '../process/memory/hypav2';
|
||||||
import { decodeRPack, encodeRPack } from '../rpack/rpack_bg';
|
import { decodeRPack, encodeRPack } from '../rpack/rpack_bg';
|
||||||
import { DBState, selectedCharID } from '../stores.svelte';
|
import { DBState, selectedCharID } from '../stores.svelte';
|
||||||
import { LLMFormat } from '../model/modellist';
|
import { LLMFlags, LLMFormat } from '../model/modellist';
|
||||||
import type { Parameter } from '../process/request';
|
import type { Parameter } from '../process/request';
|
||||||
|
|
||||||
export async function downloadPreset(id:number, type:'json'|'risupreset'|'return' = 'json'){
|
export async function downloadPreset(id:number, type:'json'|'risupreset'|'return' = 'json'){
|
||||||
|
|||||||
Reference in New Issue
Block a user