From 410d89bcc04e97b6c86ffdc09dde667c239c7a9f Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 16 Jul 2023 11:56:17 +0200 Subject: [PATCH] Tweak of LLM prompt, don't store empty responses in memory --- evennia/contrib/rpg/llm/llm_npc.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/evennia/contrib/rpg/llm/llm_npc.py b/evennia/contrib/rpg/llm/llm_npc.py index ca5ca79437..b44643793e 100644 --- a/evennia/contrib/rpg/llm/llm_npc.py +++ b/evennia/contrib/rpg/llm/llm_npc.py @@ -24,8 +24,9 @@ from .llm_client import LLMClient # fallback if not specified anywhere else. Check order is # npc.db.prompt_prefix, npcClass.prompt_prefix, then settings.LLM_PROMPT_PREFIX, then this DEFAULT_PROMPT_PREFIX = ( - "You are roleplaying that your name is {name}, a {desc} existing in {location}. " - "From here on, the conversation between {character} and {name} begins." + "You are roleplaying as {name}, a {desc} existing in {location}. " + "Answer with short sentences. Only respond as {name} would. " + "From here on, the conversation between {name} and {character} begins." ) @@ -116,8 +117,11 @@ class LLMNPC(DefaultCharacter): # abort the thinking message if we were fast enough thinking_defer.cancel() - # remember this response - self._add_to_memory(character, self, response) + if response: + # remember this response + self._add_to_memory(character, self, response) + else: + response = "... I'm sorry, I was distracted. Can you repeat?" response = self.response_template.format( name=self.get_display_name(character), response=response