Add ollama status checker
All checks were successful
Build and Publish Jimmy.2 / build_and_publish (push) Successful in 6s
All checks were successful
Build and Publish Jimmy.2 / build_and_publish (push) Successful in 6s
This commit is contained in:
parent
6ed7de1d73
commit
38f47b9699
1 changed files with 29 additions and 1 deletions
|
@ -907,7 +907,7 @@ class Ollama(commands.Cog):
|
|||
messages = self.history.get_history(thread)
|
||||
embed = discord.Embed(description="*Waking Ollama up...*")
|
||||
self.log.debug("Acquiring lock")
|
||||
async with self.lock:
|
||||
async with self.servers[server]:
|
||||
await ctx.respond(embed=embed, ephemeral=True)
|
||||
last_edit = time.time()
|
||||
msg = None
|
||||
|
@ -937,6 +937,34 @@ class Ollama(commands.Cog):
|
|||
embed.colour = discord.Colour.dark_theme()
|
||||
return await msg.edit(embed=embed)
|
||||
|
||||
@commands.command()
|
||||
async def ollama_status(self, ctx: commands.Context):
|
||||
embed = discord.Embed(
|
||||
title="Ollama server statuses:",
|
||||
color=discord.Color.blurple(),
|
||||
timestamp=discord.utils.utcnow(),
|
||||
)
|
||||
for server, lock in self.servers.items():
|
||||
embed.add_field(
|
||||
name=server,
|
||||
value="\U000026a0\U0000fe0fIn use" if lock.locked() else "\U000023f3 Checking..."
|
||||
)
|
||||
|
||||
msg = await ctx.reply(embed=embed)
|
||||
last_edit = time.time()
|
||||
for server in self.servers.items():
|
||||
try:
|
||||
ok = await self.check_server(CONFIG["ollama"][server]["base_url"])
|
||||
except Exception as e:
|
||||
ok = False
|
||||
self.log.error("Error while checking server %r: %r", server, e)
|
||||
for field in embed.fields:
|
||||
if field.name == server:
|
||||
field.value = "\U00002705 Online" if ok else "\U0000274c Offline"
|
||||
break
|
||||
await asyncio.sleep(1 - (time.time() - last_edit))
|
||||
await msg.edit(embed=embed)
|
||||
|
||||
|
||||
def setup(bot):
|
||||
bot.add_cog(Ollama(bot))
|
||||
|
|
Loading…
Reference in a new issue