Files
talemate/talemate_frontend/src/components/AgentModal.vue
FInalWombat e6b21789d1 Prep 0.11.0 (#19)
* dolphin mistral template

* removate trailing \n before attaching the model response

* improve prompt and validator for generated human age

* fix issue where errors during character creation process would not be
communicated to the ux and the character creator would appear stuck

* add dolphin mistral to list

* add talemate_env

* poetry relock

* add json schema for talemate scene files

* fix issues with pydantic after version upgrade

* add json extrac util functions

* fix pydantic model

* use extract json function

* scene generator, better scene name prompt

* OpenHermes-2-Mistral

* alpaca base template
Amethyst 20B template

* character description is no longer part of the sheet and needs to be added separately

* fix pydantic validation

* fix issue where sometimes partial emote strings were kept at the end of dialogue

* no need to commit character name to memory

* dedupe prompts

* clean up extra linebreaks in prompts

* experimental editor agent
agent signals first progress

* take out hardcoded example

* amethyst llm prompt template

* editor agent disableable
agent edit modal tweaks

* world state agent
agent action config schema

* director agent disableable
remove automatic actions config from ux (deprecated)

* fix responsive update when toggling enable on or off in agent dialog

* prompt adjustments
fix divine intellect preset (mirostat values were way off)
fix world state regenerating every turn regardless of setting

* move templates for world state from summarizer to worldstate agent

* conversation agent generation lenght setting

* conversation agent jiggle attribute (randomize offset to certain inference parameters)

* relabel

* scene cover image set to cover as much space as it can

* add character sheet to dialogue example generate prompt

* character creator agent mixin use set_processing

* add <|im_end|> to stopping strings

* add random number gen to template functions

* SynthIA and Tiefighter

* create new persisted characters ouf of world state
natural flow option for conversation agent to help guide multi character conversations

* conversation agent natural flow improvements

* fix bug with 1h time passage option

* some templates

* poetry relock

* fix config validation

* fix issues when detemrining scene history context length to stay within budget

* fixes to world state json parsing
fixes to conversation context length

* remove unused import

* update windows install scripts

* zephyr

* </s> stopping string

* dialog cleanup utils improved

* add agents and clients key to the config example
2023-10-28 11:33:51 +03:00

100 lines
3.3 KiB
Vue

<template>
<v-dialog v-model="localDialog" max-width="600px">
<v-card>
<v-card-title>
<v-row>
<v-col cols="9">
<v-icon>mdi-transit-connection-variant</v-icon>
{{ agent.label }}
</v-col>
<v-col cols="3" class="text-right">
<v-checkbox :label="enabledLabel()" hide-details density="compact" color="green" v-model="agent.enabled"
v-if="agent.data.has_toggle"></v-checkbox>
</v-col>
</v-row>
</v-card-title>
<v-card-text>
<v-select v-model="agent.client" :items="agent.data.client" label="Client"></v-select>
<v-alert type="warning" variant="tonal" density="compact" v-if="agent.data.experimental">
This agent is currently experimental and may significantly decrease performance and / or require
strong LLMs to function properly.
</v-alert>
<v-card v-for="(action, key) in agent.actions" :key="key" density="compact">
<v-card-subtitle>
<v-checkbox :label="agent.data.actions[key].label" hide-details density="compact" color="green" v-model="action.enabled"></v-checkbox>
</v-card-subtitle>
<v-card-text>
{{ agent.data.actions[key].description }}
<div v-for="(action_config, config_key) in agent.data.actions[key].config" :key="config_key">
<!-- render config widgets based on action_config.type (int, str, bool, float) -->
<v-text-field v-if="action_config.type === 'str'" v-model="action.config[config_key].value" :label="action_config.label" :hint="action_config.description" density="compact"></v-text-field>
<v-slider v-if="action_config.type === 'number' && action_config.step !== null" v-model="action.config[config_key].value" :label="action_config.label" :hint="action_config.description" :min="action_config.min" :max="action_config.max" :step="action_config.step" density="compact" thumb-label></v-slider>
<v-checkbox v-if="action_config.type === 'bool'" v-model="action.config[config_key].value" :label="action_config.label" :hint="action_config.description" density="compact"></v-checkbox>
</div>
</v-card-text>
</v-card>
</v-card-text>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn color="primary" @click="close">Close</v-btn>
<v-btn color="primary" @click="save">Save</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</template>
<script>
export default {
props: {
dialog: Boolean,
formTitle: String
},
inject: ['state'],
data() {
return {
localDialog: this.state.dialog,
agent: { ...this.state.currentAgent }
};
},
watch: {
'state.dialog': {
immediate: true,
handler(newVal) {
this.localDialog = newVal;
}
},
'state.currentAgent': {
immediate: true,
handler(newVal) {
this.agent = { ...newVal };
}
},
localDialog(newVal) {
this.$emit('update:dialog', newVal);
}
},
methods: {
enabledLabel() {
if (this.agent.enabled) {
return 'Enabled';
} else {
return 'Disabled';
}
},
close() {
this.$emit('update:dialog', false);
},
save() {
this.$emit('save', this.agent);
this.close();
}
}
}
</script>