Add trump command
All checks were successful
Build and Publish Jimmy.2 / build_and_publish (push) Successful in 8s

This commit is contained in:
Nexus 2024-06-03 00:19:50 +01:00
parent c41d6c3843
commit 4706ac2daa
Signed by: nex
GPG key ID: 0FA334385D0B689F
2 changed files with 63 additions and 8 deletions

View file

@ -76,6 +76,8 @@ class OllamaDownloadHandler:
self.eval_count = 0 self.eval_count = 0
self.prompt_eval_count = 0 self.prompt_eval_count = 0
self.log = logging.getLogger("jimmy.cogs.ollama.download")
def abort(self): def abort(self):
self._abort.set() self._abort.set()
@ -111,7 +113,12 @@ class OllamaDownloadHandler:
async def flatten(self) -> "OllamaDownloadHandler": async def flatten(self) -> "OllamaDownloadHandler":
"""Returns the current instance, but fully consumed.""" """Returns the current instance, but fully consumed."""
async for _ in self: async for _ in self:
pass self.log.info(
"Downloading orca-mini:7b on server %r - %s (%.2f%%)",
self.base_url,
self.status,
self.percent
)
return self return self
@ -905,7 +912,7 @@ class Ollama(commands.Cog):
tried = set() tried = set()
for _ in range(10): for _ in range(10):
server = self.next_server() server = self.next_server(tried)
if await self.check_server(CONFIG["ollama"][server]["base_url"]): if await self.check_server(CONFIG["ollama"][server]["base_url"]):
break break
tried.add(server) tried.add(server)
@ -999,6 +1006,60 @@ class Ollama(commands.Cog):
break break
await msg.edit(embed=embed) await msg.edit(embed=embed)
@commands.command(hidden=True)
async def trump(self, ctx: commands.Context, max_history: int = 100):
async with ctx.channel.typing():
thread_id = self.history.create_thread(
ctx.author,
"You are the former united states president, Donald Trump, convicted of 34 felonies."
" You have been posting approximately 50 times a day on your platform 'Truth Social' spreading your"
" words of truth to the american people in order to make america great again. After reading through all"
" of your previous truth posts, you should generate another one, ready to be posted, "
"under 4000 characters."
)
messages = self.history.get_history(thread_id)
async for message in ctx.channel.history(limit=max_history):
if message.author.id == 1101439218334576742 and len(message.embeds):
embed = message.embeds[0]
if embed.type == "rich" and embed.colour and embed.colour.value == 0x5448EE:
self.history.add_message(thread_id, "assistant", embed.description)
self.history.add_message(thread_id, "user", "Generate a new truth post.")
self.history.save_thread(thread_id)
tried = set()
for _ in range(10):
server = self.next_server(tried)
if await self.check_server(CONFIG["ollama"][server]["base_url"]):
break
tried.add(server)
else:
return await ctx.reply("All servers are offline. Please try again later.", delete_after=300)
client = OllamaClient(CONFIG["ollama"][server]["base_url"])
async with self.servers[server]:
if not await client.has_model_named("llama2-uncensored", "7b-chat"):
with client.download_model("llama2-uncensored", "7b-chat") as handler:
await handler.flatten()
embed = discord.Embed(
title="New Truth!",
description="",
colour=0x6559FF
)
msg = await ctx.reply(embed=embed)
last_edit = time.time()
messages = self.history.get_history(thread_id)
async with client.new_chat("llama2-uncensored:7b-chat", messages) as handler:
async for ln in handler:
embed.description += ln["message"]["content"]
if len(embed.description) >= 4000:
break
if (time.time() - last_edit) >= 2.5:
await msg.edit(embed=embed)
last_edit = time.time()
embed.set_footer(text="Finished generating truth based off of {:,} messages.".format(len(messages)))
await msg.edit(embed=embed)
def setup(bot): def setup(bot):
bot.add_cog(Ollama(bot)) bot.add_cog(Ollama(bot))

View file

@ -223,12 +223,6 @@ class QuoteQuota(commands.Cog):
def is_truth(msg: discord.Message) -> bool: def is_truth(msg: discord.Message) -> bool:
if msg.author.id == 1101439218334576742: if msg.author.id == 1101439218334576742:
# if msg.created_at.timestamp() <= 1713202855.80234:
# # Pre 6:30pm 15th April, embeds were not tagged for detection.
# truth = any((_te.type == "rich" for _te in msg.embeds))
# if truth:
# self.log.debug("Found untagged rich trump truth embed: %r", msg.id)
# return True
for __t_e in msg.embeds: for __t_e in msg.embeds:
if __t_e.type == "rich" and __t_e.colour is not None and __t_e.colour.value == 0x5448EE: if __t_e.type == "rich" and __t_e.colour is not None and __t_e.colour.value == 0x5448EE:
self.log.debug("Found tagged rich trump truth embed: %r", msg.id) self.log.debug("Found tagged rich trump truth embed: %r", msg.id)