diff --git a/Impact.ttf b/Impact.ttf new file mode 100644 index 00000000..b4428717 Binary files /dev/null and b/Impact.ttf differ diff --git a/agent.py b/agent.py index fb886381..6fa238e1 100644 --- a/agent.py +++ b/agent.py @@ -1,29 +1,282 @@ import os from mistralai import Mistral import discord +from openai import OpenAI +from collections import defaultdict +from typing import List, Dict +import logging -MISTRAL_MODEL = "mistral-large-latest" -SYSTEM_PROMPT = "You are a helpful assistant." - +# Setup logging +logger = logging.getLogger(__name__) +MISTRAL_MODEL = "mistral-large-latest" class MistralAgent: def __init__(self): MISTRAL_API_KEY = os.getenv("MISTRAL_API_KEY") - self.client = Mistral(api_key=MISTRAL_API_KEY) + self.chat_history = [] + self.max_chat_length = 5 + self.model = MISTRAL_MODEL - async def run(self, message: discord.Message): - # The simplest form of an agent - # Send the message's content to Mistral's API and return Mistral's response + def add_to_chat_history(self, message: discord.Message): + self.chat_history.append({"author": message.author.name, "content": message.content}) + if len(self.chat_history) > self.max_chat_length: + self.chat_history.pop(0) + + async def react_to_latest(self, sentiment: str) -> str: + """ + React to the latest message in the chat history + Optionally analyze the sentiment of the message if provided. + + Args: + sentiment: (optional) string of sentiment to react with + + Returns: + A string with the reaction and optional sentiment analysis + """ + # Get the chat history + history = self.chat_history + + if not history: + return "No chat history available to react to." + + # Get the latest message (Using queue, first is oldest) + latest_message = history[-1] + + # Create a prompt for the AI to generate a reaction + reaction_prompt_messages = [ + {"role": "system", "content": "You are a helpful assistant that reacts to messages with relevant emojis and brief comments."}, + {"role": "user", "content": f"""This is the latest message from {latest_message['author']}: + + "{latest_message['content']}" + + Please generate a reaction to this message. Your reaction should include: + 1. An appropriate emoji or set of emojis + 3. A brief comment (1-2 sentences) about the message - messages = [ - {"role": "system", "content": SYSTEM_PROMPT}, - {"role": "user", "content": message.content}, + {f'Also, please have your reaction be with the following sentiment which was specified by the user: {sentiment}' if sentiment else ''} + """} ] - - response = await self.client.chat.complete_async( - model=MISTRAL_MODEL, - messages=messages, + + # Get reaction from Mistral + reaction_response = await self.client.chat.complete_async( + model=self.model, + messages=reaction_prompt_messages ) + + reaction = reaction_response.choices[0].message.content + return reaction + + async def generate_meme_concept_from_chat_history(self): + """ + Generate a concept for a meme based on recent chat history + """ + try: + history_text = "\n".join([ + f"{msg['author']}: {msg['content']}" + for msg in self.chat_history + ]) + + # Log the history being sent to the model + logger.info(f"Generating meme concept from history: {history_text[:200]}...") + + generate_meme_concept_messages = [ + { + "role": "system", + "content": "You are a creative meme generator." + }, + { + "role": "user", + "content": f"""Come up with a concept for a funny meme based on the following chat history: + + {history_text} + + Structure your response exactly as follows: + + IMAGE DESCRIPTION: [Describe a visual scene that exaggerates or creates an unexpected twist on something from the chat] + CAPTION: [A clever or ironic caption that delivers a punchline] + + You MUST follow these guidelines for the caption: + - Keep it simple and concise + - Do not use any contractions + - Make sure it reads naturally and makes logical sense + - Do not use markdown formatting like asterisks or bold text + """ + } + ] - return response.choices[0].message.content + response = await self.client.chat.complete_async( + model=MISTRAL_MODEL, + messages=generate_meme_concept_messages, + ) + + meme_concept = response.choices[0].message.content + logger.info(f"Generated meme concept: {meme_concept}") + return meme_concept + + except Exception as e: + logger.error(f"Error in generating meme concept: {str(e)}") + raise Exception(f"Failed to generate meme concept: {str(e)}") + + async def handle_content_policy_violation(self): + """ + Generate a humorous message when content policy violation occurs + """ + try: + humor_response_messages = [ + {"role": "system", "content": "You are a witty, humorous AI assistant."}, + {"role": "user", "content": f""" + Write a short, humorous message (2-3 sentences max) explaining why a meme couldn't be + generated due to content policy. Make it funny, like the AI is slightly embarrassed. + + Don't use phrases like "I apologize" or "I'm sorry" - just be light and humorous. + Don't mention specific content policies - keep it vague and funny. + + Example: "Well, this chat was a little too spicy for me to generate a meme. Better luck next time hehe :)" + """} + ] + + response = await self.client.chat.complete_async( + model=MISTRAL_MODEL, + messages=humor_response_messages, + ) + + return response.choices[0].message.content + + except Exception as e: + logger.error(f"Error generating humorous response: {e}") + return "Well, this chat was a little too spicy for me to generate a meme. Better luck next time hehe :)" + + async def decide_spontaneous_meme(self): + """ + Decide whether to generate a meme spontaneously based on the chat history + """ + try: + # Format the chat history for the AI + history_text = "\n".join([ + f"{msg['author']}: {msg['content']}" + for msg in self.chat_history + ]) + + # Create a prompt for the AI to decide if a meme should be generated + decision_prompt_messages = [ + {"role": "system", "content": "You are an assistant that decides whether to generate a meme based on chat context. You should be conservative and only suggest memes when truly appropriate. Spontaneous memes should be rare (less than 10% of conversations)."}, + {"role": "user", "content": f"""Here is the recent chat history: + +{history_text} + +Based ONLY on this conversation, decide if it's appropriate to generate a meme. +Consider: +1. Is there a clear joke or reference that would make a good meme? +2. Is the conversation light-hearted enough for a meme? +3. Has enough context been established for a meme to make sense? +4. Would a meme add value to this conversation? + +IMPORTANT: Spontaneous memes should be RARE - only generate them for truly meme-worthy conversations. + +Respond with ONLY "YES" or "NO". +"""} + ] + + decision_response = await self.client.chat.complete_async( + model=MISTRAL_MODEL, + messages=decision_prompt_messages, + ) + + decision = decision_response.choices[0].message.content.strip().upper() + + # If the AI decides to generate a meme, call the generate_meme method + if decision == "YES": + return True, "Decided to generate a meme for this conversation." + else: + return False, "Decided not to generate a meme for this conversation." + + except Exception as e: + logger.error(f"Error in decide_spontaneous_meme: {str(e)}") + return False, f"Error deciding whether to generate meme: {str(e)}" + + +class OpenAIAgent: + def __init__(self): + OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") + self.client = OpenAI(api_key=OPENAI_API_KEY) + + async def generate_meme_from_concept(self, meme_concept): + """ + Generate a meme based on recent chat history + Returns image url without text and the text info separately + """ + try: + # Parse the structured meme concept + image_description = "" + meme_text = "" + + # Log the raw concept for debugging + logger.info(f"Raw meme concept: {meme_concept}") + + # Handle Markdown formatting in the response + clean_concept = meme_concept.replace("**", "") + + for line in clean_concept.split('\n'): + # Use case-insensitive check and handle different variations + if "IMAGE DESCRIPTION:" in line.upper(): + image_description = line.replace("IMAGE DESCRIPTION:", "", 1).strip() + elif "CAPTION:" in line.upper(): + meme_text = line.replace("CAPTION:", "", 1).strip() + + # Log the parsed components + logger.info(f"Image Description: {image_description}") + logger.info(f"Caption: {meme_text}") + + # Check if we have valid content + if not image_description: + logger.error("Failed to parse image description") + # Try a fallback approach - take everything between IMAGE DESCRIPTION and CAPTION + parts = clean_concept.upper().split("IMAGE DESCRIPTION:") + if len(parts) > 1: + caption_parts = parts[1].split("CAPTION:") + if len(caption_parts) > 1: + image_description = caption_parts[0].strip() + logger.info(f"Fallback Image Description: {image_description}") + + if not meme_text: + logger.error("Failed to parse caption") + # Try a fallback approach + parts = clean_concept.upper().split("CAPTION:") + if len(parts) > 1: + meme_text = parts[1].strip() + logger.info(f"Fallback Caption: {meme_text}") + + # Modified prompt for generating image WITHOUT text + dalle_prompt = f"""Create a meme image given this description: {image_description} + + I NEED a simple, clean image with NO TEXT whatsoever.""" + + # Log the prompt + logger.info(f"DALL-E Prompt: {dalle_prompt[:200]}...") + + # Generate the meme with DALL-E + image_response = self.client.images.generate( + model="dall-e-3", + prompt=dalle_prompt, + size="1024x1024", + quality="standard", + n=1, + ) + + # Return the image URL and the caption + return { + "image_url": image_response.data[0].url, + "text": meme_text, + } + + except Exception as e: + logger.error(f"Error in generate_meme_from_concept: {str(e)}") + + # Check if this is a content policy violation and return None with the error + if "content_policy_violation" in str(e): + logger.warning(f"Content policy violation in meme generation: {meme_concept}") + return None, str(e) + + # Re-raise for other types of errors + raise Exception(f"Failed to generate meme image: {str(e)}") diff --git a/bot.py b/bot.py index d146885b..aed83d54 100644 --- a/bot.py +++ b/bot.py @@ -1,15 +1,28 @@ import os import discord import logging +import aiohttp +import io +from PIL import Image, ImageDraw, ImageFont +import textwrap from discord.ext import commands from dotenv import load_dotenv from agent import MistralAgent +from agent import OpenAIAgent PREFIX = "!" # Setup logging -logger = logging.getLogger("discord") +logging.basicConfig( + level=logging.INFO, + format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + handlers=[ + logging.FileHandler("discord_bot.log"), + logging.StreamHandler() + ] +) +logger = logging.getLogger("discord_bot") # Load the environment variables load_dotenv() @@ -19,13 +32,113 @@ intents = discord.Intents.all() bot = commands.Bot(command_prefix=PREFIX, intents=intents) -# Import the Mistral agent from the agent.py file -agent = MistralAgent() - +# Import the Mistral and OpenAI agent from the agent.py file +agent_mistral = MistralAgent() +agent_openai = OpenAIAgent() # Get the token from the environment variables token = os.getenv("DISCORD_TOKEN") +# Helper function to add text to images +async def add_text_to_image(image_url, text): + """ + Downloads an image from URL and adds text below the image with black text and reduced margins + Returns a file-like object of the modified image + """ + # Download the image + async with aiohttp.ClientSession() as session: + async with session.get(image_url) as response: + if response.status != 200: + raise Exception(f"Failed to download image: {response.status}") + image_data = await response.read() + + # Open the image with PIL + original_image = Image.open(io.BytesIO(image_data)) + + # Get original image dimensions + original_width, original_height = original_image.size + + text = text.upper() + + # Try to load a good font + try: + # Adjust path to where you store the font + font_path = os.path.join(os.path.dirname(__file__), "Impact.ttf") + if os.path.exists(font_path): + font = ImageFont.truetype(font_path, size=int(original_height/14)) + else: + # Fallback to default font + font = ImageFont.load_default() + except: + # Fallback to default font + font = ImageFont.load_default() + + # Text wrapping + max_width = int(original_width * 0.95) # 95% of image width to reduce margins + chars_per_line = 40 # Allow more characters per line + + try: + # For newer Pillow versions + avg_char_width = font.getbbox("A")[2] + chars_per_line = max(1, int(max_width / avg_char_width)) + except: + # Fallback for older Pillow versions or errors + pass + + wrapped_text = textwrap.fill(text, width=chars_per_line) + + # Calculate text height + try: + # For newer Pillow versions + text_bbox = ImageDraw.Draw(Image.new('RGB', (1, 1))).multiline_textbbox((0, 0), wrapped_text, font=font) + text_width = text_bbox[2] - text_bbox[0] + text_height = text_bbox[3] - text_bbox[1] + except: + # Fallback for older Pillow versions + text_width, text_height = ImageDraw.Draw(Image.new('RGB', (1, 1))).multiline_textsize(wrapped_text, font=font) + + # Calculate padding and new image dimensions - use smaller padding + padding = int(original_height * 0.02) # Reduced to 2% of image height as padding + new_height = original_height + text_height + (padding * 2) # Original + text height + padding above and below + + # Create a new larger canvas with extra space below + new_image = Image.new('RGB', (original_width, new_height), (255, 255, 255)) # White background + + # Paste the original image at the top + new_image.paste(original_image, (0, 0)) + + # Create a draw object for the new image + draw = ImageDraw.Draw(new_image) + + # Calculate position to center text in the new space below the image + position = ((original_width - text_width) / 2, original_height + padding) + + # Draw text in black directly (no outline) + try: + # For newer Pillow versions + draw.multiline_text( + position, + wrapped_text, + font=font, + fill=(0, 0, 0), # Black text + align="center" + ) + except: + # Fallback for older Pillow versions + draw.multiline_text( + position, + wrapped_text, + font=font, + fill=(0, 0, 0), # Black text + align="center" + ) + + # Convert to bytes + output = io.BytesIO() + new_image.save(output, format="PNG") + output.seek(0) + + return output @bot.event async def on_ready(): @@ -51,29 +164,197 @@ async def on_message(message: discord.Message): # Ignore messages from self or other bots to prevent infinite loops. if message.author.bot or message.content.startswith("!"): return + + # Add message to chat history + agent_mistral.add_to_chat_history(message) + logger.info(f"Added message from {message.author} to history: {message.content}") - # Process the message with the agent you wrote - # Open up the agent.py file to customize the agent - logger.info(f"Processing message from {message.author}: {message.content}") - response = await agent.run(message) - - # Send the response back to the channel - await message.reply(response) + try: + spontaneous_meme_decision, spontaneous_meme_reason = await agent_mistral.decide_spontaneous_meme() + logger.info(f"Spontaneous meme decision: {spontaneous_meme_decision}, reason: {spontaneous_meme_reason}") + if spontaneous_meme_decision: + await generate_spontaneous_meme(message) + except Exception as e: + logger.error(f"Error deciding spontaneous meme: {e}") + # Commands +# New command for generating memes based on chat history +@bot.command(name="generate", help="Generate a meme based on recent chat history.") +async def generate_meme(ctx): + """ + Generate a meme based on the chat history in the current channel. + """ + # Let the user know we're working on it + processing_msg = await ctx.send("Generating a meme based on your conversation....") + + try: + # Call Mistral agent to generate meme concept (text) + meme_concept = await agent_mistral.generate_meme_concept_from_chat_history() + + # Call OpenAI agent (Dall-E) to generate meme image without text + result = await agent_openai.generate_meme_from_concept(meme_concept) + + # Check if image generation failed due to content policy + if result is None or not isinstance(result, dict): + logger.warning(f"Content policy violation during meme generation: {result}") + + # Generate a humorous response + humor_response = await agent_mistral.handle_content_policy_violation(meme_concept) + await processing_msg.edit(content=humor_response) + return + + # Extract image URL and text from result + image_url = result["image_url"] + meme_text = result["text"] + + # Check if we got a valid image URL + if not image_url: + await processing_msg.edit(content=f"Couldn't generate a meme. Please try again.") + logger.error(f"No image URL returned for meme concept: {meme_concept}") + return + + try: + # Add text to the image using Pillow + image_with_text = await add_text_to_image(image_url, meme_text) + + # Send the modified image as a file + file = discord.File(fp=image_with_text, filename="meme.png") + + # Create an embed with the attached file + embed = discord.Embed(title="Generated Meme", color=discord.Color.blue()) + embed.set_image(url="attachment://meme.png") + embed.set_footer(text=f"Requested by {ctx.author.display_name}") + + # Send the meme + await ctx.send(file=file, embed=embed) + + except Exception as e: + logger.error(f"Error adding text to image: {e}") + + # Fallback to sending the image without text overlay + embed = discord.Embed(title="Generated Meme", color=discord.Color.blue()) + embed.set_image(url=image_url) + embed.set_footer(text=f"Requested by {ctx.author.display_name}") + + await ctx.send(embed=embed) + + # Delete the processing message + await processing_msg.delete() + + except Exception as e: + logger.error(f"Error generating meme: {e}") + error_message = f"Sorry, I encountered an error while generating the meme. Let's try again later!" + + # For debugging, include error details + if os.getenv("DEBUG", "False").lower() == "true": + error_message += f"\n\nError details: {str(e)}" + + await processing_msg.edit(content=error_message) +# Function for spontaneous meme generation (called from on_message) +async def generate_spontaneous_meme(message): + """ + Generate a spontaneous meme based on the chat history in the current channel. + Similar to the command version but works with a message object instead of ctx. + """ + # Let the user know we're working on it + processing_msg = await message.channel.send("I've decided this conversation deserves a meme.......") + + try: + # Call Mistral agent to generate meme concept (text) + meme_concept = await agent_mistral.generate_meme_concept_from_chat_history() + + # Call OpenAI agent (Dall-E) to generate meme image without text + result = await agent_openai.generate_meme_from_concept(meme_concept) + + # Check if image generation failed due to content policy + if result is None or not isinstance(result, dict): + logger.warning(f"Content policy violation during spontaneous meme generation: {result}") + + # Generate a humorous response + humor_response = await agent_mistral.handle_content_policy_violation(meme_concept) + await processing_msg.edit(content=humor_response) + return + + # Extract image URL and text from result + image_url = result["image_url"] + meme_text = result["text"] + + # Check if we got a valid image URL + if not image_url: + await processing_msg.edit(content=f"I changed my mind about that meme. The timing wasn't right.") + logger.error(f"No image URL returned for spontaneous meme concept: {meme_concept}") + return + + try: + # Add text to the image using Pillow + image_with_text = await add_text_to_image(image_url, meme_text) + + # Send the modified image as a file + file = discord.File(fp=image_with_text, filename="meme.png") + + # Create an embed with the attached file + embed = discord.Embed(title="Spontaneous Meme", color=discord.Color.green()) + embed.set_image(url="attachment://meme.png") + embed.set_footer(text=f"Generated spontaneously based on your conversation") + + # Send the meme + await message.channel.send(file=file, embed=embed) + + except Exception as e: + logger.error(f"Error adding text to image: {e}") + + # Fallback to sending the image without text overlay + embed = discord.Embed(title="Spontaneous Meme", color=discord.Color.green()) + embed.set_image(url=image_url) + embed.set_footer(text=f"Generated spontaneously based on your conversation") + + # Let the user know we had to fall back + embed.add_field(name="Note", value="Couldn't add text directly to image. Caption shown separately.", inline=False) + + await message.channel.send(embed=embed) + + # Delete the processing message + await processing_msg.delete() + + except Exception as e: + logger.error(f"Error generating spontaneous meme: {e}") + await processing_msg.edit(content=f"I was going to make a meme, but I got distracted. Maybe next time!") -# This example command is here to show you how to add commands to the bot. -# Run !ping with any number of arguments to see the command in action. -# Feel free to delete this if your project will not need commands. -@bot.command(name="ping", help="Pings the bot.") -async def ping(ctx, *, arg=None): - if arg is None: - await ctx.send("Pong!") - else: - await ctx.send(f"Pong! Your argument was {arg}") - +# New command to have the bot react to the memes +@bot.command(name="react", help="React to the latest message in the chat. Use optional sentiment type (happy, sad, angry, etc.)") +async def react_to_message(ctx, *args): + """ + React to the latest message in the current channel. + Optional argument for sentiment (e.g., happy, sad, angry, surprised). + Usage: !react [sentiment] + """ + sentiment = None + if args: + sentiment = " ".join(args) # Join all sentiment descriptors, discord bot ignores command by default + + # Let the user know we're working on it + processing_msg = await ctx.send("Generating a reaction to the latest message... 🤔") + + try: + reaction = await agent_mistral.react_to_latest(sentiment) + + # Display the reaction + embed = discord.Embed(title="Reaction to Latest Message", color=discord.Color.green()) + embed.description = reaction + embed.set_footer(text=f"Requested by {ctx.author.display_name}") + + # Send the reaction + await ctx.send(embed=embed) + + # Delete the processing message + await processing_msg.delete() + + except Exception as e: + logger.error(f"Error generating reaction: {e}") + await processing_msg.edit(content=f"Sorry, I encountered an error while generating the reaction: {str(e)}") # Start the bot, connecting it to the gateway -bot.run(token) +bot.run(token) \ No newline at end of file diff --git a/discord_bot.log b/discord_bot.log new file mode 100644 index 00000000..110d7fef --- /dev/null +++ b/discord_bot.log @@ -0,0 +1,1701 @@ +2025-03-05 18:02:35,514 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 18:02:36,622 - discord.client - INFO - logging in using static token +2025-03-05 18:02:37,536 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 4a4ffef302069ba65fc319e715fc3cb6). +2025-03-05 18:02:39,604 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 18:02:53,539 - discord_bot - INFO - Added message from arjunj4528 to history: mario kart is so difficult +2025-03-05 18:02:54,061 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:02:54,070 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:03:00,494 - discord_bot - INFO - Added message from arjunj4528 to history: omg yes especially rainbow road +2025-03-05 18:03:01,226 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:03:01,234 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:03:28,049 - discord_bot - INFO - Added message from arjunj4528 to history: wait I always slip on bananas and fall off +2025-03-05 18:03:28,564 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:03:28,570 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:03:59,655 - discord_bot - INFO - Added message from arjunj4528 to history: wait yeah if someone bumps into you and you fall theres no coming back from that +2025-03-05 18:04:00,307 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:04:00,314 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:04:02,766 - agent - INFO - Generating meme concept from history: arjunj4528: mario kart is so difficult +arjunj4528: omg yes especially rainbow road +arjunj4528: wait I always slip on bananas and fall off +arjunj4528: wait yeah if someone bumps into you and you fall t... +2025-03-05 18:04:04,914 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:04:04,921 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A screenshot of Mario Kart's Rainbow Road with a kart that has just slipped on a banana peel and is falling off the track. + +TEXT: "Me trying to keep my life together on Rainbow Road." + +PLACEMENT: Place the text at the bottom of the image, centered. +2025-03-05 18:04:04,922 - agent - INFO - Image Description: A screenshot of Mario Kart's Rainbow Road with a kart that has just slipped on a banana peel and is falling off the track. +2025-03-05 18:04:04,923 - agent - INFO - Meme Text: "Me trying to keep my life together on Rainbow Road." +2025-03-05 18:04:04,924 - agent - INFO - Text Placement: Place the text at the bottom of the image, centered. +2025-03-05 18:04:04,924 - agent - INFO - DALL-E Prompt: Create a meme image with this exact specification: + +1. IMAGE: A screenshot of Mario Kart's Rainbow Road with a kart that has just slipped on a banana peel and is falling off the track. +2. TEXT: ""Me t... +2025-03-05 18:04:16,588 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:04:38,405 - discord_bot - INFO - Added message from arjunj4528 to history: shit I can't seem to remember how to play super smash bros +2025-03-05 18:04:38,916 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:04:38,922 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:04:57,343 - discord_bot - INFO - Added message from arjunj4528 to history: Its also so different on the pc smh +2025-03-05 18:04:57,789 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:04:57,797 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:05:06,661 - discord_bot - INFO - Added message from arjunj4528 to history: god damn it this is impossible +2025-03-05 18:05:07,174 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:05:07,181 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:05:16,892 - discord_bot - INFO - Added message from arjunj4528 to history: bruh I can't do it +2025-03-05 18:05:17,413 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:05:17,418 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:05:18,950 - agent - INFO - Generating meme concept from history: arjunj4528: wait yeah if someone bumps into you and you fall theres no coming back from that +arjunj4528: shit I can't seem to remember how to play super smash bros +arjunj4528: Its also so different on... +2025-03-05 18:05:20,794 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:05:20,800 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A confused Mario standing in a messy room filled with smashed bros merchandise and a PC with Super Smash Bros displayed on the screen. +TEXT: "When you can't figure out if you're playing the game or the game is playing you." +PLACEMENT: Across the bottom of the image. +2025-03-05 18:05:20,802 - agent - INFO - Image Description: A confused Mario standing in a messy room filled with smashed bros merchandise and a PC with Super Smash Bros displayed on the screen. +2025-03-05 18:05:20,803 - agent - INFO - Meme Text: "When you can't figure out if you're playing the game or the game is playing you." +2025-03-05 18:05:20,804 - agent - INFO - Text Placement: Across the bottom of the image. +2025-03-05 18:05:20,805 - agent - INFO - DALL-E Prompt: Create a meme image with this exact specification: + +1. IMAGE: A confused Mario standing in a messy room filled with smashed bros merchandise and a PC with Super Smash Bros displayed on the screen. +2. ... +2025-03-05 18:05:32,450 - discord.gateway - WARNING - Shard ID None heartbeat blocked for more than 10 seconds. +Loop thread traceback (most recent call last): + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 181, in + bot.run(token) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 906, in run + asyncio.run(runner()) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\runners.py", line 195, in run + return runner.run(main) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\runners.py", line 118, in run + return self._loop.run_until_complete(task) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 712, in run_until_complete + self.run_forever() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 683, in run_forever + self._run_once() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 2040, in _run_once + handle._run() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\events.py", line 89, in _run + self._context.run(self._callback, *self._args) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 481, in _run_event + await coro(*args, **kwargs) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 59, in on_message + await bot.process_commands(message) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\bot.py", line 1408, in process_commands + await self.invoke(ctx) # type: ignore + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\bot.py", line 1366, in invoke + await ctx.command.invoke(ctx) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\core.py", line 1029, in invoke + await injected(*ctx.args, **ctx.kwargs) # type: ignore + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\core.py", line 235, in wrapped + ret = await coro(*args, **kwargs) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 94, in generate_meme + image_url, image_text = await agent_openai.generate_meme_from_concept(meme_concept) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\agent.py", line 194, in generate_meme_from_concept + image_response = self.client.images.generate( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\resources\images.py", line 264, in generate + return self._post( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 1296, in post + return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 973, in request + return self._request( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 1009, in _request + response = self._client.send( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 914, in send + response = self._send_handling_auth( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 942, in _send_handling_auth + response = self._send_handling_redirects( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 979, in _send_handling_redirects + response = self._send_single_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 1014, in _send_single_request + response = transport.handle_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_transports\default.py", line 250, in handle_request + resp = self._pool.handle_request(req) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\connection_pool.py", line 236, in handle_request + response = connection.handle_request( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\connection.py", line 103, in handle_request + return self._connection.handle_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 106, in handle_request + ) = self._receive_response_headers(**kwargs) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 177, in _receive_response_headers + event = self._receive_event(timeout=timeout) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 217, in _receive_event + data = self._network_stream.read( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_backends\sync.py", line 128, in read + return self._sock.recv(max_bytes) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\ssl.py", line 1285, in recv + return self.read(buflen) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\ssl.py", line 1140, in read + return self._sslobj.read(len) + +2025-03-05 18:05:35,644 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:06:48,976 - discord_bot - INFO - Added message from arjunj4528 to history: Did you see that new policy the government just announced? +2025-03-05 18:06:49,473 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:06:49,483 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:06:54,696 - discord_bot - INFO - Added message from arjunj4528 to history: Yeah, it's ridiculous! The president has completely lost it +2025-03-05 18:06:55,208 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:06:55,215 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:06:59,506 - discord_bot - INFO - Added message from arjunj4528 to history: I can't believe people voted for this administration +2025-03-05 18:06:59,919 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:06:59,937 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:07:04,321 - discord_bot - INFO - Added message from arjunj4528 to history: We should make a meme about how bad this president is +2025-03-05 18:07:04,753 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:07:04,760 - discord_bot - INFO - Spontaneous meme decision: True, reason: Decided to generate a meme for this conversation. +2025-03-05 18:07:05,037 - agent - INFO - Generating meme concept from history: arjunj4528: bruh I can't do it +arjunj4528: Did you see that new policy the government just announced? +arjunj4528: Yeah, it's ridiculous! The president has completely lost it +arjunj4528: I can't believ... +2025-03-05 18:07:07,187 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:07:07,194 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A confused dog sitting at a table with a newspaper opened to an article about the new policy. The dog is wearing a small tie as if trying to make sense of the news. + +TEXT: "Even Fido can't believe he voted for this administration." + +PLACEMENT: Text should be placed at the bottom of the image, similar to a classic meme format. +2025-03-05 18:07:07,195 - agent - INFO - Image Description: A confused dog sitting at a table with a newspaper opened to an article about the new policy. The dog is wearing a small tie as if trying to make sense of the news. +2025-03-05 18:07:07,195 - agent - INFO - Meme Text: "Even Fido can't believe he voted for this administration." +2025-03-05 18:07:07,196 - agent - INFO - Text Placement: Text should be placed at the bottom of the image, similar to a classic meme format. +2025-03-05 18:07:07,196 - agent - INFO - DALL-E Prompt: Create a meme image with this exact specification: + +1. IMAGE: A confused dog sitting at a table with a newspaper opened to an article about the new policy. The dog is wearing a small tie as if trying ... +2025-03-05 18:07:19,208 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:07:19,217 - discord_bot - INFO - Added message from arjunj4528 to history: Oh totally, they're the worst leader in history +2025-03-05 18:07:19,702 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:07:19,713 - discord_bot - INFO - Spontaneous meme decision: True, reason: Decided to generate a meme for this conversation. +2025-03-05 18:07:19,987 - agent - INFO - Generating meme concept from history: arjunj4528: Did you see that new policy the government just announced? +arjunj4528: Yeah, it's ridiculous! The president has completely lost it +arjunj4528: I can't believe people voted for this adminis... +2025-03-05 18:07:20,220 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" +2025-03-05 18:07:20,222 - agent - ERROR - Error in generate_meme_concept_from_chat_history: API error occurred: Status 429 +{"message":"Requests rate limit exceeded"} +2025-03-05 18:07:20,222 - discord_bot - ERROR - Error generating spontaneous meme: Failed to generate meme concept: API error occurred: Status 429 +{"message":"Requests rate limit exceeded"} +2025-03-05 18:07:35,859 - agent - INFO - Generating meme concept from history: arjunj4528: Did you see that new policy the government just announced? +arjunj4528: Yeah, it's ridiculous! The president has completely lost it +arjunj4528: I can't believe people voted for this adminis... +2025-03-05 18:07:38,927 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:07:38,934 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A confused dog sitting at a table with a newspaper opened to a political section, with a coffee mug nearby. +TEXT: "Trying to understand the new government policy be like..." +PLACEMENT: Text should appear at the top of the image. +2025-03-05 18:07:38,936 - agent - INFO - Image Description: A confused dog sitting at a table with a newspaper opened to a political section, with a coffee mug nearby. +2025-03-05 18:07:38,937 - agent - INFO - Meme Text: "Trying to understand the new government policy be like..." +2025-03-05 18:07:38,938 - agent - INFO - Text Placement: Text should appear at the top of the image. +2025-03-05 18:07:38,941 - agent - INFO - DALL-E Prompt: Create a meme image with this exact specification: + +1. IMAGE: A confused dog sitting at a table with a newspaper opened to a political section, with a coffee mug nearby. +2. TEXT: ""Trying to understan... +2025-03-05 18:07:49,410 - discord.gateway - WARNING - Shard ID None heartbeat blocked for more than 10 seconds. +Loop thread traceback (most recent call last): + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 181, in + bot.run(token) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 906, in run + asyncio.run(runner()) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\runners.py", line 195, in run + return runner.run(main) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\runners.py", line 118, in run + return self._loop.run_until_complete(task) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 712, in run_until_complete + self.run_forever() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 683, in run_forever + self._run_once() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 2040, in _run_once + handle._run() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\events.py", line 89, in _run + self._context.run(self._callback, *self._args) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 481, in _run_event + await coro(*args, **kwargs) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 59, in on_message + await bot.process_commands(message) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\bot.py", line 1408, in process_commands + await self.invoke(ctx) # type: ignore + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\bot.py", line 1366, in invoke + await ctx.command.invoke(ctx) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\core.py", line 1029, in invoke + await injected(*ctx.args, **ctx.kwargs) # type: ignore + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\core.py", line 235, in wrapped + ret = await coro(*args, **kwargs) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 94, in generate_meme + image_url, image_text = await agent_openai.generate_meme_from_concept(meme_concept) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\agent.py", line 194, in generate_meme_from_concept + image_response = self.client.images.generate( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\resources\images.py", line 264, in generate + return self._post( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 1296, in post + return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 973, in request + return self._request( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 1009, in _request + response = self._client.send( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 914, in send + response = self._send_handling_auth( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 942, in _send_handling_auth + response = self._send_handling_redirects( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 979, in _send_handling_redirects + response = self._send_single_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 1014, in _send_single_request + response = transport.handle_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_transports\default.py", line 250, in handle_request + resp = self._pool.handle_request(req) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\connection_pool.py", line 236, in handle_request + response = connection.handle_request( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\connection.py", line 103, in handle_request + return self._connection.handle_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 106, in handle_request + ) = self._receive_response_headers(**kwargs) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 177, in _receive_response_headers + event = self._receive_event(timeout=timeout) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 217, in _receive_event + data = self._network_stream.read( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_backends\sync.py", line 128, in read + return self._sock.recv(max_bytes) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\ssl.py", line 1285, in recv + return self.read(buflen) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\ssl.py", line 1140, in read + return self._sslobj.read(len) + +2025-03-05 18:07:51,602 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:08:06,067 - discord_bot - INFO - Added message from arjunj4528 to history: bruh indians are hella smelly +2025-03-05 18:08:06,684 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:08:06,690 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:08:10,745 - discord_bot - INFO - Added message from arjunj4528 to history: why do they smell like curry +2025-03-05 18:08:11,187 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:08:11,194 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:08:30,233 - discord_bot - INFO - Added message from arjunj4528 to history: curry smells good though? +2025-03-05 18:08:30,848 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:08:30,853 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:08:39,040 - discord_bot - INFO - Added message from arjunj4528 to history: yeah but INdians be just IT people +2025-03-05 18:08:39,552 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:08:39,556 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:08:41,194 - agent - INFO - Generating meme concept from history: arjunj4528: Oh totally, they're the worst leader in history +arjunj4528: bruh indians are hella smelly +arjunj4528: why do they smell like curry +arjunj4528: curry smells good though? +arjunj4528: yeah bu... +2025-03-05 18:08:42,727 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:08:42,733 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A confused person holding a plate of curry standing next to a smiling person wearing a shirt that says "IT Support". +TEXT: "So, do I smell good or do I just fix your computer?" +PLACEMENT: Across the bottom of the image. +2025-03-05 18:08:42,734 - agent - INFO - Image Description: A confused person holding a plate of curry standing next to a smiling person wearing a shirt that says "IT Support". +2025-03-05 18:08:42,735 - agent - INFO - Meme Text: "So, do I smell good or do I just fix your computer?" +2025-03-05 18:08:42,735 - agent - INFO - Text Placement: Across the bottom of the image. +2025-03-05 18:08:42,736 - agent - INFO - DALL-E Prompt: Create a meme image with this exact specification: + +1. IMAGE: A confused person holding a plate of curry standing next to a smiling person wearing a shirt that says "IT Support". +2. TEXT: ""So, do I s... +2025-03-05 18:08:55,015 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:09:39,151 - discord_bot - INFO - Added message from arjunj4528 to history: yo I can't play mario kart its to hard +2025-03-05 18:09:39,768 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:09:39,776 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:09:41,731 - agent - INFO - Generating meme concept from history: arjunj4528: bruh indians are hella smelly +arjunj4528: why do they smell like curry +arjunj4528: curry smells good though? +arjunj4528: yeah but INdians be just IT people +arjunj4528: yo I can't play mari... +2025-03-05 18:09:43,350 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:09:43,357 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A confused Mario holding a steering wheel, looking at a map that is actually a complex computer code. +TEXT: "When you think you're playing Mario Kart but it's actually an Indian IT job interview." +PLACEMENT: Text should be placed at the bottom of the image. +2025-03-05 18:09:43,359 - agent - INFO - Image Description: A confused Mario holding a steering wheel, looking at a map that is actually a complex computer code. +2025-03-05 18:09:43,359 - agent - INFO - Meme Text: "When you think you're playing Mario Kart but it's actually an Indian IT job interview." +2025-03-05 18:09:43,360 - agent - INFO - Text Placement: Text should be placed at the bottom of the image. +2025-03-05 18:09:43,361 - agent - INFO - DALL-E Prompt: Create a meme image with this exact specification: + +1. IMAGE: A confused Mario holding a steering wheel, looking at a map that is actually a complex computer code. +2. TEXT: ""When you think you're pla... +2025-03-05 18:09:48,470 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 400 Bad Request" +2025-03-05 18:09:48,475 - agent - ERROR - Error in generate_meme_from_concept: Error code: 400 - {'error': {'code': 'content_policy_violation', 'message': 'Your request was rejected as a result of our safety system. Your prompt may contain text that is not allowed by our safety system.', 'param': None, 'type': 'invalid_request_error'}} +2025-03-05 18:09:48,477 - agent - WARNING - Content policy violation in meme generation: IMAGE DESCRIPTION: A confused Mario holding a steering wheel, looking at a map that is actually a complex computer code. +TEXT: "When you think you're playing Mario Kart but it's actually an Indian IT job interview." +PLACEMENT: Text should be placed at the bottom of the image. +2025-03-05 18:09:48,479 - discord_bot - WARNING - Content policy violation during meme generation: Error code: 400 - {'error': {'code': 'content_policy_violation', 'message': 'Your request was rejected as a result of our safety system. Your prompt may contain text that is not allowed by our safety system.', 'param': None, 'type': 'invalid_request_error'}} +2025-03-05 18:09:50,008 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:10:53,185 - discord_bot - INFO - Added message from arjunj4528 to history: mario kart is so hard +2025-03-05 18:10:53,699 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:10:53,706 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:10:59,536 - discord_bot - INFO - Added message from arjunj4528 to history: wait yeah mario kart is so hard +2025-03-05 18:11:01,275 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:11:01,279 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:11:03,837 - agent - INFO - Generating meme concept from history: arjunj4528: curry smells good though? +arjunj4528: yeah but INdians be just IT people +arjunj4528: yo I can't play mario kart its to hard +arjunj4528: mario kart is so hard +arjunj4528: wait yeah mario ka... +2025-03-05 18:11:05,680 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:11:05,686 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A frustrated Mario struggling to drive a kart that is shaped like a computer with a screen displaying coding software. + +TEXT: "When you're an Indian IT guy trying to play Mario Kart..." + +PLACEMENT: Text should be placed at the bottom of the image, centered. +2025-03-05 18:11:05,688 - agent - INFO - Image Description: A frustrated Mario struggling to drive a kart that is shaped like a computer with a screen displaying coding software. +2025-03-05 18:11:05,690 - agent - INFO - Meme Text: "When you're an Indian IT guy trying to play Mario Kart..." +2025-03-05 18:11:05,691 - agent - INFO - Text Placement: Text should be placed at the bottom of the image, centered. +2025-03-05 18:11:05,691 - agent - INFO - DALL-E Prompt: Create a meme image with this exact specification: + +1. IMAGE: A frustrated Mario struggling to drive a kart that is shaped like a computer with a screen displaying coding software. +2. TEXT: ""When you... +2025-03-05 18:11:09,570 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 400 Bad Request" +2025-03-05 18:11:09,572 - agent - ERROR - Error in generate_meme_from_concept: Error code: 400 - {'error': {'code': 'content_policy_violation', 'message': 'Your request was rejected as a result of our safety system. Your prompt may contain text that is not allowed by our safety system.', 'param': None, 'type': 'invalid_request_error'}} +2025-03-05 18:11:09,574 - agent - WARNING - Content policy violation in meme generation: IMAGE DESCRIPTION: A frustrated Mario struggling to drive a kart that is shaped like a computer with a screen displaying coding software. + +TEXT: "When you're an Indian IT guy trying to play Mario Kart..." + +PLACEMENT: Text should be placed at the bottom of the image, centered. +2025-03-05 18:11:09,576 - discord_bot - WARNING - Content policy violation during meme generation: Error code: 400 - {'error': {'code': 'content_policy_violation', 'message': 'Your request was rejected as a result of our safety system. Your prompt may contain text that is not allowed by our safety system.', 'param': None, 'type': 'invalid_request_error'}} +2025-03-05 18:11:11,003 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:11:54,318 - discord_bot - INFO - Added message from arjunj4528 to history: do you guys know any tricks in minecraft +2025-03-05 18:11:55,035 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:11:55,040 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:11:58,021 - discord_bot - INFO - Added message from arjunj4528 to history: I'm trying to beat the game +2025-03-05 18:11:58,511 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:11:58,518 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:12:05,421 - discord_bot - INFO - Added message from arjunj4528 to history: any hacks y'all know? +2025-03-05 18:12:05,924 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:12:05,931 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:12:10,293 - discord_bot - INFO - Added message from arjunj4528 to history: please let me know if you know hacks +2025-03-05 18:12:10,805 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:12:10,812 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:12:12,943 - agent - INFO - Generating meme concept from history: arjunj4528: wait yeah mario kart is so hard +arjunj4528: do you guys know any tricks in minecraft +arjunj4528: I'm trying to beat the game +arjunj4528: any hacks y'all know? +arjunj4528: please let me kno... +2025-03-05 18:12:14,699 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:12:14,705 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A screenshot of Mario Kart with Mario holding a Minecraft pickaxe instead of a steering wheel. + +TEXT: "When you realize you've been playing the wrong game for Minecraft hacks." + +PLACEMENT: Text should be placed at the bottom of the image, centered. +2025-03-05 18:12:14,707 - agent - INFO - Image Description: A screenshot of Mario Kart with Mario holding a Minecraft pickaxe instead of a steering wheel. +2025-03-05 18:12:14,707 - agent - INFO - Meme Text: "When you realize you've been playing the wrong game for Minecraft hacks." +2025-03-05 18:12:14,709 - agent - INFO - Text Placement: Text should be placed at the bottom of the image, centered. +2025-03-05 18:12:14,710 - agent - INFO - DALL-E Prompt: Create a meme image with this exact specification: + +1. IMAGE: A screenshot of Mario Kart with Mario holding a Minecraft pickaxe instead of a steering wheel. +2. TEXT: ""When you realize you've been pla... +2025-03-05 18:12:26,905 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:12:49,219 - agent - INFO - Generating meme concept from history: arjunj4528: wait yeah mario kart is so hard +arjunj4528: do you guys know any tricks in minecraft +arjunj4528: I'm trying to beat the game +arjunj4528: any hacks y'all know? +arjunj4528: please let me kno... +2025-03-05 18:12:51,050 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:12:51,065 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A screenshot of Mario Kart with a confused player having crashed into a wall, while other players are racing ahead. A thought bubble is coming out of the confused player's character. +TEXT: "Maybe I should ask if anyone knows any hacks for this game instead..." +PLACEMENT: Inside the thought bubble. +2025-03-05 18:12:51,067 - agent - INFO - Image Description: A screenshot of Mario Kart with a confused player having crashed into a wall, while other players are racing ahead. A thought bubble is coming out of the confused player's character. +2025-03-05 18:12:51,068 - agent - INFO - Meme Text: "Maybe I should ask if anyone knows any hacks for this game instead..." +2025-03-05 18:12:51,069 - agent - INFO - Text Placement: Inside the thought bubble. +2025-03-05 18:12:51,069 - agent - INFO - DALL-E Prompt: Create a meme image with this exact specification: + +1. IMAGE: A screenshot of Mario Kart with a confused player having crashed into a wall, while other players are racing ahead. A thought bubble is co... +2025-03-05 18:13:02,668 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:36:15,512 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 18:36:16,743 - discord.client - INFO - logging in using static token +2025-03-05 18:36:17,539 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 3b2c668d066dfe5500d255aaf9bb0489). +2025-03-05 18:36:19,620 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 18:36:25,952 - discord_bot - INFO - Added message from arjunj4528 to history: mario kart is so hard +2025-03-05 18:36:27,078 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:36:27,083 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:36:36,728 - discord_bot - INFO - Added message from arjunj4528 to history: dude especially on 150cc +2025-03-05 18:36:37,153 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:36:37,159 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:36:38,774 - discord_bot - INFO - Added message from arjunj4528 to history: its so fast +2025-03-05 18:36:39,232 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:36:39,240 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:36:55,716 - discord_bot - INFO - Added message from arjunj4528 to history: sometimes I forget what lap I am on +2025-03-05 18:36:56,125 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:36:56,136 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:36:59,710 - discord_bot - INFO - Added message from arjunj4528 to history: lolll same +2025-03-05 18:37:00,222 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:37:00,233 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:37:01,644 - agent - INFO - Generating meme concept from history: arjunj4528: mario kart is so hard +arjunj4528: dude especially on 150cc +arjunj4528: its so fast +arjunj4528: sometimes I forget what lap I am on +arjunj4528: lolll same... +2025-03-05 18:37:03,536 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:37:03,544 - agent - INFO - Generated meme concept: **IMAGE DESCRIPTION:** A confused Mario standing on the racetrack, looking at the lap counter with a bewildered expression. Behind him, other racers are whizzing by in a blur. + +**CAPTION:** "When you're playing Mario Kart on 150cc and it's going so fast that you forget if you're on lap 2 or 22." +2025-03-05 18:37:03,548 - agent - INFO - Image Description: +2025-03-05 18:37:03,550 - agent - INFO - Meme Text: +2025-03-05 18:37:03,551 - agent - INFO - DALL-E Prompt: Create a meme image given this description: + +I NEED a simple, clean image with NO TEXT whatsoever.... +2025-03-05 18:37:12,306 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:40:19,260 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 18:40:20,465 - discord.client - INFO - logging in using static token +2025-03-05 18:40:21,744 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: fe0318c9283b78f33eb6fb4aee5df3a4). +2025-03-05 18:40:23,795 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 18:40:33,727 - discord_bot - INFO - Added message from arjunj4528 to history: mario kart is so hard +2025-03-05 18:40:34,304 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:40:34,310 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:40:37,897 - discord_bot - INFO - Added message from arjunj4528 to history: dude especially on 150cc +2025-03-05 18:40:38,282 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:40:38,289 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:40:41,407 - discord_bot - INFO - Added message from arjunj4528 to history: its so fast +2025-03-05 18:40:41,817 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:40:41,821 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:40:48,373 - discord_bot - INFO - Added message from arjunj4528 to history: sometimes I forget what lap I am on +2025-03-05 18:40:48,883 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:40:48,887 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:40:50,417 - discord_bot - INFO - Added message from arjunj4528 to history: lolll same +2025-03-05 18:40:50,802 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:40:50,806 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:40:51,445 - discord.ext.commands.bot - ERROR - Ignoring exception in command None +discord.ext.commands.errors.CommandNotFound: Command "geneate" is not found +2025-03-05 18:40:58,938 - agent - INFO - Generating meme concept from history: arjunj4528: mario kart is so hard +arjunj4528: dude especially on 150cc +arjunj4528: its so fast +arjunj4528: sometimes I forget what lap I am on +arjunj4528: lolll same... +2025-03-05 18:41:01,275 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:41:01,283 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A confused Mario holding a steering wheel, with objects like banana peels, red shells, and question mark blocks flying past him at high speed. + +CAPTION: "When you're playing Mario Kart at 150cc and you can't even remember if you're on your first lap or your final lap. #ToadJustLappedYou" +2025-03-05 18:41:01,286 - agent - INFO - Image Description: A confused Mario holding a steering wheel, with objects like banana peels, red shells, and question mark blocks flying past him at high speed. +2025-03-05 18:41:01,288 - agent - INFO - Caption: "When you're playing Mario Kart at 150cc and you can't even remember if you're on your first lap or your final lap. #ToadJustLappedYou" +2025-03-05 18:41:01,291 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A confused Mario holding a steering wheel, with objects like banana peels, red shells, and question mark blocks flying past him at high speed. + +I NEED a si... +2025-03-05 18:41:12,844 - discord.gateway - WARNING - Shard ID None heartbeat blocked for more than 10 seconds. +Loop thread traceback (most recent call last): + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 343, in + bot.run(token) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 906, in run + asyncio.run(runner()) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\runners.py", line 195, in run + return runner.run(main) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\runners.py", line 118, in run + return self._loop.run_until_complete(task) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 712, in run_until_complete + self.run_forever() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 683, in run_forever + self._run_once() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 2040, in _run_once + handle._run() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\events.py", line 89, in _run + self._context.run(self._callback, *self._args) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 481, in _run_event + await coro(*args, **kwargs) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 176, in on_message + await bot.process_commands(message) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\bot.py", line 1408, in process_commands + await self.invoke(ctx) # type: ignore + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\bot.py", line 1366, in invoke + await ctx.command.invoke(ctx) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\core.py", line 1029, in invoke + await injected(*ctx.args, **ctx.kwargs) # type: ignore + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\core.py", line 235, in wrapped + ret = await coro(*args, **kwargs) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 211, in generate_meme + result = await agent_openai.generate_meme_from_concept(meme_concept) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\agent.py", line 178, in generate_meme_from_concept + image_response = self.client.images.generate( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\resources\images.py", line 264, in generate + return self._post( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 1296, in post + return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 973, in request + return self._request( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 1009, in _request + response = self._client.send( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 914, in send + response = self._send_handling_auth( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 942, in _send_handling_auth + response = self._send_handling_redirects( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 979, in _send_handling_redirects + response = self._send_single_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 1014, in _send_single_request + response = transport.handle_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_transports\default.py", line 250, in handle_request + resp = self._pool.handle_request(req) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\connection_pool.py", line 236, in handle_request + response = connection.handle_request( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\connection.py", line 103, in handle_request + return self._connection.handle_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 106, in handle_request + ) = self._receive_response_headers(**kwargs) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 177, in _receive_response_headers + event = self._receive_event(timeout=timeout) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 217, in _receive_event + data = self._network_stream.read( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_backends\sync.py", line 128, in read + return self._sock.recv(max_bytes) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\ssl.py", line 1285, in recv + return self.read(buflen) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\ssl.py", line 1140, in read + return self._sslobj.read(len) + +2025-03-05 18:41:17,535 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:41:17,542 - discord.client - ERROR - Attempting a reconnect in 0.16s +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 704, in connect + await self.ws.poll_event() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\gateway.py", line 627, in poll_event + await self.received_message(msg.data) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\gateway.py", line 532, in received_message + await self.send_as_json(beat) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\gateway.py", line 663, in send_as_json + await self.send(utils._to_json(data)) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\gateway.py", line 659, in send + await self.socket.send_str(data) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\client_ws.py", line 245, in send_str + await self._writer.send_frame( + data.encode("utf-8"), WSMsgType.TEXT, compress=compress + ) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\_websocket\writer.py", line 125, in send_frame + raise ClientConnectionResetError("Cannot write to closing transport") +aiohttp.client_exceptions.ClientConnectionResetError: Cannot write to closing transport +2025-03-05 18:41:18,022 - discord.gateway - INFO - Shard ID None has successfully RESUMED session fe0318c9283b78f33eb6fb4aee5df3a4. +2025-03-05 18:44:29,161 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 18:44:30,548 - discord.client - INFO - logging in using static token +2025-03-05 18:44:31,194 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 2edff8f100a0e2b0277d25098410249f). +2025-03-05 18:44:33,270 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 18:44:40,617 - discord_bot - INFO - Added message from arjunj4528 to history: mario kart is so hard +2025-03-05 18:44:41,129 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:44:41,137 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:44:45,941 - discord_bot - INFO - Added message from arjunj4528 to history: dude especially on 150cc +2025-03-05 18:44:46,349 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:44:46,359 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:44:47,067 - discord_bot - INFO - Added message from arjunj4528 to history: its so fast +2025-03-05 18:44:47,476 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:44:47,483 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:44:56,556 - discord_bot - INFO - Added message from arjunj4528 to history: dang yeah I drift like crazy +2025-03-05 18:44:57,024 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:44:57,029 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:44:59,133 - discord_bot - INFO - Added message from arjunj4528 to history: vroom vroom +2025-03-05 18:44:59,592 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:44:59,595 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:45:00,482 - discord_bot - INFO - Added message from arjunj4528 to history: lolo +2025-03-05 18:45:00,891 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:45:00,898 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:45:04,274 - agent - INFO - Generating meme concept from history: arjunj4528: dude especially on 150cc +arjunj4528: its so fast +arjunj4528: dang yeah I drift like crazy +arjunj4528: vroom vroom +arjunj4528: lolo... +2025-03-05 18:45:06,625 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:45:06,631 - agent - INFO - Generated meme concept: **IMAGE DESCRIPTION:** A confused-looking Mario from the Mario Kart game series, holding a steering wheel, with a speech bubble saying "150cc?!". Around him are scattered banana peels, red shells, and drift marks. + +**CAPTION:** "When you realize arjunj4528's 'vroom vroom' isn't just a catchphrase, but his actual driving strategy. #PrayFor150ccRacers" +2025-03-05 18:45:06,633 - agent - INFO - Image Description: +2025-03-05 18:45:06,634 - agent - INFO - Caption: +2025-03-05 18:45:06,635 - agent - INFO - DALL-E Prompt: Create a meme image given this description: + +I NEED a simple, clean image with NO TEXT whatsoever.... +2025-03-05 18:45:15,905 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:50:43,102 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 18:50:44,230 - discord.client - INFO - logging in using static token +2025-03-05 18:50:45,166 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: a34fe31c55922bdfdf36dd89b05b4855). +2025-03-05 18:50:47,221 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 18:51:03,490 - discord_bot - INFO - Added message from arjunj4528 to history: mario kart is so hard +2025-03-05 18:51:04,008 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:51:04,016 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:51:09,736 - discord_bot - INFO - Added message from arjunj4528 to history: dude especially on 150cc +2025-03-05 18:51:10,252 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:51:10,259 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:51:14,182 - discord_bot - INFO - Added message from arjunj4528 to history: its so fast +2025-03-05 18:51:14,655 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:51:14,662 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:51:17,471 - discord_bot - INFO - Added message from arjunj4528 to history: dang yeah I drift like crazy +2025-03-05 18:51:18,034 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:51:18,046 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:51:20,696 - discord_bot - INFO - Added message from arjunj4528 to history: vroom vroom +2025-03-05 18:51:22,549 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:51:22,554 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:51:22,557 - agent - INFO - Generating meme concept from history: arjunj4528: mario kart is so hard +arjunj4528: dude especially on 150cc +arjunj4528: its so fast +arjunj4528: dang yeah I drift like crazy +arjunj4528: vroom vroom... +2025-03-05 18:51:24,281 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:51:24,290 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A screenshot of Mario Kart with characters frantically racing, and Mario drifting wildly off the track. + +CAPTION: "Me in 150cc thinking 'vroom vroom' but the track is thinking 'nah fam, you're going the wrong way'" +2025-03-05 18:51:24,292 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A screenshot of Mario Kart with characters frantically racing, and Mario drifting wildly off the track. + +CAPTION: "Me in 150cc thinking 'vroom vroom' but the track is thinking 'nah fam, you're going the wrong way'" +2025-03-05 18:51:24,297 - agent - INFO - Image Description: A screenshot of Mario Kart with characters frantically racing, and Mario drifting wildly off the track. +2025-03-05 18:51:24,299 - agent - INFO - Caption: "Me in 150cc thinking 'vroom vroom' but the track is thinking 'nah fam, you're going the wrong way'" +2025-03-05 18:51:24,315 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A screenshot of Mario Kart with characters frantically racing, and Mario drifting wildly off the track. + + I NEED a simple, clean image with NO TEXT w... +2025-03-05 18:51:36,235 - discord.gateway - WARNING - Shard ID None heartbeat blocked for more than 10 seconds. +Loop thread traceback (most recent call last): + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 354, in + bot.run(token) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 906, in run + asyncio.run(runner()) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\runners.py", line 195, in run + return runner.run(main) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\runners.py", line 118, in run + return self._loop.run_until_complete(task) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 712, in run_until_complete + self.run_forever() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 683, in run_forever + self._run_once() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 2040, in _run_once + handle._run() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\events.py", line 89, in _run + self._context.run(self._callback, *self._args) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 481, in _run_event + await coro(*args, **kwargs) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 187, in on_message + await bot.process_commands(message) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\bot.py", line 1408, in process_commands + await self.invoke(ctx) # type: ignore + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\bot.py", line 1366, in invoke + await ctx.command.invoke(ctx) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\core.py", line 1029, in invoke + await injected(*ctx.args, **ctx.kwargs) # type: ignore + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\core.py", line 235, in wrapped + ret = await coro(*args, **kwargs) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 222, in generate_meme + result = await agent_openai.generate_meme_from_concept(meme_concept) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\agent.py", line 204, in generate_meme_from_concept + image_response = self.client.images.generate( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\resources\images.py", line 264, in generate + return self._post( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 1296, in post + return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 973, in request + return self._request( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 1009, in _request + response = self._client.send( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 914, in send + response = self._send_handling_auth( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 942, in _send_handling_auth + response = self._send_handling_redirects( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 979, in _send_handling_redirects + response = self._send_single_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 1014, in _send_single_request + response = transport.handle_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_transports\default.py", line 250, in handle_request + resp = self._pool.handle_request(req) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\connection_pool.py", line 236, in handle_request + response = connection.handle_request( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\connection.py", line 103, in handle_request + return self._connection.handle_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 106, in handle_request + ) = self._receive_response_headers(**kwargs) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 177, in _receive_response_headers + event = self._receive_event(timeout=timeout) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 217, in _receive_event + data = self._network_stream.read( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_backends\sync.py", line 128, in read + return self._sock.recv(max_bytes) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\ssl.py", line 1285, in recv + return self.read(buflen) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\ssl.py", line 1140, in read + return self._sslobj.read(len) + +2025-03-05 18:51:36,539 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 18:53:10,940 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 18:53:12,144 - discord.client - INFO - logging in using static token +2025-03-05 18:53:12,991 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 69e94f5e012ccc3db694d381660ca283). +2025-03-05 18:53:15,040 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 18:53:50,649 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 18:53:52,032 - discord.client - INFO - logging in using static token +2025-03-05 18:53:52,726 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: deec3fedacff2803b4c939cd272800bb). +2025-03-05 18:53:54,784 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 18:53:58,493 - discord_bot - INFO - Added message from arjunj4528 to history: mario kart is so hard +2025-03-05 18:53:58,969 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:53:58,979 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:54:03,206 - discord_bot - INFO - Added message from arjunj4528 to history: dude especially on 150cc +2025-03-05 18:54:04,061 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:54:04,069 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:54:06,558 - discord_bot - INFO - Added message from arjunj4528 to history: its so fast +2025-03-05 18:54:07,036 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:54:07,043 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:54:14,468 - discord_bot - INFO - Added message from arjunj4528 to history: vrooooooooom +2025-03-05 18:54:14,980 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:54:14,990 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:54:21,833 - discord_bot - INFO - Added message from arjunj4528 to history: its like you are lightning mcqueen lmao +2025-03-05 18:54:22,356 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:54:22,365 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 18:54:25,527 - agent - INFO - Generating meme concept from history: arjunj4528: mario kart is so hard +arjunj4528: dude especially on 150cc +arjunj4528: its so fast +arjunj4528: vrooooooooom +arjunj4528: its like you are lightning mcqueen lmao... +2025-03-05 18:54:27,479 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 18:54:27,486 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A screenshot of Mario Kart with characters racing at high speeds, with a superimposed image of Lightning McQueen from the movie "Cars" in the middle of the track, looking surprised. + +CAPTION: When you're playing Mario Kart on 150cc and suddenly realize you're actually Lightning McQueen vrooooooooom +2025-03-05 18:54:27,488 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A screenshot of Mario Kart with characters racing at high speeds, with a superimposed image of Lightning McQueen from the movie "Cars" in the middle of the track, looking surprised. + +CAPTION: When you're playing Mario Kart on 150cc and suddenly realize you're actually Lightning McQueen vrooooooooom +2025-03-05 18:54:27,490 - agent - INFO - Image Description: A screenshot of Mario Kart with characters racing at high speeds, with a superimposed image of Lightning McQueen from the movie "Cars" in the middle of the track, looking surprised. +2025-03-05 18:54:27,494 - agent - INFO - Caption: When you're playing Mario Kart on 150cc and suddenly realize you're actually Lightning McQueen vrooooooooom +2025-03-05 18:54:27,495 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A screenshot of Mario Kart with characters racing at high speeds, with a superimposed image of Lightning McQueen from the movie "Cars" in the middle of the ... +2025-03-05 18:54:41,645 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 19:01:54,294 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 19:01:55,806 - discord.client - INFO - logging in using static token +2025-03-05 19:01:56,736 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 50c0d3373470cc42fb86f4b01e5bbc09). +2025-03-05 19:01:58,858 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 19:01:59,318 - discord_bot - INFO - Added message from arjunj4528 to history: bruh lebron is my goat +2025-03-05 19:01:59,879 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 19:01:59,888 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 19:02:16,571 - discord_bot - INFO - Added message from arjunj4528 to history: If I had a kid, I will name him LePookie +2025-03-05 19:02:17,039 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 19:02:17,046 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 19:02:37,152 - discord_bot - INFO - Added message from arjunj4528 to history: If I met Lebron, I think I would explode +2025-03-05 19:02:37,688 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 19:02:37,700 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 19:02:46,167 - discord_bot - INFO - Added message from arjunj4528 to history: #lepookie for life +2025-03-05 19:02:46,677 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 19:02:46,684 - discord_bot - INFO - Spontaneous meme decision: True, reason: Decided to generate a meme for this conversation. +2025-03-05 19:02:47,087 - agent - INFO - Generating meme concept from history: arjunj4528: bruh lebron is my goat +arjunj4528: If I had a kid, I will name him LePookie +arjunj4528: If I met Lebron, I think I would explode +arjunj4528: #lepookie for life... +2025-03-05 19:02:48,827 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 19:02:48,837 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A person holding a baby with a confused expression, while a photoshopped image of LeBron James is looking at them from above with a smirk. + +CAPTION: When you name your kid LePookie and LeBron shows up to say hello but your kid does not understand your explosion of joy. +2025-03-05 19:02:48,839 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A person holding a baby with a confused expression, while a photoshopped image of LeBron James is looking at them from above with a smirk. + +CAPTION: When you name your kid LePookie and LeBron shows up to say hello but your kid does not understand your explosion of joy. +2025-03-05 19:02:48,841 - agent - INFO - Image Description: A person holding a baby with a confused expression, while a photoshopped image of LeBron James is looking at them from above with a smirk. +2025-03-05 19:02:48,844 - agent - INFO - Caption: When you name your kid LePookie and LeBron shows up to say hello but your kid does not understand your explosion of joy. +2025-03-05 19:02:48,847 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A person holding a baby with a confused expression, while a photoshopped image of LeBron James is looking at them from above with a smirk. + + I NEED a... +2025-03-05 19:03:06,340 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 20:12:00,840 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 20:12:01,986 - discord.client - INFO - logging in using static token +2025-03-05 20:12:02,880 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 450d9756a50dcfc60552448701a4679b). +2025-03-05 20:12:04,938 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 20:12:08,099 - discord_bot - INFO - Added message from arjunj4528 to history: just took a 4 hour nap instead of going to class +2025-03-05 20:12:08,610 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:12:08,617 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:12:11,066 - discord_bot - INFO - Added message from arjunj4528 to history: damn thats crazy bro +2025-03-05 20:12:11,476 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:12:11,488 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:12:15,173 - discord_bot - INFO - Added message from arjunj4528 to history: this guy catching hella zzzzs +2025-03-05 20:12:15,651 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:12:15,657 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:12:20,077 - discord_bot - INFO - Added message from arjunj4528 to history: caught a one way ticket to sleep town +2025-03-05 20:12:20,575 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:12:20,582 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:12:21,307 - discord_bot - INFO - Added message from arjunj4528 to history: choo choo +2025-03-05 20:12:21,741 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:12:21,748 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:12:24,306 - agent - INFO - Generating meme concept from history: arjunj4528: just took a 4 hour nap instead of going to class +arjunj4528: damn thats crazy bro +arjunj4528: this guy catching hella zzzzs +arjunj4528: caught a one way ticket to sleep town +arjunj4528: ch... +2025-03-05 20:12:26,142 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:12:26,146 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A train with a sleepy face speeding through a dreamlike landscape filled with fluffy pillows and blankets instead of trees and buildings. + +CAPTION: When Arjun says he is going to class but instead boards the express train to Sleep Town. All aboard! Next stop: Snoozeville. Choo choo! +2025-03-05 20:12:26,147 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A train with a sleepy face speeding through a dreamlike landscape filled with fluffy pillows and blankets instead of trees and buildings. + +CAPTION: When Arjun says he is going to class but instead boards the express train to Sleep Town. All aboard! Next stop: Snoozeville. Choo choo! +2025-03-05 20:12:26,149 - agent - INFO - Image Description: A train with a sleepy face speeding through a dreamlike landscape filled with fluffy pillows and blankets instead of trees and buildings. +2025-03-05 20:12:26,150 - agent - INFO - Caption: When Arjun says he is going to class but instead boards the express train to Sleep Town. All aboard! Next stop: Snoozeville. Choo choo! +2025-03-05 20:12:26,150 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A train with a sleepy face speeding through a dreamlike landscape filled with fluffy pillows and blankets instead of trees and buildings. + + I NEED a ... +2025-03-05 20:12:38,282 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 20:20:02,599 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 20:20:03,880 - discord.client - INFO - logging in using static token +2025-03-05 20:20:04,710 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: f3871e128eb92fa91e6f275e1b7d38d5). +2025-03-05 20:20:06,773 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 20:20:11,308 - discord_bot - INFO - Added message from arjunj4528 to history: just took a 4 hour nap instead of going to class +2025-03-05 20:20:11,803 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:20:11,809 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:20:14,997 - discord_bot - INFO - Added message from arjunj4528 to history: damn thats crazy bro +2025-03-05 20:20:15,393 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:20:15,400 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:20:18,423 - discord_bot - INFO - Added message from arjunj4528 to history: this guy catching hella zzzs +2025-03-05 20:20:18,864 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:20:18,872 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:20:21,793 - discord_bot - INFO - Added message from arjunj4528 to history: caught a one way ticket to sleepy town +2025-03-05 20:20:22,225 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:20:22,232 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:20:34,913 - discord_bot - INFO - Added message from arjunj4528 to history: good night homie +2025-03-05 20:20:35,414 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:20:35,432 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:20:37,438 - agent - INFO - Generating meme concept from history: arjunj4528: just took a 4 hour nap instead of going to class +arjunj4528: damn thats crazy bro +arjunj4528: this guy catching hella zzzs +arjunj4528: caught a one way ticket to sleepy town +arjunj4528: go... +2025-03-05 20:20:40,171 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:20:40,178 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A student in a lecture hall, fast asleep, with a literal "one way ticket to sleepy town" stuck to their forehead. The professor at the front of the class is a bear in a graduation cap and gown, looking disappointed and holding a sign that says "Nap Champion - Not a Real Degree". Other students in the class are taking selfies with the sleeping student, while a squirrel sits on the desk next to him, also sleeping, with a tiny pillow and blanket. + +CAPTION: Congratulations! You have earned a PhD in catching hella zzzs. +2025-03-05 20:20:40,181 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A student in a lecture hall, fast asleep, with a literal "one way ticket to sleepy town" stuck to their forehead. The professor at the front of the class is a bear in a graduation cap and gown, looking disappointed and holding a sign that says "Nap Champion - Not a Real Degree". Other students in the class are taking selfies with the sleeping student, while a squirrel sits on the desk next to him, also sleeping, with a tiny pillow and blanket. + +CAPTION: Congratulations! You have earned a PhD in catching hella zzzs. +2025-03-05 20:20:40,185 - agent - INFO - Image Description: A student in a lecture hall, fast asleep, with a literal "one way ticket to sleepy town" stuck to their forehead. The professor at the front of the class is a bear in a graduation cap and gown, looking disappointed and holding a sign that says "Nap Champion - Not a Real Degree". Other students in the class are taking selfies with the sleeping student, while a squirrel sits on the desk next to him, also sleeping, with a tiny pillow and blanket. +2025-03-05 20:20:40,186 - agent - INFO - Caption: Congratulations! You have earned a PhD in catching hella zzzs. +2025-03-05 20:20:40,186 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A student in a lecture hall, fast asleep, with a literal "one way ticket to sleepy town" stuck to their forehead. The professor at the front of the class is... +2025-03-05 20:20:55,130 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 20:23:51,390 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 20:23:52,273 - discord.client - INFO - logging in using static token +2025-03-05 20:23:53,297 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 2e3bdc39d49bd00e7e9390437d524d07). +2025-03-05 20:23:55,386 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 20:24:00,166 - discord_bot - INFO - Added message from arjunj4528 to history: why is arjun giving me hella side eye in stream +2025-03-05 20:24:00,587 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:24:00,593 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:24:07,432 - discord_bot - INFO - Added message from arjunj4528 to history: he be like that dog that gives side eye lmao +2025-03-05 20:24:07,905 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:24:07,911 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:24:17,934 - discord_bot - INFO - Added message from arjunj4528 to history: bruh yeah he be like "huh" what you doing +2025-03-05 20:24:18,445 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:24:18,449 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:24:23,249 - agent - INFO - Generating meme concept from history: arjunj4528: why is arjun giving me hella side eye in stream +arjunj4528: he be like that dog that gives side eye lmao +arjunj4528: bruh yeah he be like "huh" what you doing... +2025-03-05 20:24:25,338 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:24:25,354 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A giant, cybernetic dog with glowing red eyes and a monocle giving extreme side eye to a tiny, dancing Arjun on a pogo stick, while they both float in outer space surrounded by slices of pizza playing tiny violins. + +CAPTION: SIDE EYE SYMPHONY IN SPACE, BUT PIZZA DOES NOT APPROVE OF POGO ARJUN. +2025-03-05 20:24:25,360 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A giant, cybernetic dog with glowing red eyes and a monocle giving extreme side eye to a tiny, dancing Arjun on a pogo stick, while they both float in outer space surrounded by slices of pizza playing tiny violins. + +CAPTION: SIDE EYE SYMPHONY IN SPACE, BUT PIZZA DOES NOT APPROVE OF POGO ARJUN. +2025-03-05 20:24:25,367 - agent - INFO - Image Description: A giant, cybernetic dog with glowing red eyes and a monocle giving extreme side eye to a tiny, dancing Arjun on a pogo stick, while they both float in outer space surrounded by slices of pizza playing tiny violins. +2025-03-05 20:24:25,369 - agent - INFO - Caption: SIDE EYE SYMPHONY IN SPACE, BUT PIZZA DOES NOT APPROVE OF POGO ARJUN. +2025-03-05 20:24:25,370 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A giant, cybernetic dog with glowing red eyes and a monocle giving extreme side eye to a tiny, dancing Arjun on a pogo stick, while they both float in outer... +2025-03-05 20:24:40,495 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 20:27:19,307 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 20:27:20,276 - discord.client - INFO - logging in using static token +2025-03-05 20:27:21,250 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: bf8e5e69452703cd7477ae3a3ce59108). +2025-03-05 20:27:23,441 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 20:27:28,469 - discord_bot - INFO - Added message from arjunj4528 to history: dude I have to go to dance practice like now +2025-03-05 20:27:28,938 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:27:28,945 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:27:36,084 - discord_bot - INFO - Added message from arjunj4528 to history: wait lets just finish this game +2025-03-05 20:27:36,596 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:27:36,602 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:28:01,307 - discord_bot - INFO - Added message from arjunj4528 to history: whats more important gaming or dancing +2025-03-05 20:28:01,701 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:28:01,708 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:28:18,450 - discord_bot - INFO - Added message from arjunj4528 to history: bruh cmon its not like that its just that I have practice at 9 and cant be late +2025-03-05 20:28:18,902 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:28:18,906 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:28:20,086 - agent - INFO - Generating meme concept from history: arjunj4528: dude I have to go to dance practice like now +arjunj4528: wait lets just finish this game +arjunj4528: whats more important gaming or dancing +arjunj4528: bruh cmon its not like that its just... +2025-03-05 20:28:21,138 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:28:21,146 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A confused person trying to choose between a game controller and ballet shoes. + +CAPTION: When it is time for dance practice but your heart is in the game. +2025-03-05 20:28:21,148 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A confused person trying to choose between a game controller and ballet shoes. + +CAPTION: When it is time for dance practice but your heart is in the game. +2025-03-05 20:28:21,151 - agent - INFO - Image Description: A confused person trying to choose between a game controller and ballet shoes. +2025-03-05 20:28:21,152 - agent - INFO - Caption: When it is time for dance practice but your heart is in the game. +2025-03-05 20:28:21,155 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A confused person trying to choose between a game controller and ballet shoes. + + I NEED a simple, clean image with NO TEXT whatsoever.... +2025-03-05 20:28:37,887 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 20:30:29,736 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 20:30:30,670 - discord.client - INFO - logging in using static token +2025-03-05 20:30:31,493 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 03ee3e921e2167e6c77e45e23e3f1e56). +2025-03-05 20:30:33,554 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 20:30:51,608 - discord_bot - INFO - Added message from arjunj4528 to history: Anyone else staying up way too late to finish this coding project? +2025-03-05 20:30:52,074 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:30:52,080 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:30:57,733 - discord_bot - INFO - Added message from arjunj4528 to history: Yeah, I'm on my fifth cup of coffee already +2025-03-05 20:30:58,584 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:30:58,591 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:31:05,010 - discord_bot - INFO - Added message from arjunj4528 to history: My code has more bugs than features at this point +2025-03-05 20:31:05,472 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:31:05,482 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:31:11,019 - discord_bot - INFO - Added message from arjunj4528 to history: Sleep is for the weak. Debugging is for the weekend. +2025-03-05 20:31:11,541 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:31:11,549 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:31:12,788 - agent - INFO - Generating meme concept from history: arjunj4528: Anyone else staying up way too late to finish this coding project? +arjunj4528: Yeah, I'm on my fifth cup of coffee already +arjunj4528: My code has more bugs than features at this point +arj... +2025-03-05 20:31:13,019 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" +2025-03-05 20:31:13,022 - agent - ERROR - Error in generating meme concept: API error occurred: Status 429 +{"message":"Requests rate limit exceeded"} +2025-03-05 20:31:13,024 - discord_bot - ERROR - Error generating meme: Failed to generate meme concept: API error occurred: Status 429 +{"message":"Requests rate limit exceeded"} +2025-03-05 20:31:17,973 - agent - INFO - Generating meme concept from history: arjunj4528: Anyone else staying up way too late to finish this coding project? +arjunj4528: Yeah, I'm on my fifth cup of coffee already +arjunj4528: My code has more bugs than features at this point +arj... +2025-03-05 20:31:19,874 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:31:19,881 - agent - INFO - Generated meme concept: **IMAGE DESCRIPTION:** A zombie-like programmer sitting in front of a computer filled with lines of code, surrounded by empty coffee cups. The twist: the monitor displays a giant bug squashing a tiny feature, like a monster crushing a city. + +**CAPTION:** When your coding project has more bugs than a entomology conference. Sleep is for the weak. Debugging is for the eternal weekend. +2025-03-05 20:31:19,884 - agent - INFO - Raw meme concept: **IMAGE DESCRIPTION:** A zombie-like programmer sitting in front of a computer filled with lines of code, surrounded by empty coffee cups. The twist: the monitor displays a giant bug squashing a tiny feature, like a monster crushing a city. + +**CAPTION:** When your coding project has more bugs than a entomology conference. Sleep is for the weak. Debugging is for the eternal weekend. +2025-03-05 20:31:19,887 - agent - INFO - Image Description: A zombie-like programmer sitting in front of a computer filled with lines of code, surrounded by empty coffee cups. The twist: the monitor displays a giant bug squashing a tiny feature, like a monster crushing a city. +2025-03-05 20:31:19,888 - agent - INFO - Caption: When your coding project has more bugs than a entomology conference. Sleep is for the weak. Debugging is for the eternal weekend. +2025-03-05 20:31:19,889 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A zombie-like programmer sitting in front of a computer filled with lines of code, surrounded by empty coffee cups. The twist: the monitor displays a giant ... +2025-03-05 20:31:32,903 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 20:36:47,150 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 20:36:47,988 - discord.client - INFO - logging in using static token +2025-03-05 20:36:48,702 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: b29d89fc9a376ad1296e3be5f842756a). +2025-03-05 20:36:50,780 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 20:36:53,959 - discord_bot - INFO - Added message from arjunj4528 to history: dude im so hungry +2025-03-05 20:36:54,943 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:36:54,948 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:37:04,042 - discord_bot - INFO - Added message from arjunj4528 to history: just go into your fridge and grab something +2025-03-05 20:37:04,655 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:37:04,662 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:37:23,233 - discord_bot - INFO - Added message from arjunj4528 to history: oh really? i forgot I had a fridge dude, thanks for reminding me +2025-03-05 20:37:23,703 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:37:23,709 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:37:32,453 - discord_bot - INFO - Added message from arjunj4528 to history: lmao bro is triggered +2025-03-05 20:37:32,905 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:37:32,913 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:37:35,111 - agent - INFO - Generating meme concept from history: arjunj4528: dude im so hungry +arjunj4528: just go into your fridge and grab something +arjunj4528: oh really? i forgot I had a fridge dude, thanks for reminding me +arjunj4528: lmao bro is triggered... +2025-03-05 20:37:36,787 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:37:36,793 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A confused-looking person standing in front of an open refrigerator full of food, scratching their head. The fridge has an angry face doodled on it with the words "SERIOUSLY?!" written above. + +CAPTION: When you forget you have a fridge until your hunger reminds you. +2025-03-05 20:37:36,795 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A confused-looking person standing in front of an open refrigerator full of food, scratching their head. The fridge has an angry face doodled on it with the words "SERIOUSLY?!" written above. + +CAPTION: When you forget you have a fridge until your hunger reminds you. +2025-03-05 20:37:36,798 - agent - INFO - Image Description: A confused-looking person standing in front of an open refrigerator full of food, scratching their head. The fridge has an angry face doodled on it with the words "SERIOUSLY?!" written above. +2025-03-05 20:37:36,799 - agent - INFO - Caption: When you forget you have a fridge until your hunger reminds you. +2025-03-05 20:37:36,800 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A confused-looking person standing in front of an open refrigerator full of food, scratching their head. The fridge has an angry face doodled on it with the... +2025-03-05 20:37:47,752 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 20:41:30,168 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 20:41:31,544 - discord.client - INFO - logging in using static token +2025-03-05 20:41:32,460 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 02c67cbfbfeccb28298d571df9d45de1). +2025-03-05 20:41:34,558 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 20:41:42,418 - discord_bot - INFO - Added message from arjunj4528 to history: dude I'm schlumped +2025-03-05 20:41:42,887 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:41:42,892 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:41:46,628 - discord_bot - INFO - Added message from arjunj4528 to history: yeah im so tired as well +2025-03-05 20:41:47,032 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:41:47,040 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:41:49,903 - discord_bot - INFO - Added message from arjunj4528 to history: long day dude +2025-03-05 20:41:50,630 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:41:50,635 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:41:58,247 - discord_bot - INFO - Added message from arjunj4528 to history: but at least we get to end with some gaming lol +2025-03-05 20:41:58,677 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:41:58,683 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:42:00,692 - discord_bot - INFO - Added message from arjunj4528 to history: true true +2025-03-05 20:42:01,112 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:42:01,119 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:42:02,437 - agent - INFO - Generating meme concept from history: arjunj4528: dude I'm schlumped +arjunj4528: yeah im so tired as well +arjunj4528: long day dude +arjunj4528: but at least we get to end with some gaming lol +arjunj4528: true true... +2025-03-05 20:42:04,430 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:42:04,435 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A person so exhausted that they are using a game controller as a pillow, snoring, with a speech bubble saying "gg" (good game), while a chaotic video game scene plays on the TV in the background, implying they fell asleep right after the game started. + +CAPTION: SO TIRED HE CAN'T EVEN PAUSE THE GAME +2025-03-05 20:42:04,436 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A person so exhausted that they are using a game controller as a pillow, snoring, with a speech bubble saying "gg" (good game), while a chaotic video game scene plays on the TV in the background, implying they fell asleep right after the game started. + +CAPTION: SO TIRED HE CAN'T EVEN PAUSE THE GAME +2025-03-05 20:42:04,437 - agent - INFO - Image Description: A person so exhausted that they are using a game controller as a pillow, snoring, with a speech bubble saying "gg" (good game), while a chaotic video game scene plays on the TV in the background, implying they fell asleep right after the game started. +2025-03-05 20:42:04,438 - agent - INFO - Caption: SO TIRED HE CAN'T EVEN PAUSE THE GAME +2025-03-05 20:42:04,439 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A person so exhausted that they are using a game controller as a pillow, snoring, with a speech bubble saying "gg" (good game), while a chaotic video game s... +2025-03-05 20:42:23,487 - discord.gateway - WARNING - Shard ID None heartbeat blocked for more than 10 seconds. +Loop thread traceback (most recent call last): + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 328, in + bot.run(token) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 906, in run + asyncio.run(runner()) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\runners.py", line 195, in run + return runner.run(main) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\runners.py", line 118, in run + return self._loop.run_until_complete(task) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 712, in run_until_complete + self.run_forever() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 683, in run_forever + self._run_once() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 2040, in _run_once + handle._run() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\events.py", line 89, in _run + self._context.run(self._callback, *self._args) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 481, in _run_event + await coro(*args, **kwargs) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 162, in on_message + await bot.process_commands(message) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\bot.py", line 1408, in process_commands + await self.invoke(ctx) # type: ignore + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\bot.py", line 1366, in invoke + await ctx.command.invoke(ctx) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\core.py", line 1029, in invoke + await injected(*ctx.args, **ctx.kwargs) # type: ignore + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\ext\commands\core.py", line 235, in wrapped + ret = await coro(*args, **kwargs) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\bot.py", line 197, in generate_meme + result = await agent_openai.generate_meme_from_concept(meme_concept) + File "C:\Users\arjun\OneDrive\Documents\Stanford\Senior Year\Winter Quarter\CS153\darlucas-ai-agent\agent.py", line 220, in generate_meme_from_concept + image_response = self.client.images.generate( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\resources\images.py", line 264, in generate + return self._post( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 1296, in post + return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 973, in request + return self._request( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\openai\_base_client.py", line 1009, in _request + response = self._client.send( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 914, in send + response = self._send_handling_auth( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 942, in _send_handling_auth + response = self._send_handling_redirects( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 979, in _send_handling_redirects + response = self._send_single_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_client.py", line 1014, in _send_single_request + response = transport.handle_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpx\_transports\default.py", line 250, in handle_request + resp = self._pool.handle_request(req) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\connection_pool.py", line 236, in handle_request + response = connection.handle_request( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\connection.py", line 103, in handle_request + return self._connection.handle_request(request) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 106, in handle_request + ) = self._receive_response_headers(**kwargs) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 177, in _receive_response_headers + event = self._receive_event(timeout=timeout) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_sync\http11.py", line 217, in _receive_event + data = self._network_stream.read( + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\httpcore\_backends\sync.py", line 128, in read + return self._sock.recv(max_bytes) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\ssl.py", line 1285, in recv + return self.read(buflen) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\ssl.py", line 1140, in read + return self._sslobj.read(len) + +2025-03-05 20:42:27,146 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 20:43:14,064 - agent - INFO - Generating meme concept from history: arjunj4528: dude I'm schlumped +arjunj4528: yeah im so tired as well +arjunj4528: long day dude +arjunj4528: but at least we get to end with some gaming lol +arjunj4528: true true... +2025-03-05 20:43:15,819 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:43:15,827 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A person so exhausted that they are using a gaming controller as a pillow, snoring while the game character on the TV screen is in a chaotic battle, with the words "Game Over" flashing on the screen. + +CAPTION: I am so tired, but at least we get to end with some gaming. +2025-03-05 20:43:15,831 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A person so exhausted that they are using a gaming controller as a pillow, snoring while the game character on the TV screen is in a chaotic battle, with the words "Game Over" flashing on the screen. + +CAPTION: I am so tired, but at least we get to end with some gaming. +2025-03-05 20:43:15,833 - agent - INFO - Image Description: A person so exhausted that they are using a gaming controller as a pillow, snoring while the game character on the TV screen is in a chaotic battle, with the words "Game Over" flashing on the screen. +2025-03-05 20:43:15,835 - agent - INFO - Caption: I am so tired, but at least we get to end with some gaming. +2025-03-05 20:43:15,836 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A person so exhausted that they are using a gaming controller as a pillow, snoring while the game character on the TV screen is in a chaotic battle, with th... +2025-03-05 20:43:35,381 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-05 20:44:39,158 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-05 20:44:40,323 - discord.client - INFO - logging in using static token +2025-03-05 20:44:41,126 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: ed77d4eaa61b3be397d14b4ab7db0f37). +2025-03-05 20:44:43,201 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-05 20:44:47,461 - discord_bot - INFO - Added message from arjunj4528 to history: yo lebron is my man +2025-03-05 20:44:47,945 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:44:47,952 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:44:54,098 - discord_bot - INFO - Added message from arjunj4528 to history: yeah dude he be LEGOAT +2025-03-05 20:44:54,590 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:44:54,597 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:44:57,177 - discord_bot - INFO - Added message from arjunj4528 to history: LEGOAT for real dude +2025-03-05 20:44:57,537 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:44:57,544 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:45:04,338 - discord_bot - INFO - Added message from arjunj4528 to history: all hail LEPOOKIE +2025-03-05 20:45:04,815 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:45:04,822 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-05 20:45:20,860 - discord_bot - INFO - Added message from arjunj4528 to history: if lebron is LEPOOKIE is bronny LEPOOKIE JUNIOR? +2025-03-05 20:45:21,382 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:45:21,387 - discord_bot - INFO - Spontaneous meme decision: True, reason: Decided to generate a meme for this conversation. +2025-03-05 20:45:21,745 - agent - INFO - Generating meme concept from history: arjunj4528: yo lebron is my man +arjunj4528: yeah dude he be LEGOAT +arjunj4528: LEGOAT for real dude +arjunj4528: all hail LEPOOKIE +arjunj4528: if lebron is LEPOOKIE is bronny LEPOOKIE JUNIOR?... +2025-03-05 20:45:23,584 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-05 20:45:23,591 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A toy miniature goat wearing a small basketball jersey with "LEPOOKIE JUNIOR" printed on the back. The goat is standing on a miniature basketball court, looking up at a full-sized goat wearing a "LEPOOKIE" jersey. + +CAPTION: When Bronny follows in his father's hoofsteps. +2025-03-05 20:45:23,594 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A toy miniature goat wearing a small basketball jersey with "LEPOOKIE JUNIOR" printed on the back. The goat is standing on a miniature basketball court, looking up at a full-sized goat wearing a "LEPOOKIE" jersey. + +CAPTION: When Bronny follows in his father's hoofsteps. +2025-03-05 20:45:23,597 - agent - INFO - Image Description: A toy miniature goat wearing a small basketball jersey with "LEPOOKIE JUNIOR" printed on the back. The goat is standing on a miniature basketball court, looking up at a full-sized goat wearing a "LEPOOKIE" jersey. +2025-03-05 20:45:23,599 - agent - INFO - Caption: When Bronny follows in his father's hoofsteps. +2025-03-05 20:45:23,601 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A toy miniature goat wearing a small basketball jersey with "LEPOOKIE JUNIOR" printed on the back. The goat is standing on a miniature basketball court, loo... +2025-03-05 20:45:36,576 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-06 13:32:36,258 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-06 13:32:37,472 - discord.client - INFO - logging in using static token +2025-03-06 13:32:38,672 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 49632fd2d624825c3558f2d43168599c). +2025-03-06 13:32:40,770 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-06 13:33:12,722 - discord_bot - INFO - Added message from arjunj4528 to history: dude I don't want to be in this cs210 lecture +2025-03-06 13:33:13,234 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-06 13:33:13,245 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-06 13:33:23,484 - discord_bot - INFO - Added message from arjunj4528 to history: bruh this speaker about to be mega boring +2025-03-06 13:33:24,006 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-06 13:33:24,017 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-06 13:33:41,057 - discord_bot - INFO - Added message from arjunj4528 to history: he lowkey look like Jay +2025-03-06 13:33:41,446 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-06 13:33:41,454 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-06 13:34:53,899 - agent - INFO - Generating meme concept from history: arjunj4528: dude I don't want to be in this cs210 lecture +arjunj4528: bruh this speaker about to be mega boring +arjunj4528: he lowkey look like Jay... +2025-03-06 13:34:55,784 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-06 13:34:55,826 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A speaker at a lectern, who looks exactly like Jay Leno, is presenting a slideshow filled with endless lines of code. The audience is fast asleep, except for one student who is wide-awake, laughing hysterically while pointing at the speaker. + +CAPTION: Suddenly, CS210 became the tonight show. +2025-03-06 13:34:55,829 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A speaker at a lectern, who looks exactly like Jay Leno, is presenting a slideshow filled with endless lines of code. The audience is fast asleep, except for one student who is wide-awake, laughing hysterically while pointing at the speaker. + +CAPTION: Suddenly, CS210 became the tonight show. +2025-03-06 13:34:55,835 - agent - INFO - Image Description: A speaker at a lectern, who looks exactly like Jay Leno, is presenting a slideshow filled with endless lines of code. The audience is fast asleep, except for one student who is wide-awake, laughing hysterically while pointing at the speaker. +2025-03-06 13:34:55,838 - agent - INFO - Caption: Suddenly, CS210 became the tonight show. +2025-03-06 13:34:55,840 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A speaker at a lectern, who looks exactly like Jay Leno, is presenting a slideshow filled with endless lines of code. The audience is fast asleep, except fo... +2025-03-06 13:35:08,271 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-06 13:38:34,543 - discord.gateway - INFO - Shard ID None has successfully RESUMED session 49632fd2d624825c3558f2d43168599c. +2025-03-06 13:45:18,754 - discord_bot - INFO - Added message from arjunj4528 to history: mario kart is so fun +2025-03-06 13:45:19,280 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-06 13:45:19,287 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-06 13:45:28,829 - discord_bot - INFO - Added message from arjunj4528 to history: yeah especially mario kart deluxe +2025-03-06 13:45:29,248 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-06 13:45:29,253 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-06 13:45:39,669 - discord_bot - INFO - Added message from arjunj4528 to history: there are all these new cups and races +2025-03-06 13:45:40,112 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-06 13:45:40,120 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-06 13:45:43,264 - agent - INFO - Generating meme concept from history: arjunj4528: bruh this speaker about to be mega boring +arjunj4528: he lowkey look like Jay +arjunj4528: mario kart is so fun +arjunj4528: yeah especially mario kart deluxe +arjunj4528: there are all these... +2025-03-06 13:45:45,018 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-06 13:45:45,026 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A boring speaker at a podium, but his head is replaced with Jay Leno's head driving a Mario Kart, with items like banana peels and red shells flying around the auditorium. + +CAPTION: Suddenly, the presentation became much more exciting. +2025-03-06 13:45:45,028 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A boring speaker at a podium, but his head is replaced with Jay Leno's head driving a Mario Kart, with items like banana peels and red shells flying around the auditorium. + +CAPTION: Suddenly, the presentation became much more exciting. +2025-03-06 13:45:45,029 - agent - INFO - Image Description: A boring speaker at a podium, but his head is replaced with Jay Leno's head driving a Mario Kart, with items like banana peels and red shells flying around the auditorium. +2025-03-06 13:45:45,031 - agent - INFO - Caption: Suddenly, the presentation became much more exciting. +2025-03-06 13:45:45,031 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A boring speaker at a podium, but his head is replaced with Jay Leno's head driving a Mario Kart, with items like banana peels and red shells flying around ... +2025-03-06 13:45:57,095 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-06 14:43:04,766 - discord.client - ERROR - Attempting a reconnect in 1.98s +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1362, in _create_direct_connection + hosts = await self._resolve_host(host, port, traces=traces) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 995, in _resolve_host + return await asyncio.shield(resolved_host_task) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1026, in _resolve_host_with_throttle + addrs = await self._resolver.resolve(host, port, family=self._family) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\resolver.py", line 36, in resolve + infos = await self._loop.getaddrinfo( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ...<5 lines>... + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 939, in getaddrinfo + return await self.run_in_executor( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + None, getaddr_func, host, port, family, type, proto, flags) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\concurrent\futures\thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\socket.py", line 977, in getaddrinfo + for res in _socket.getaddrinfo(host, port, family, type, proto, flags): + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +socket.gaierror: [Errno 11001] getaddrinfo failed + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 701, in connect + self.ws = await asyncio.wait_for(coro, timeout=60.0) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\gateway.py", line 375, in from_client + socket = await client.http.ws_connect(str(url)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\http.py", line 554, in ws_connect + return await self.__session.ws_connect(url, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\client.py", line 1004, in _ws_connect + resp = await self.request( + ^^^^^^^^^^^^^^^^^^^ + ...<11 lines>... + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\client.py", line 703, in _request + conn = await self._connector.connect( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + req, traces=traces, timeout=real_timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 548, in connect + proto = await self._create_connection(req, traces, timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1056, in _create_connection + _, proto = await self._create_direct_connection(req, traces, timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1368, in _create_direct_connection + raise ClientConnectorDNSError(req.connection_key, exc) from exc +aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host gateway-us-east1-c.discord.gg:443 ssl:default [getaddrinfo failed] +2025-03-06 14:43:07,793 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-06 14:43:13,464 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: bf7832daac8dbd72d3b817612a767c06). +2025-03-06 14:43:15,552 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-06 15:12:11,634 - discord.client - ERROR - Attempting a reconnect in 2.62s +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1362, in _create_direct_connection + hosts = await self._resolve_host(host, port, traces=traces) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 995, in _resolve_host + return await asyncio.shield(resolved_host_task) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1026, in _resolve_host_with_throttle + addrs = await self._resolver.resolve(host, port, family=self._family) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\resolver.py", line 36, in resolve + infos = await self._loop.getaddrinfo( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ...<5 lines>... + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 939, in getaddrinfo + return await self.run_in_executor( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + None, getaddr_func, host, port, family, type, proto, flags) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\concurrent\futures\thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\socket.py", line 977, in getaddrinfo + for res in _socket.getaddrinfo(host, port, family, type, proto, flags): + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +socket.gaierror: [Errno 11001] getaddrinfo failed + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 701, in connect + self.ws = await asyncio.wait_for(coro, timeout=60.0) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\gateway.py", line 375, in from_client + socket = await client.http.ws_connect(str(url)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\http.py", line 554, in ws_connect + return await self.__session.ws_connect(url, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\client.py", line 1004, in _ws_connect + resp = await self.request( + ^^^^^^^^^^^^^^^^^^^ + ...<11 lines>... + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\client.py", line 703, in _request + conn = await self._connector.connect( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + req, traces=traces, timeout=real_timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 548, in connect + proto = await self._create_connection(req, traces, timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1056, in _create_connection + _, proto = await self._create_direct_connection(req, traces, timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1368, in _create_direct_connection + raise ClientConnectorDNSError(req.connection_key, exc) from exc +aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host gateway-us-east1-c.discord.gg:443 ssl:default [getaddrinfo failed] +2025-03-06 15:12:14,720 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-06 15:12:20,173 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 8f0cfbdb7caefa11cc4cb528d27281b5). +2025-03-06 15:12:22,242 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-06 16:24:34,037 - discord.client - ERROR - Attempting a reconnect in 0.90s +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1362, in _create_direct_connection + hosts = await self._resolve_host(host, port, traces=traces) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 995, in _resolve_host + return await asyncio.shield(resolved_host_task) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1026, in _resolve_host_with_throttle + addrs = await self._resolver.resolve(host, port, family=self._family) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\resolver.py", line 36, in resolve + infos = await self._loop.getaddrinfo( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ...<5 lines>... + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 939, in getaddrinfo + return await self.run_in_executor( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + None, getaddr_func, host, port, family, type, proto, flags) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\concurrent\futures\thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\socket.py", line 977, in getaddrinfo + for res in _socket.getaddrinfo(host, port, family, type, proto, flags): + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +socket.gaierror: [Errno 11001] getaddrinfo failed + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 701, in connect + self.ws = await asyncio.wait_for(coro, timeout=60.0) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\gateway.py", line 375, in from_client + socket = await client.http.ws_connect(str(url)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\http.py", line 554, in ws_connect + return await self.__session.ws_connect(url, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\client.py", line 1004, in _ws_connect + resp = await self.request( + ^^^^^^^^^^^^^^^^^^^ + ...<11 lines>... + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\client.py", line 703, in _request + conn = await self._connector.connect( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + req, traces=traces, timeout=real_timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 548, in connect + proto = await self._create_connection(req, traces, timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1056, in _create_connection + _, proto = await self._create_direct_connection(req, traces, timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1368, in _create_direct_connection + raise ClientConnectorDNSError(req.connection_key, exc) from exc +aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host gateway-us-east1-c.discord.gg:443 ssl:default [getaddrinfo failed] +2025-03-06 16:24:35,467 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-06 16:24:42,538 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: af08fc50c2424b345efad5adf64166bf). +2025-03-06 16:24:44,638 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-06 16:48:57,648 - discord.gateway - INFO - Shard ID None has successfully RESUMED session af08fc50c2424b345efad5adf64166bf. +2025-03-06 18:16:30,049 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-06 20:31:36,815 - discord.client - ERROR - Attempting a reconnect in 0.01s +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\gateway.py", line 405, in from_client + await ws.identify() + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\gateway.py", line 472, in identify + await self.call_hooks('before_identify', self.shard_id, initial=self._initial_identify) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\state.py", line 353, in call_hooks + await coro(*args, **kwargs) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 563, in _call_before_identify_hook + await self.before_identify_hook(shard_id, initial=initial) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 585, in before_identify_hook + await asyncio.sleep(5.0) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\tasks.py", line 718, in sleep + return await future + ^^^^^^^^^^^^ +asyncio.exceptions.CancelledError + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 701, in connect + self.ws = await asyncio.wait_for(coro, timeout=60.0) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\tasks.py", line 506, in wait_for + async with timeouts.timeout(timeout): + ~~~~~~~~~~~~~~~~^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\timeouts.py", line 116, in __aexit__ + raise TimeoutError from exc_val +TimeoutError +2025-03-06 20:31:38,176 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-06 20:31:43,624 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: d362d46f7ae89230471a5ca1fd088dce). +2025-03-06 20:31:45,697 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-06 20:32:13,066 - discord.gateway - WARNING - Shard ID None has stopped responding to the gateway. Closing and restarting. +2025-03-07 00:32:01,286 - discord.gateway - WARNING - Shard ID None has stopped responding to the gateway. Closing and restarting. +2025-03-07 00:32:01,503 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-07 00:32:07,041 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 6e5c23c2baa5cf86290f620d835dc34d). +2025-03-07 00:32:09,099 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 03:00:07,337 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-07 03:00:13,094 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 8ad1e736f4ac6b7142fd9cf5a8fb342e). +2025-03-07 03:00:15,536 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 09:40:53,442 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-07 09:40:59,270 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 1b4e7fa7cd4cae22b2960bc86c9a323d). +2025-03-07 09:41:01,342 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 11:18:35,609 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-07 11:18:45,364 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 789840e3ed7cacb4cda6dc661ccdf5e4). +2025-03-07 11:18:47,546 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 12:19:40,041 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-07 12:19:45,611 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 5b62e5223854745d05f4acfbf9749125). +2025-03-07 12:19:47,769 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 12:59:54,082 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-07 12:59:59,772 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 5b6244492511b7490974ca82f4853a0b). +2025-03-07 13:27:27,067 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 13:27:27,773 - discord.client - ERROR - Attempting a reconnect in 0.77s +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1362, in _create_direct_connection + hosts = await self._resolve_host(host, port, traces=traces) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 995, in _resolve_host + return await asyncio.shield(resolved_host_task) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1026, in _resolve_host_with_throttle + addrs = await self._resolver.resolve(host, port, family=self._family) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\resolver.py", line 36, in resolve + infos = await self._loop.getaddrinfo( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ...<5 lines>... + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\base_events.py", line 939, in getaddrinfo + return await self.run_in_executor( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + None, getaddr_func, host, port, family, type, proto, flags) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\concurrent\futures\thread.py", line 59, in run + result = self.fn(*self.args, **self.kwargs) + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\socket.py", line 977, in getaddrinfo + for res in _socket.getaddrinfo(host, port, family, type, proto, flags): + ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +socket.gaierror: [Errno 11001] getaddrinfo failed + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\client.py", line 701, in connect + self.ws = await asyncio.wait_for(coro, timeout=60.0) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\asyncio\tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\gateway.py", line 375, in from_client + socket = await client.http.ws_connect(str(url)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\discord\http.py", line 554, in ws_connect + return await self.__session.ws_connect(url, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\client.py", line 1004, in _ws_connect + resp = await self.request( + ^^^^^^^^^^^^^^^^^^^ + ...<11 lines>... + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\client.py", line 703, in _request + conn = await self._connector.connect( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + req, traces=traces, timeout=real_timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ) + ^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 548, in connect + proto = await self._create_connection(req, traces, timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1056, in _create_connection + _, proto = await self._create_direct_connection(req, traces, timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\arjun\miniconda3\envs\discord_bot\Lib\site-packages\aiohttp\connector.py", line 1368, in _create_direct_connection + raise ClientConnectorDNSError(req.connection_key, exc) from exc +aiohttp.client_exceptions.ClientConnectorDNSError: Cannot connect to host gateway-us-east1-d.discord.gg:443 ssl:default [getaddrinfo failed] +2025-03-07 13:27:29,650 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-07 13:27:35,295 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 545587d9c636003cc302663ed7862005). +2025-03-07 13:27:37,361 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 14:58:25,965 - discord.gateway - INFO - Shard ID None session has been invalidated. +2025-03-07 14:58:31,427 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 81b75ebed088d1fc93ace82695cd294b). +2025-03-07 14:58:33,578 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 15:05:53,515 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 15:05:54,634 - discord.client - INFO - logging in using static token +2025-03-07 15:05:55,631 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: b4826d02b5e0daa157bd0a002e6940ee). +2025-03-07 15:05:57,692 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 15:07:39,351 - discord_bot - INFO - Added message from lucadollar to history: Omg today i saw someone wearing the same shirt +2025-03-07 15:07:40,175 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:07:40,182 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 15:07:44,554 - discord_bot - INFO - Added message from lucadollar to history: it felt like the spiderman pointing meme +2025-03-07 15:07:44,997 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:07:45,005 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 15:07:47,944 - discord_bot - INFO - Added message from lucadollar to history: *hint* +2025-03-07 15:07:48,365 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:07:48,370 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 15:07:52,874 - discord_bot - INFO - Added message from arjunj4528 to history: dude crazy its like who who +2025-03-07 15:07:53,485 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:07:53,490 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 15:07:57,035 - discord_bot - INFO - Added message from lucadollar to history: this guy +2025-03-07 15:07:57,474 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:07:57,480 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 15:08:00,120 - discord_bot - INFO - Added message from lucadollar to history: he was wearing stripes +2025-03-07 15:08:00,608 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:08:00,613 - discord_bot - INFO - Spontaneous meme decision: True, reason: Decided to generate a meme for this conversation. +2025-03-07 15:08:01,086 - agent - INFO - Generating meme concept from history: lucadollar: it felt like the spiderman pointing meme +lucadollar: *hint* +arjunj4528: dude crazy its like who who +lucadollar: this guy +lucadollar: he was wearing stripes... +2025-03-07 15:08:01,282 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" +2025-03-07 15:08:01,284 - agent - ERROR - Error in generating meme concept: API error occurred: Status 429 +{"message":"Requests rate limit exceeded"} +2025-03-07 15:08:01,284 - discord_bot - ERROR - Error generating spontaneous meme: Failed to generate meme concept: API error occurred: Status 429 +{"message":"Requests rate limit exceeded"} +2025-03-07 15:08:12,750 - agent - INFO - Generating meme concept from history: lucadollar: it felt like the spiderman pointing meme +lucadollar: *hint* +arjunj4528: dude crazy its like who who +lucadollar: this guy +lucadollar: he was wearing stripes... +2025-03-07 15:08:14,889 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:08:14,895 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A confused Spiderman in his classic pointing pose, but he is now wearing a striped prison uniform. He is surrounded by a lineup of identical stripe-wearing individuals, all pointing at each other in accusation. + +CAPTION: When lucadollar tries to identify the stripe-wearing suspect, but it backfires. +2025-03-07 15:08:14,896 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A confused Spiderman in his classic pointing pose, but he is now wearing a striped prison uniform. He is surrounded by a lineup of identical stripe-wearing individuals, all pointing at each other in accusation. + +CAPTION: When lucadollar tries to identify the stripe-wearing suspect, but it backfires. +2025-03-07 15:08:14,897 - agent - INFO - Image Description: A confused Spiderman in his classic pointing pose, but he is now wearing a striped prison uniform. He is surrounded by a lineup of identical stripe-wearing individuals, all pointing at each other in accusation. +2025-03-07 15:08:14,898 - agent - INFO - Caption: When lucadollar tries to identify the stripe-wearing suspect, but it backfires. +2025-03-07 15:08:14,899 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A confused Spiderman in his classic pointing pose, but he is now wearing a striped prison uniform. He is surrounded by a lineup of identical stripe-wearing ... +2025-03-07 15:08:29,020 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-07 15:30:55,805 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 15:30:57,223 - discord.client - INFO - logging in using static token +2025-03-07 15:30:58,190 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 8e425babd12d0b5cd03608cd643e880c). +2025-03-07 15:31:00,260 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 15:31:19,069 - agent - INFO - Generating meme concept from history: ... +2025-03-07 15:31:21,019 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:31:21,025 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A cartoon office where every piece of furniture, including chairs, desks, and computers, is made entirely of colorful, squishy stress balls. An employee is seen trying to type on a wobbly stress ball keyboard, looking utterly confused. + +CAPTION: When the boss takes 'creating a stress-free environment' too literally. +2025-03-07 15:31:21,026 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A cartoon office where every piece of furniture, including chairs, desks, and computers, is made entirely of colorful, squishy stress balls. An employee is seen trying to type on a wobbly stress ball keyboard, looking utterly confused. + +CAPTION: When the boss takes 'creating a stress-free environment' too literally. +2025-03-07 15:31:21,030 - agent - INFO - Image Description: A cartoon office where every piece of furniture, including chairs, desks, and computers, is made entirely of colorful, squishy stress balls. An employee is seen trying to type on a wobbly stress ball keyboard, looking utterly confused. +2025-03-07 15:31:21,030 - agent - INFO - Caption: When the boss takes 'creating a stress-free environment' too literally. +2025-03-07 15:31:21,031 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A cartoon office where every piece of furniture, including chairs, desks, and computers, is made entirely of colorful, squishy stress balls. An employee is ... +2025-03-07 15:31:32,690 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-07 15:39:25,209 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 15:39:26,363 - discord.client - INFO - logging in using static token +2025-03-07 15:39:27,282 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: a63befd4fc80ae46c301bb0a727f5a35). +2025-03-07 15:39:29,433 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 15:39:53,742 - discord_bot - INFO - Added message from lucadollar to history: omg did you see dan slip on a banana peel last night +2025-03-07 15:39:54,244 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:39:54,252 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 15:39:59,716 - discord_bot - ERROR - Error generating reaction: 'OpenAIAgent' object has no attribute 'chat_history' +2025-03-07 15:40:00,185 - discord_bot - INFO - Added message from arjunj4528 to history: yeah dude he was twirling +2025-03-07 15:40:00,695 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:40:00,702 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 15:40:19,999 - discord_bot - INFO - Added message from arjunj4528 to history: and sliding +2025-03-07 15:40:20,563 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:40:20,572 - discord_bot - INFO - Spontaneous meme decision: True, reason: Decided to generate a meme for this conversation. +2025-03-07 15:40:20,972 - agent - INFO - Generating meme concept from history: lucadollar: omg did you see dan slip on a banana peel last night +arjunj4528: yeah dude he was twirling +arjunj4528: and sliding... +2025-03-07 15:40:22,398 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:40:22,408 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A banana peel dressed in a fancy top hat and cane, leading a conga line of dancing bananas, with Dan enthusiastically sliding in from the left, trying to join the party. + +CAPTION: Dan finally finds his dancing partners. +2025-03-07 15:40:22,412 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A banana peel dressed in a fancy top hat and cane, leading a conga line of dancing bananas, with Dan enthusiastically sliding in from the left, trying to join the party. + +CAPTION: Dan finally finds his dancing partners. +2025-03-07 15:40:22,415 - agent - INFO - Image Description: A banana peel dressed in a fancy top hat and cane, leading a conga line of dancing bananas, with Dan enthusiastically sliding in from the left, trying to join the party. +2025-03-07 15:40:22,418 - agent - INFO - Caption: Dan finally finds his dancing partners. +2025-03-07 15:40:22,419 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A banana peel dressed in a fancy top hat and cane, leading a conga line of dancing bananas, with Dan enthusiastically sliding in from the left, trying to jo... +2025-03-07 15:40:34,285 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" +2025-03-07 15:49:25,935 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 15:49:27,041 - discord.client - INFO - logging in using static token +2025-03-07 15:49:28,102 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: ab8c197a96399bf24d0ccc58dc8c7698). +2025-03-07 15:49:30,198 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 15:49:48,843 - discord_bot - ERROR - Error generating meme: 'MistralAgent' object has no attribute 'generate_meme_concept_from_chat_history' +2025-03-07 15:49:53,258 - discord_bot - ERROR - Error generating meme: 'MistralAgent' object has no attribute 'generate_meme_concept_from_chat_history' +2025-03-07 15:54:20,636 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 15:54:21,805 - discord.client - INFO - logging in using static token +2025-03-07 15:54:22,814 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: ba7227bd34918751b785cbd4adb7c418). +2025-03-07 15:54:24,845 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 15:54:30,172 - discord_bot - INFO - Added message from lucadollar to history: Yo crazy game last night +2025-03-07 15:54:30,697 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:54:30,703 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 15:54:33,616 - discord.ext.commands.bot - ERROR - Ignoring exception in command None +discord.ext.commands.errors.CommandNotFound: Command "react" is not found +2025-03-07 15:56:26,969 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 15:56:28,235 - discord.client - INFO - logging in using static token +2025-03-07 15:56:29,211 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 24fb088993960a79a42cf77378738e7e). +2025-03-07 15:56:31,272 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 15:56:37,226 - discord_bot - INFO - Added message from lucadollar to history: Lebron went absolutely crazy +2025-03-07 15:56:37,743 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:56:37,752 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 15:56:41,481 - discord_bot - ERROR - Error generating reaction: 'OpenAIAgent' object has no attribute 'react_to_latest' +2025-03-07 15:57:23,684 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 15:57:24,682 - discord.client - INFO - logging in using static token +2025-03-07 15:57:25,510 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: e2291e24001e985f2904485388aebf93). +2025-03-07 15:57:27,626 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 15:57:45,982 - discord_bot - INFO - Added message from arjunj4528 to history: lebron was absolutetely nuts yesterday +2025-03-07 15:57:46,451 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 15:57:46,459 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 15:57:48,345 - discord_bot - ERROR - Error generating reaction: 'list' object has no attribute 'get' +2025-03-07 17:18:30,841 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 17:18:32,007 - discord.client - INFO - logging in using static token +2025-03-07 17:18:32,664 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: ca9bc141a6d4e15384e248219db5a5fd). +2025-03-07 17:18:34,724 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 17:19:53,502 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 17:19:54,364 - discord.client - INFO - logging in using static token +2025-03-07 17:19:55,060 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: b8a12cd6af14eb325f0d6f73c00c41ac). +2025-03-07 17:19:57,119 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 17:20:04,674 - discord_bot - INFO - Added message from arjunj4528 to history: when dan does not show up in-person at the meeting +2025-03-07 17:20:05,261 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:20:05,269 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 17:20:08,316 - discord_bot - INFO - Added message from arjunj4528 to history: dude so sad +2025-03-07 17:20:08,726 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:20:08,734 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 17:20:14,878 - discord_bot - INFO - Added message from arjunj4528 to history: wish he was there rip +2025-03-07 17:20:15,810 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:20:15,814 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 17:20:17,080 - discord_bot - ERROR - Error generating reaction: 'Chat' object has no attribute 'completions' +2025-03-07 17:25:10,413 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 17:25:11,553 - discord.client - INFO - logging in using static token +2025-03-07 17:25:12,276 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: f31b1dadb498e1128a60bd7caafc99aa). +2025-03-07 17:25:14,349 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 17:25:27,336 - discord_bot - INFO - Added message from arjunj4528 to history: lebron has been so good these last few games #LEKING +2025-03-07 17:25:27,759 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:25:27,764 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 17:25:30,625 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:48:51,202 - discord.client - WARNING - PyNaCl is not installed, voice will NOT be supported +2025-03-07 17:48:52,292 - discord.client - INFO - logging in using static token +2025-03-07 17:48:52,999 - discord.gateway - INFO - Shard ID None has connected to Gateway (Session ID: 720acee5e3627e50842efb5bf2e9eb21). +2025-03-07 17:48:55,059 - discord_bot - INFO - darlucas-bot#2086 has connected to Discord! +2025-03-07 17:49:02,989 - discord_bot - INFO - Added message from arjunj4528 to history: yo yo the music outside mars is fire +2025-03-07 17:49:03,580 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:49:03,589 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 17:49:06,172 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:49:25,460 - discord_bot - INFO - Added message from arjunj4528 to history: mario kart is so hard +2025-03-07 17:49:25,886 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:49:25,892 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 17:49:32,910 - discord_bot - INFO - Added message from arjunj4528 to history: bro I be always slipping on bananas +2025-03-07 17:49:33,453 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:49:33,458 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 17:49:34,114 - discord_bot - INFO - Added message from arjunj4528 to history: yeah same +2025-03-07 17:49:34,506 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:49:34,511 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 17:49:52,182 - discord_bot - INFO - Added message from arjunj4528 to history: dude i hate when you slip on a banana and then everyone just passes you +2025-03-07 17:49:52,577 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:49:52,584 - discord_bot - INFO - Spontaneous meme decision: False, reason: Decided not to generate a meme for this conversation. +2025-03-07 17:49:52,884 - discord_bot - INFO - Added message from arjunj4528 to history: smh +2025-03-07 17:49:53,084 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 429 Too Many Requests" +2025-03-07 17:49:53,086 - agent - ERROR - Error in decide_spontaneous_meme: API error occurred: Status 429 +{"message":"Requests rate limit exceeded"} +2025-03-07 17:49:53,087 - discord_bot - INFO - Spontaneous meme decision: False, reason: Error deciding whether to generate meme: API error occurred: Status 429 +{"message":"Requests rate limit exceeded"} +2025-03-07 17:49:55,167 - agent - INFO - Generating meme concept from history: arjunj4528: mario kart is so hard +arjunj4528: bro I be always slipping on bananas +arjunj4528: yeah same +arjunj4528: dude i hate when you slip on a banana and then everyone just passes you +arjunj4528: ... +2025-03-07 17:49:56,651 - httpx - INFO - HTTP Request: POST https://api.mistral.ai/v1/chat/completions "HTTP/1.1 200 OK" +2025-03-07 17:49:56,657 - agent - INFO - Generated meme concept: IMAGE DESCRIPTION: A frustrated Mario standing on a race track covered in an absurdly large number of banana peels, with every other character from Mario Kart speeding past him, waving cheerfully. + +CAPTION: Meanwhile, every other racer on the track. +2025-03-07 17:49:56,659 - agent - INFO - Raw meme concept: IMAGE DESCRIPTION: A frustrated Mario standing on a race track covered in an absurdly large number of banana peels, with every other character from Mario Kart speeding past him, waving cheerfully. + +CAPTION: Meanwhile, every other racer on the track. +2025-03-07 17:49:56,660 - agent - INFO - Image Description: A frustrated Mario standing on a race track covered in an absurdly large number of banana peels, with every other character from Mario Kart speeding past him, waving cheerfully. +2025-03-07 17:49:56,662 - agent - INFO - Caption: Meanwhile, every other racer on the track. +2025-03-07 17:49:56,662 - agent - INFO - DALL-E Prompt: Create a meme image given this description: A frustrated Mario standing on a race track covered in an absurdly large number of banana peels, with every other character from Mario Kart speeding past hi... +2025-03-07 17:50:11,730 - httpx - INFO - HTTP Request: POST https://api.openai.com/v1/images/generations "HTTP/1.1 200 OK" diff --git a/local_env.yml b/local_env.yml index 9e619b19..9d73a3be 100644 --- a/local_env.yml +++ b/local_env.yml @@ -9,3 +9,5 @@ dependencies: - discord-py>=2.4.0 - mistralai>=1.4.0 - python-dotenv>=1.0.1 + - openai>=1.12.0 + - aiohttp>=3.9.1