From 7ecc56f0aebdac7877446a0dc91c0ec380dcc37a Mon Sep 17 00:00:00 2001 From: Rene Teigen Date: Wed, 11 Jan 2023 20:10:47 +0000 Subject: [PATCH] Made the json parsin more robust and fixed bugs --- README.md | 2 +- cogs/gpt_3_commands_and_converser.py | 14 +++++++------- models/user_model.py | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 18a358e..3458955 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ These commands are grouped, so each group has a prefix but you can easily tab co - Custom openers need to be placed as a .txt file in the `openers` directory, in the same directory as `gpt3discord.py` -- Can use files in the `{"text": your prompt, "temp":0, "top_p":0,"frequency_penalty":0,"presence_penalty":0}` format to include permanent overrides +- Can use .json files in the `{"text": your prompt, "temp":0, "top_p":0,"frequency_penalty":0,"presence_penalty":0}` format to include permanent overrides `/gpt converse minimal:yes` - Start a conversation with the bot, like ChatGPT, with minimal context (saves tokens) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index 5e85028..b0c0b26 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -1286,15 +1286,15 @@ class GPT3ComCon(discord.Cog, name="GPT3ComCon"): opener_file = await self.load_file(opener_file, ctx) try: # Try opening as json, if it fails it'll do it as a str opener_file = json.loads(opener_file) - temperature=None if not opener_file["temperature"] else opener_file["temperature"] - top_p=None if not opener_file["top_p"] else opener_file["top_p"] - frequency_penalty=None if not opener_file["frequency_penalty"] else opener_file["frequency_penalty"] - presence_penalty=None if not opener_file["presence_penalty"] else opener_file["presence_penalty"] + temperature=opener_file.get("temperature", None) + top_p=opener_file.get("top_p", None) + frequency_penalty=opener_file.get("frequency_penalty", None) + presence_penalty=opener_file.get("presence_penalty", None) self.conversation_threads[thread.id].set_overrides(temperature, top_p, frequency_penalty, presence_penalty) # set overrides if not opener: # if we only use opener_file then only pass on opener_file for the opening prompt - opener = opener_file["text"] + opener = opener_file.get('text', "error getting text") else: - opener = opener_file["text"] + opener + opener = opener_file.get('text', "error getting text") + opener except: # Parse as just regular text if not opener: opener = opener_file @@ -1328,7 +1328,7 @@ class GPT3ComCon(discord.Cog, name="GPT3ComCon"): # send opening if opener: - thread_message = await thread.send("***Opening prompt*** \n" + opener) + thread_message = await thread.send("***Opening prompt*** \n" + str(opener)) if thread.id in self.conversation_threads: self.awaiting_responses.append(user_id_normalized) self.awaiting_thread_responses.append(thread.id) diff --git a/models/user_model.py b/models/user_model.py index adcd1fa..91c5ad4 100644 --- a/models/user_model.py +++ b/models/user_model.py @@ -71,7 +71,7 @@ class Thread: def get_overrides(self): return { "temperature": self.temperature, - "top_p": self.temperature, + "top_p": self.top_p, "frequency_penalty": self.frequency_penalty, "presence_penalty": self.presence_penalty, }