Prep 0.10.0 (#12)

* track time passage in scene using iso 8601 format

* chromadb openai instructions

model recommendations updated

* time context passed to long term memory

* add some pre-established history for testing purposes

* time passage

analyze dialogue to template

query_text template function

analyze text and answer question summarizer function

llm prompt template adjustments

iso8601 time utils

chromadb docs adjustments

* didnt mean to remove this

* fix ClientContext stacking

* conversation cleanup tweaks

* prompt prepared response padding

* fix some bugs causing conversation lines containing : to be terminated
early

* fixes issue with chara importing dialoge examples as huge blob instea of
splitting into lines

dialogue example in conversation template randomized

* llm prompt template for Speechless-Llama2-Hermes-Orca-Platypus-WizardLM

* version to 0.10.0
This commit is contained in:
FInalWombat
2023-10-02 01:38:02 +03:00
committed by GitHub
parent 44a91094e6
commit 73240b5791
37 changed files with 1335 additions and 529 deletions

View File

@@ -40,6 +40,11 @@
<DirectorMessage :text="message.text" :message_id="message.id" :character="message.character" />
</div>
</div>
<div v-else-if="message.type === 'time'" :class="`message ${message.type}`">
<div class="time-message" :id="`message-${message.id}`">
<TimePassageMessage :text="message.text" :message_id="message.id" :ts="message.ts" />
</div>
</div>
<div v-else :class="`message ${message.type}`">
{{ message.text }}
</div>
@@ -51,6 +56,7 @@
import CharacterMessage from './CharacterMessage.vue';
import NarratorMessage from './NarratorMessage.vue';
import DirectorMessage from './DirectorMessage.vue';
import TimePassageMessage from './TimePassageMessage.vue';
export default {
name: 'SceneMessages',
@@ -58,6 +64,7 @@ export default {
CharacterMessage,
NarratorMessage,
DirectorMessage,
TimePassageMessage,
},
data() {
return {
@@ -87,6 +94,7 @@ export default {
multiSelect: data.data.multi_select,
color: data.color,
sent: false,
ts: data.ts,
};
this.messages.push(message);
},
@@ -163,10 +171,12 @@ export default {
if (data.message) {
if (data.type === 'character') {
const [character, text] = data.message.split(':');
const parts = data.message.split(':');
const character = parts.shift();
const text = parts.join(':');
this.messages.push({ id: data.id, type: data.type, character: character.trim(), text: text.trim(), color: data.color }); // Add color property to the message
} else if (data.type != 'request_input' && data.type != 'client_status' && data.type != 'agent_status') {
this.messages.push({ id: data.id, type: data.type, text: data.message, color: data.color, character: data.character, status:data.status }); // Add color property to the message
this.messages.push({ id: data.id, type: data.type, text: data.message, color: data.color, character: data.character, status:data.status, ts:data.ts }); // Add color property to the message
}
}

View File

@@ -86,6 +86,20 @@
</v-btn>
</template>
</v-tooltip>
<v-menu>
<template v-slot:activator="{ props }">
<v-btn class="hotkey mx-3" v-bind="props" :disabled="isInputDisabled()" color="primary" icon>
<v-icon>mdi-clock</v-icon>
</v-btn>
</template>
<v-list>
<v-list-subheader>Advance Time</v-list-subheader>
<v-list-item v-for="(option, index) in advanceTimeOptions" :key="index"
@click="sendHotButtonMessage('!advance_time:' + option.value)">
<v-list-item-title>{{ option.title }}</v-list-item-title>
</v-list-item>
</v-list>
</v-menu>
<v-divider vertical></v-divider>
<v-tooltip :disabled="isInputDisabled()" location="top" text="Direct a character">
<template v-slot:activator="{ props }">
@@ -142,6 +156,7 @@
</v-card>
</div>
</template>
@@ -154,6 +169,23 @@ export default {
return {
commandActive: false,
commandName: null,
advanceTimeOptions: [
{"value" : "P10Y", "title": "10 years"},
{"value" : "P5Y", "title": "5 years"},
{"value" : "P1Y", "title": "1 year"},
{"value" : "P6M", "title": "6 months"},
{"value" : "P3M", "title": "3 months"},
{"value" : "P1M", "title": "1 month"},
{"value" : "P7D:1 Week later", "title": "1 week"},
{"value" : "P3D", "title": "3 days"},
{"value" : "P1D", "title": "1 day"},
{"value" : "PT8H", "title": "8 hours"},
{"value" : "PT4H", "title": "4 hours"},
{"Value" : "PT1H", "title": "1 hour"},
{"value" : "PT30M", "title": "30 minutes"},
{"value" : "PT15M", "title": "15 minutes"}
],
}
},
inject: [

View File

@@ -97,6 +97,11 @@
<v-btn v-if="scene.environment === 'scene'" class="ml-1" @click="openSceneHistory()"><v-icon size="14"
class="mr-1">mdi-playlist-star</v-icon>History</v-btn>
<v-chip size="x-small" v-if="scene.scene_time !== undefined">
<v-icon>mdi-clock</v-icon>
{{ scene.scene_time }}
</v-chip>
</v-toolbar-title>
<v-toolbar-title v-else>
Talemate
@@ -294,6 +299,7 @@ export default {
this.scene = {
name: data.name,
environment: data.data.environment,
scene_time: data.data.scene_time,
}
this.sceneActive = true;
return;

View File

@@ -0,0 +1,61 @@
<template>
<div class="time-container" v-if="show && minimized" >
<v-chip closable @click:close="deleteMessage()" color="deep-purple-lighten-3">
<v-icon class="mr-2">mdi-clock-outline</v-icon>
<span>{{ text }}</span>
</v-chip>
</div>
</template>
<script>
export default {
data() {
return {
show: true,
minimized: true
}
},
props: ['text', 'message_id', 'ts'],
inject: ['requestDeleteMessage'],
methods: {
toggle() {
this.minimized = !this.minimized;
},
deleteMessage() {
console.log('deleteMessage', this.message_id);
this.requestDeleteMessage(this.message_id);
}
}
}
</script>
<style scoped>
.highlight {
color: #9FA8DA;
font-style: italic;
margin-left: 2px;
margin-right: 2px;
}
.highlight:before {
--content: "*";
}
.highlight:after {
--content: "*";
}
.time-text {
color: #9FA8DA;
}
.time-message {
display: flex;
flex-direction: row;
color: #9FA8DA;
}
.time-container {
}
</style>