From e8979aa8d4405056ff010a1ad164e09ffff3a691 Mon Sep 17 00:00:00 2001 From: Karl <58265182+KarlKennerley@users.noreply.github.com> Date: Sun, 1 Jan 2023 01:01:32 +0000 Subject: [PATCH 01/19] Update sample.env with welcome message. Issue #34 Added a welcome message env variable to be used when new members join the server. Fixes issue #34 --- sample.env | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sample.env b/sample.env index 83b3c33..85a649e 100644 --- a/sample.env +++ b/sample.env @@ -3,4 +3,5 @@ DISCORD_TOKEN="" DEBUG_GUILD="755420092027633774" DEBUG_CHANNEL="907974109084942396" ALLOWED_GUILDS="971268468148166697,971268468148166697" -ALLOWED_ROLES="Admin,gpt" \ No newline at end of file +ALLOWED_ROLES="Admin,gpt" +WELCOME_MESSAGES="Hi There! Welcome to our Discord server. We hope you'll enjoy our server and we look forward to engaing with you!" From 0b4ce7855764ae8219402b94e9e990fdf8483747 Mon Sep 17 00:00:00 2001 From: Karl <58265182+KarlKennerley@users.noreply.github.com> Date: Sun, 1 Jan 2023 01:14:29 +0000 Subject: [PATCH 02/19] Fixed spelling. Changed "engaing" to "engaging". --- sample.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sample.env b/sample.env index 85a649e..46f782c 100644 --- a/sample.env +++ b/sample.env @@ -4,4 +4,4 @@ DEBUG_GUILD="755420092027633774" DEBUG_CHANNEL="907974109084942396" ALLOWED_GUILDS="971268468148166697,971268468148166697" ALLOWED_ROLES="Admin,gpt" -WELCOME_MESSAGES="Hi There! Welcome to our Discord server. We hope you'll enjoy our server and we look forward to engaing with you!" +WELCOME_MESSAGE="Hi There! Welcome to our Discord server. We hope you'll enjoy our server and we look forward to engaging with you!" From 49b652bdd3f78996739542941593f5b6e2f5c820 Mon Sep 17 00:00:00 2001 From: Karl <58265182+KarlKennerley@users.noreply.github.com> Date: Sun, 1 Jan 2023 01:24:17 +0000 Subject: [PATCH 03/19] Added getter for welcome message env variable. Added a getter function for the welcome message environment variable. Fixes issue #34. --- models/env_service_model.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/models/env_service_model.py b/models/env_service_model.py index 3536aa4..317058e 100644 --- a/models/env_service_model.py +++ b/models/env_service_model.py @@ -53,3 +53,21 @@ class EnvService: allowed_roles.split(",") if "," in allowed_roles else [allowed_roles] ) return allowed_roles + + @staticmethod + def get_welcome_message(): + # WELCOME_MESSAGE is a string used to welcome new members to the server. + #The string can be blank. + #The string is DMd to the new server member as part of an embed. + try: + welcome_message = os.getenv("WELCOME_MESSAGE") + except: + welcome_message = None + + if welcome_message is None: + raise ValueError( + "WELCOME_MESSAGE is not defined properly in the environment file!" + "Please create a welcome message and put it into WELCOME_MESSAGE in the .env file." + 'For example a line should look like: `WELCOME_MESSAGE:"Welcome to our server! We hop you enjoy it here."`' + ) + return welcome_message From 88abf2946dd7ccade6324927a0cfcc034e412fa3 Mon Sep 17 00:00:00 2001 From: Karl <58265182+KarlKennerley@users.noreply.github.com> Date: Sun, 1 Jan 2023 01:41:02 +0000 Subject: [PATCH 04/19] Added on_member_join listener. Fixes issue #34. Added the on_member_join listener. A DM will be sent to the new member upon joining the server. Fixes issue #34. --- cogs/gpt_3_commands_and_converser.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index 762f4b3..2620a85 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -16,6 +16,7 @@ from collections import defaultdict original_message = {} ALLOWED_GUILDS = EnvService.get_allowed_guilds() +WELCOME_MESSAGE = EnvService.get_welcome_message() class GPT3ComCon(commands.Cog, name="GPT3ComCon"): @@ -89,6 +90,12 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): return False return True + @commands.Cog.listener() + async def on_member_join(self, member): + welcome_embed = discord.Embed(title=f"Welcome, {member.name}!", description=WELCOME_MESSAGE) + welcome_embed.add_field(name="Just so you know...", value="> My commands are invoked with a forward slash ("/")\n> Use /help to see my help messages.") + await member.send(content=None, embed=welcome_embded) + @commands.Cog.listener() async def on_member_remove(self, member): pass From 357422414ab8bc8b4bf5ddba7a556099b469f18e Mon Sep 17 00:00:00 2001 From: Karl <58265182+KarlKennerley@users.noreply.github.com> Date: Sun, 1 Jan 2023 20:35:18 +0000 Subject: [PATCH 05/19] Added getter and setter for welcome msg setting. Added getter and setter functions to allow for enabling and disabling of welcoming messages. --- models/openai_model.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/models/openai_model.py b/models/openai_model.py index 99ac0f6..9eb7726 100644 --- a/models/openai_model.py +++ b/models/openai_model.py @@ -51,6 +51,7 @@ class Model: self._summarize_conversations = True self._summarize_threshold = 2500 self.model_max_tokens = 4024 + self.send_welcome_message = False try: self.IMAGE_SAVE_PATH = os.environ["IMAGE_SAVE_PATH"] @@ -75,6 +76,21 @@ class Model: self.openai_key = os.getenv("OPENAI_TOKEN") # Use the @property and @setter decorators for all the self fields to provide value checking + + @property + def welcome_message_enabled(self): + return self.send_welcome_message + + @send_welcome_message.setter + def welcome_message_enabled(self, value): + if value.lower() == "true": + self.send_welcome_message = True + elif value.lower() == "false": + self.send_welcome_message = False + else: + raise ValueError("Value must be either true or false!") + + @property def summarize_threshold(self): return self._summarize_threshold From f30c9f07e3bb1db76d384dabc552f58057d27ab4 Mon Sep 17 00:00:00 2001 From: Karl <58265182+KarlKennerley@users.noreply.github.com> Date: Sun, 1 Jan 2023 21:46:21 +0000 Subject: [PATCH 06/19] Changed welcome message to query GPT3 for new msg Welcome messages are now generated by GPT3 or default to one stored in env variable if GPT3 in unavailable. --- cogs/gpt_3_commands_and_converser.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index 2620a85..600e9a2 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -16,7 +16,6 @@ from collections import defaultdict original_message = {} ALLOWED_GUILDS = EnvService.get_allowed_guilds() -WELCOME_MESSAGE = EnvService.get_welcome_message() class GPT3ComCon(commands.Cog, name="GPT3ComCon"): @@ -92,9 +91,14 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): @commands.Cog.listener() async def on_member_join(self, member): - welcome_embed = discord.Embed(title=f"Welcome, {member.name}!", description=WELCOME_MESSAGE) - welcome_embed.add_field(name="Just so you know...", value="> My commands are invoked with a forward slash ("/")\n> Use /help to see my help messages.") - await member.send(content=None, embed=welcome_embded) + if self.welcome_message_enabled(): + query = f"Please generate a welcome message for {member.name} who has just joined the server." + welcome_message = self.send_request(query, tokens=self.usage_service.count_tokens(query)) + if not welcome_message: + welcome_message = EnvService.get_welcome_message() + welcome_embed = discord.Embed(title=f"Welcome, {member.name}!", description=welcome_message) + welcome_embed.add_field(name="Just so you know...", value="> My commands are invoked with a forward slash ("/")\n> Use /help to see my help message(s).") + await member.send(content=None, embed=welcome_embded) @commands.Cog.listener() async def on_member_remove(self, member): From 3a663c244f134e25be220a8f4f25734ffd1c282a Mon Sep 17 00:00:00 2001 From: Karl <58265182+KarlKennerley@users.noreply.github.com> Date: Sun, 1 Jan 2023 21:52:35 +0000 Subject: [PATCH 07/19] Updated get_welcome_message function Updated the get_welcome_message function to fall back on a string saved in a .env file and then to fall back on a simple default string. --- models/env_service_model.py | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/models/env_service_model.py b/models/env_service_model.py index 317058e..0271697 100644 --- a/models/env_service_model.py +++ b/models/env_service_model.py @@ -56,18 +56,11 @@ class EnvService: @staticmethod def get_welcome_message(): - # WELCOME_MESSAGE is a string used to welcome new members to the server. - #The string can be blank. + # WELCOME_MESSAGE is a default string used to welcome new members to the server if GPT3 is not available. + #The string can be blank but this is not advised. If a string cannot be found in the .env file, the below string is used. #The string is DMd to the new server member as part of an embed. try: welcome_message = os.getenv("WELCOME_MESSAGE") except: - welcome_message = None - - if welcome_message is None: - raise ValueError( - "WELCOME_MESSAGE is not defined properly in the environment file!" - "Please create a welcome message and put it into WELCOME_MESSAGE in the .env file." - 'For example a line should look like: `WELCOME_MESSAGE:"Welcome to our server! We hop you enjoy it here."`' - ) - return welcome_message + welcome_message = "Hi there! Welcome to our Discord server!" + return welcome_message From 7327982f3c89f13bbe5236475fbb1a530d838a96 Mon Sep 17 00:00:00 2001 From: Kaveen Kumarasinghe Date: Mon, 2 Jan 2023 02:43:03 -0500 Subject: [PATCH 08/19] Error on draw failure --- cogs/draw_image_generation.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/cogs/draw_image_generation.py b/cogs/draw_image_generation.py index 95756a7..ce74ff3 100644 --- a/cogs/draw_image_generation.py +++ b/cogs/draw_image_generation.py @@ -44,12 +44,24 @@ class DrawDallEService(commands.Cog, name="DrawDallEService"): ): await asyncio.sleep(0) # send the prompt to the model - file, image_urls = await self.model.send_image_request( - prompt, vary=vary if not draw_from_optimizer else None - ) - from_context = isinstance(ctx, discord.ApplicationContext) + try: + file, image_urls = await self.model.send_image_request( + prompt, vary=vary if not draw_from_optimizer else None + ) + except ValueError as e: + ( + await ctx.channel.send( + f"Error: {e}. Please try again with a different prompt." + ) + if not from_context + else await ctx.respond(f"Error: {e}. Please try again with a different prompt.") + ) + return + + + # Start building an embed to send to the user with the results of the image generation embed = discord.Embed( title="Image Generation Results" From fd01dede709a0f30ed1132acbc445a5c0a2c5601 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Mon, 2 Jan 2023 07:43:32 +0000 Subject: [PATCH 09/19] Format Python code with psf/black push --- cogs/draw_image_generation.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cogs/draw_image_generation.py b/cogs/draw_image_generation.py index ce74ff3..513a542 100644 --- a/cogs/draw_image_generation.py +++ b/cogs/draw_image_generation.py @@ -56,12 +56,12 @@ class DrawDallEService(commands.Cog, name="DrawDallEService"): f"Error: {e}. Please try again with a different prompt." ) if not from_context - else await ctx.respond(f"Error: {e}. Please try again with a different prompt.") + else await ctx.respond( + f"Error: {e}. Please try again with a different prompt." + ) ) return - - # Start building an embed to send to the user with the results of the image generation embed = discord.Embed( title="Image Generation Results" From a5f5b0d35d9270e947094fff85d5edcf016bd03c Mon Sep 17 00:00:00 2001 From: Karl <58265182+KarlKennerley@users.noreply.github.com> Date: Mon, 2 Jan 2023 14:42:41 +0000 Subject: [PATCH 10/19] Updated on_member_join function --- cogs/gpt_3_commands_and_converser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index 600e9a2..641f09f 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -93,7 +93,7 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): async def on_member_join(self, member): if self.welcome_message_enabled(): query = f"Please generate a welcome message for {member.name} who has just joined the server." - welcome_message = self.send_request(query, tokens=self.usage_service.count_tokens(query)) + welcome_message = self.model.send_request(query, tokens=self.usage_service.count_tokens(query)) if not welcome_message: welcome_message = EnvService.get_welcome_message() welcome_embed = discord.Embed(title=f"Welcome, {member.name}!", description=welcome_message) From e9e05facd1f92326004970e5b3722e3b35abdb5f Mon Sep 17 00:00:00 2001 From: Karl <58265182+KarlKennerley@users.noreply.github.com> Date: Mon, 2 Jan 2023 15:25:23 +0000 Subject: [PATCH 11/19] Added .env welcome_message info Added information on the WELCOME_MESSAGE .env variable. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 1873c72..8ba4e9a 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,8 @@ You also need to add the allowed guilds that the bot can operate on, this is the You also need to add the roles that can use the bot, this is the `ALLOWED_ROLES` field, enter role names here, separated by commas. Currently, there is no way to give everybody access to the bot, and you have to use roles, but it will be done soon. +You can optionally add a fallback welcomming message for the bot to use when new members join. If enabled, the bot will DM new members with a welcomming message generated by GPT3. If the call to GPT3 fails, the string used in the .env file is used. As further redundency, a hardcoded welcomming message is used. + ``` OPENAI_TOKEN="" DISCORD_TOKEN="" @@ -74,6 +76,7 @@ DEBUG_GUILD="974519864045756446" #discord_server_id DEBUG_CHANNEL="977697652147892304" #discord_chanel_id ALLOWED_GUILDS="971268468148166697,971268468148166697" ALLOWED_ROLES="Admin,gpt" +WELCOME_MESSAGE="Hi There! Welcome to our Discord server. We hope you'll enjoy our server and we look forward to engaging with you!" #Optional ``` Optionally, you can include your own conversation starter text for the bot that's used with `!g converse`, with `CONVERSATION_STARTER_TEXT` From db1191144d60bfa5065d3b57dfe0af5960ce2ed5 Mon Sep 17 00:00:00 2001 From: Kaveen Kumarasinghe Date: Mon, 2 Jan 2023 18:38:41 -0500 Subject: [PATCH 12/19] fix minor typo --- models/env_service_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/env_service_model.py b/models/env_service_model.py index 0271697..c796707 100644 --- a/models/env_service_model.py +++ b/models/env_service_model.py @@ -63,4 +63,4 @@ class EnvService: welcome_message = os.getenv("WELCOME_MESSAGE") except: welcome_message = "Hi there! Welcome to our Discord server!" - return welcome_message + return welcome_message From 316dcbb0230ff1ff0d7162985fd7c3dd2aa300fa Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Mon, 2 Jan 2023 23:39:04 +0000 Subject: [PATCH 13/19] Format Python code with psf/black push --- cogs/gpt_3_commands_and_converser.py | 16 ++++++++++++---- models/env_service_model.py | 6 +++--- models/openai_model.py | 5 ++--- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index e135761..ded352c 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -98,13 +98,21 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): async def on_member_join(self, member): if self.welcome_message_enabled(): query = f"Please generate a welcome message for {member.name} who has just joined the server." - welcome_message = self.model.send_request(query, tokens=self.usage_service.count_tokens(query)) + welcome_message = self.model.send_request( + query, tokens=self.usage_service.count_tokens(query) + ) if not welcome_message: welcome_message = EnvService.get_welcome_message() - welcome_embed = discord.Embed(title=f"Welcome, {member.name}!", description=welcome_message) - welcome_embed.add_field(name="Just so you know...", value="> My commands are invoked with a forward slash ("/")\n> Use /help to see my help message(s).") + welcome_embed = discord.Embed( + title=f"Welcome, {member.name}!", description=welcome_message + ) + welcome_embed.add_field( + name="Just so you know...", + value="> My commands are invoked with a forward slash (" + / ")\n> Use /help to see my help message(s).", + ) await member.send(content=None, embed=welcome_embded) - + @commands.Cog.listener() async def on_member_remove(self, member): pass diff --git a/models/env_service_model.py b/models/env_service_model.py index c796707..cf94c9e 100644 --- a/models/env_service_model.py +++ b/models/env_service_model.py @@ -53,12 +53,12 @@ class EnvService: allowed_roles.split(",") if "," in allowed_roles else [allowed_roles] ) return allowed_roles - + @staticmethod def get_welcome_message(): # WELCOME_MESSAGE is a default string used to welcome new members to the server if GPT3 is not available. - #The string can be blank but this is not advised. If a string cannot be found in the .env file, the below string is used. - #The string is DMd to the new server member as part of an embed. + # The string can be blank but this is not advised. If a string cannot be found in the .env file, the below string is used. + # The string is DMd to the new server member as part of an embed. try: welcome_message = os.getenv("WELCOME_MESSAGE") except: diff --git a/models/openai_model.py b/models/openai_model.py index 39fb535..71c61a7 100644 --- a/models/openai_model.py +++ b/models/openai_model.py @@ -78,7 +78,7 @@ class Model: self.openai_key = os.getenv("OPENAI_TOKEN") # Use the @property and @setter decorators for all the self fields to provide value checking - + @property def welcome_message_enabled(self): return self.send_welcome_message @@ -91,8 +91,7 @@ class Model: self.send_welcome_message = False else: raise ValueError("Value must be either true or false!") - - + @property def summarize_threshold(self): return self._summarize_threshold From 7d116d2ef3464ad688719e96a199f9c21d91f865 Mon Sep 17 00:00:00 2001 From: Kaveen Kumarasinghe Date: Mon, 2 Jan 2023 18:43:06 -0500 Subject: [PATCH 14/19] fix typos --- cogs/gpt_3_commands_and_converser.py | 10 +++++++--- models/openai_model.py | 10 +++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index e135761..05b8744 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -96,14 +96,18 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): @commands.Cog.listener() async def on_member_join(self, member): - if self.welcome_message_enabled(): + if self.model.welcome_message_enabled: query = f"Please generate a welcome message for {member.name} who has just joined the server." - welcome_message = self.model.send_request(query, tokens=self.usage_service.count_tokens(query)) + try: + welcome_message = self.model.send_request(query, tokens=self.usage_service.count_tokens(query)) + except: + welcome_message = None + if not welcome_message: welcome_message = EnvService.get_welcome_message() welcome_embed = discord.Embed(title=f"Welcome, {member.name}!", description=welcome_message) welcome_embed.add_field(name="Just so you know...", value="> My commands are invoked with a forward slash ("/")\n> Use /help to see my help message(s).") - await member.send(content=None, embed=welcome_embded) + await member.send(content=None, embed=welcome_embed) @commands.Cog.listener() async def on_member_remove(self, member): diff --git a/models/openai_model.py b/models/openai_model.py index 39fb535..1a012b3 100644 --- a/models/openai_model.py +++ b/models/openai_model.py @@ -53,7 +53,7 @@ class Model: self._summarize_conversations = True self._summarize_threshold = 2500 self.model_max_tokens = 4024 - self.send_welcome_message = False + self._welcome_message_enabled = False try: self.IMAGE_SAVE_PATH = os.environ["IMAGE_SAVE_PATH"] @@ -81,14 +81,14 @@ class Model: @property def welcome_message_enabled(self): - return self.send_welcome_message + return self._welcome_message_enabled - @send_welcome_message.setter + @welcome_message_enabled.setter def welcome_message_enabled(self, value): if value.lower() == "true": - self.send_welcome_message = True + self._welcome_message_enabled = True elif value.lower() == "false": - self.send_welcome_message = False + self._welcome_message_enabled = False else: raise ValueError("Value must be either true or false!") From 42d733de61e92baece6829018a29ae4236f8ae1a Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Mon, 2 Jan 2023 23:48:04 +0000 Subject: [PATCH 15/19] Format Python code with psf/black push --- cogs/gpt_3_commands_and_converser.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index 40afeb9..3961968 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -100,16 +100,24 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): query = f"Please generate a welcome message for {member.name} who has just joined the server." try: - welcome_message = self.model.send_request(query, tokens=self.usage_service.count_tokens(query)) + welcome_message = self.model.send_request( + query, tokens=self.usage_service.count_tokens(query) + ) except: welcome_message = None if not welcome_message: welcome_message = EnvService.get_welcome_message() - welcome_embed = discord.Embed(title=f"Welcome, {member.name}!", description=welcome_message) - welcome_embed.add_field(name="Just so you know...", value="> My commands are invoked with a forward slash ("/")\n> Use /help to see my help message(s).") + welcome_embed = discord.Embed( + title=f"Welcome, {member.name}!", description=welcome_message + ) + welcome_embed.add_field( + name="Just so you know...", + value="> My commands are invoked with a forward slash (" + / ")\n> Use /help to see my help message(s).", + ) await member.send(content=None, embed=welcome_embed) - + @commands.Cog.listener() async def on_member_remove(self, member): pass From dcb90f57fae81a3751964e54d7325f3113796364 Mon Sep 17 00:00:00 2001 From: Kaveen Kumarasinghe Date: Mon, 2 Jan 2023 18:52:15 -0500 Subject: [PATCH 16/19] typo --- cogs/gpt_3_commands_and_converser.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index 3961968..a78f5fd 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -113,8 +113,7 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): ) welcome_embed.add_field( name="Just so you know...", - value="> My commands are invoked with a forward slash (" - / ")\n> Use /help to see my help message(s).", + value="> My commands are invoked with a forward slash (/)\n> Use /help to see my help message(s).", ) await member.send(content=None, embed=welcome_embed) From 28d04d575309389f484de031d4901a48d4f25caa Mon Sep 17 00:00:00 2001 From: Kaveen Kumarasinghe Date: Mon, 2 Jan 2023 18:57:06 -0500 Subject: [PATCH 17/19] update settings with new param --- cogs/gpt_3_commands_and_converser.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index a78f5fd..872bc76 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -103,6 +103,7 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): welcome_message = self.model.send_request( query, tokens=self.usage_service.count_tokens(query) ) + except: welcome_message = None From 0adb5c0e389c74e2047ebe3c04689842d4b1ee1b Mon Sep 17 00:00:00 2001 From: Kaveen Kumarasinghe Date: Mon, 2 Jan 2023 19:10:16 -0500 Subject: [PATCH 18/19] fix welcome message --- cogs/gpt_3_commands_and_converser.py | 8 ++++---- models/openai_model.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index 872bc76..a0aa8de 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -17,8 +17,6 @@ from collections import defaultdict original_message = {} ALLOWED_GUILDS = EnvService.get_allowed_guilds() -print("THE ALLOWED GUILDS ARE: ", ALLOWED_GUILDS) - class GPT3ComCon(commands.Cog, name="GPT3ComCon"): def __init__( @@ -100,10 +98,10 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): query = f"Please generate a welcome message for {member.name} who has just joined the server." try: - welcome_message = self.model.send_request( + welcome_message_response = await self.model.send_request( query, tokens=self.usage_service.count_tokens(query) ) - + welcome_message = str(welcome_message_response["choices"][0]["text"]) except: welcome_message = None @@ -112,6 +110,7 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): welcome_embed = discord.Embed( title=f"Welcome, {member.name}!", description=welcome_message ) + welcome_embed.add_field( name="Just so you know...", value="> My commands are invoked with a forward slash (/)\n> Use /help to see my help message(s).", @@ -860,6 +859,7 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"): "num_images", "summarize_conversations", "summarize_threshold", + "welcome_message_enabled", "IMAGE_SAVE_PATH", ], ) diff --git a/models/openai_model.py b/models/openai_model.py index 5ac1ac6..6a6d850 100644 --- a/models/openai_model.py +++ b/models/openai_model.py @@ -53,7 +53,7 @@ class Model: self._summarize_conversations = True self._summarize_threshold = 2500 self.model_max_tokens = 4024 - self._welcome_message_enabled = False + self._welcome_message_enabled = True try: self.IMAGE_SAVE_PATH = os.environ["IMAGE_SAVE_PATH"] From b06e038a4e9b4f33dd66c315c4135a0e6935ddf6 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Tue, 3 Jan 2023 00:10:39 +0000 Subject: [PATCH 19/19] Format Python code with psf/black push --- cogs/gpt_3_commands_and_converser.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cogs/gpt_3_commands_and_converser.py b/cogs/gpt_3_commands_and_converser.py index a0aa8de..1bccd21 100644 --- a/cogs/gpt_3_commands_and_converser.py +++ b/cogs/gpt_3_commands_and_converser.py @@ -18,6 +18,7 @@ from collections import defaultdict original_message = {} ALLOWED_GUILDS = EnvService.get_allowed_guilds() + class GPT3ComCon(commands.Cog, name="GPT3ComCon"): def __init__( self,