Add trump command
All checks were successful
Build and Publish Jimmy.2 / build_and_publish (push) Successful in 8s
All checks were successful
Build and Publish Jimmy.2 / build_and_publish (push) Successful in 8s
This commit is contained in:
parent
c41d6c3843
commit
4706ac2daa
2 changed files with 63 additions and 8 deletions
|
@ -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))
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue